mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2025-03-12 04:42:21 +00:00
Draw Curve Mode: added settings panel. Sectors mode: added "Make Door" button to the toolbar. Swapped Side panel and Info panel z-order. Interface: split toolbar into 3 separate toolbars. All toolbar buttons are now viewable at 1024x768. Interface: grouped stuff in "Modes" menu a bit better. Interface: added "Draw [stuff]" buttons to modes toolbar. Interface: reorganized main menu. Hope it makes more sense now. API: added General.Interface.AddModesButton() and General.Interface.AddModesMenu(), which can be used to add buttons to specific group in "Modes" toolbar and menu items to specific group in "Modes" menu, so actions, which behave like an editing mode, but are not part of one can be added there.
131 lines
No EOL
3.9 KiB
C#
131 lines
No EOL
3.9 KiB
C#
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
using CodeImp.DoomBuilder.Windows;
|
|
using CodeImp.DoomBuilder.Plugins;
|
|
using CodeImp.DoomBuilder.Actions;
|
|
using CodeImp.DoomBuilder.VisualModes;
|
|
using CodeImp.DoomBuilder.ColorPicker.Windows;
|
|
|
|
namespace CodeImp.DoomBuilder.ColorPicker
|
|
{
|
|
public class BuilderPlug : Plug
|
|
{
|
|
private static BuilderPlug me;
|
|
public static BuilderPlug Me { get { return me; } }
|
|
|
|
public override int MinimumRevision { get { return 1869; } }
|
|
|
|
public override string Name { get { return "Color Picker"; } }
|
|
|
|
private IColorPicker form;
|
|
private ToolsForm toolsform;
|
|
|
|
private Point formLocation; //used to keep form's location constant
|
|
|
|
public override void OnInitialize() {
|
|
base.OnInitialize();
|
|
me = this;
|
|
|
|
// Load menus form
|
|
toolsform = new ToolsForm();
|
|
|
|
General.Actions.BindMethods(this);
|
|
}
|
|
|
|
public override void OnMapOpenEnd() {
|
|
base.OnMapOpenEnd();
|
|
toolsform.Register();
|
|
}
|
|
|
|
public override void OnMapNewEnd() {
|
|
base.OnMapNewEnd();
|
|
toolsform.Register();
|
|
}
|
|
|
|
public override void OnMapCloseEnd() {
|
|
base.OnMapCloseEnd();
|
|
toolsform.Unregister();
|
|
}
|
|
|
|
public override void Dispose() {
|
|
base.Dispose();
|
|
General.Actions.UnbindMethods(this);
|
|
|
|
if (form != null) form.Close();
|
|
form = null;
|
|
|
|
if (toolsform != null) {
|
|
toolsform.Unregister();
|
|
toolsform.Dispose();
|
|
toolsform = null;
|
|
}
|
|
}
|
|
|
|
[BeginAction("togglelightpannel")]
|
|
private void toggleLightPannel() {
|
|
if (General.Editing.Mode == null)
|
|
return;
|
|
|
|
string currentModeName = General.Editing.Mode.GetType().Name;
|
|
|
|
//display one of colorPickers or tell the user why we can't do that
|
|
if (currentModeName == "ThingsMode") {
|
|
if(General.Map.Map.SelectedThingsCount == 0){
|
|
General.Interface.DisplayStatus(StatusType.Warning, "Select some lights first!");
|
|
return;
|
|
}
|
|
form = new LightColorPicker();
|
|
|
|
} else if (currentModeName == "SectorsMode") {
|
|
if (General.Map.UDMF) {
|
|
if (General.Map.Map.SelectedSectorsCount == 0) {
|
|
General.Interface.DisplayStatus(StatusType.Warning, "Select some sectors first!");
|
|
return;
|
|
}
|
|
form = new SectorColorPicker();
|
|
} else {
|
|
General.Interface.DisplayStatus(StatusType.Warning, "Sector colors can only be set if map is in UDMF format!");
|
|
return;
|
|
}
|
|
|
|
} else if (currentModeName == "BaseVisualMode") {
|
|
//nothing selected in visual mode?
|
|
if ( ((VisualMode)General.Editing.Mode).GetSelectedVisualThings(true).Count == 0 ) {
|
|
//check sectors
|
|
int selectedSectorsCount = ((VisualMode)General.Editing.Mode).GetSelectedVisualSectors(true).Count;
|
|
if (General.Map.UDMF && (selectedSectorsCount > 0 || General.Map.Map.SelectedSectorsCount > 0)) {
|
|
form = new SectorColorPicker();
|
|
} else {
|
|
General.Interface.DisplayStatus(StatusType.Warning, "Select some lights " + (General.Map.UDMF ? ", sectors or surfaces " : "") + "first!");
|
|
return;
|
|
}
|
|
} else {
|
|
form = new LightColorPicker();
|
|
}
|
|
} else { //wrong mode
|
|
General.Interface.DisplayStatus(StatusType.Warning, "Switch to" + (General.Map.UDMF ? " Sectors," : "") + " Things or GZDoom Visual Mode first!");
|
|
return;
|
|
}
|
|
|
|
if (form.Setup(currentModeName)) {
|
|
if (formLocation.X == 0 && formLocation.Y == 0) {
|
|
Size displaySize = Plug.DisplaySize;
|
|
Point displayLocation = Plug.DisplayLocationAbs;
|
|
formLocation = new Point(displayLocation.X + displaySize.Width - form.Width - 16, displayLocation.Y + 32);
|
|
}
|
|
form.Location = formLocation;
|
|
form.FormClosed += form_FormClosed;
|
|
form.ShowDialog(Form.ActiveForm);
|
|
} else {
|
|
form.Dispose();
|
|
form = null;
|
|
}
|
|
}
|
|
|
|
private void form_FormClosed(object sender, FormClosedEventArgs e) {
|
|
formLocation = form.Location;
|
|
form.Dispose();
|
|
form = null;
|
|
}
|
|
}
|
|
} |