Browse Source

Update ColorSelectorTool.gui

Peter Robinson 4 years ago
parent
commit
e4b56d2491
1 changed files with 79 additions and 10 deletions
  1. 79 10
      toybox/GuiEditorToy/1/assets/gui/ColorSelectorTool.gui

+ 79 - 10
toybox/GuiEditorToy/1/assets/gui/ColorSelectorTool.gui

@@ -1,5 +1,5 @@
 //--- Created With GUIEDITORTOY ---//
 //--- Created With GUIEDITORTOY ---//
-%guiContent = new GuiControl() {
+%guiContent = new GuiControl(ColorPick) {
    canSaveDynamicFields = "0";
    canSaveDynamicFields = "0";
    isContainer = "1";
    isContainer = "1";
    Profile = "GuiDefaultProfile";
    Profile = "GuiDefaultProfile";
@@ -21,7 +21,7 @@
       HorizSizing = "right";
       HorizSizing = "right";
       VertSizing = "bottom";
       VertSizing = "bottom";
       Position = "384 272";
       Position = "384 272";
-      Extent = "200 208";
+      Extent = "220 220";
       MinExtent = "8 2";
       MinExtent = "8 2";
       canSave = "1";
       canSave = "1";
       Visible = "1";
       Visible = "1";
@@ -49,6 +49,7 @@
          canSave = "1";
          canSave = "1";
          Visible = "1";
          Visible = "1";
          Active = "1";
          Active = "1";
+		 Command = "colorCallbackExec();";
          tooltipWidth = "250";
          tooltipWidth = "250";
          hovertime = "1000";
          hovertime = "1000";
          BaseColor = "Red";
          BaseColor = "Red";
@@ -72,6 +73,7 @@
          Active = "1";
          Active = "1";
          tooltipWidth = "250";
          tooltipWidth = "250";
          hovertime = "1000";
          hovertime = "1000";
+		 Command = "updatePickerBaseColor();";
          BaseColor = "Red";
          BaseColor = "Red";
          PickColor = "Black";
          PickColor = "Black";
          SelectorGap = "1";
          SelectorGap = "1";
@@ -79,7 +81,7 @@
          ActionOnMove = "1";
          ActionOnMove = "1";
          ShowSelector = "1";
          ShowSelector = "1";
       };
       };
-      new GuiSliderCtrl() {
+      new GuiSliderCtrl(CBAC) {
          canSaveDynamicFields = "0";
          canSaveDynamicFields = "0";
          isContainer = "0";
          isContainer = "0";
          Profile = "GuiSliderProfile";
          Profile = "GuiSliderProfile";
@@ -91,25 +93,92 @@
          canSave = "1";
          canSave = "1";
          Visible = "1";
          Visible = "1";
          Active = "1";
          Active = "1";
+		 Command = "colorCallbackExec();";
          tooltipWidth = "250";
          tooltipWidth = "250";
          hovertime = "1000";
          hovertime = "1000";
          range = "0.000 1.000";
          range = "0.000 1.000";
          ticks = "0";
          ticks = "0";
-         Value = "1";
       };
       };
    };
    };
 };
 };
 //--- GUIEDITORTOY END ---//
 //--- GUIEDITORTOY END ---//
 
 
-function CBBC::onAction(%this)
+$Callback = "";
+$CallbackType = 1;
+
+function updatePickerBaseColor()
 {
 {
-	%col = CBBC.getFieldValue("PickColor");
-	echo(%col);
+	%pickColor = CBVC.getValue();
+	%red = getWord(%pickColor, 0);
+	%green = getWord(%pickColor, 1);
+	%blue = getWord(%pickColor, 2);
+
+	CBBC.baseColor = %red SPC %green SPC %blue SPC "1.0";
+
+	CBBC.updateColor();
+	colorCallbackExec();
 }
 }
 
 
-function CBVC::onAction(%this)
+function getColorI(%color, %callback)
 {
 {
-	%col = CBVC.getFieldValue("PickColor");
-	CBBC.setFieldValue("BaseColor", %col);
+	$Callback = %callback;
+	$CallbackType = 1;
+	%act = 1.0 / 255.0;
+
+	%red = getWord(%color, 0) * %act;
+	%green = getWord(%color, 1) * %act;
+	%blue = getWord(%color, 2) * %act;
+	%alpha = getWord(%color, 3) * %act;
+	if(%alpha == "")
+		%alpha = "1.0";
+
+	echo(%red SPC %green SPC %blue SPC %alpha);
+
+	CBBC.pickColor = %red SPC %green SPC %blue SPC "1.0";
 	CBBC.updateColor();
 	CBBC.updateColor();
+	CBAC.setValue(%alpha);
+
+	Canvas.pushDialog(ColorPick);
+}
+
+function getColorF(%color, %callback)
+{
+	$Callback = %callback;
+	$CallbackType = 2;
+
+	%red = getWord(%color, 0);
+	%green = getWord(%color, 1);
+	%blue = getWord(%color, 2);
+	%alpha = getWord(%color, 3);
+	if(%alpha $= "")
+		%alpha = "1.0";
+
+	CBBC.pickColor = %red SPC %green SPC %blue SPC "1.0";
+	CBBC.updateColor();
+	CBAC.setValue(%alpha);
+
+	Canvas.pushDialog(ColorPick);
+}
+
+function constructCallbackColor(%pickColor)
+{
+	%red = getWord(%pickColor, 0);
+	%green = getWord(%pickColor, 1);
+	%blue = getWord(%pickColor, 2);
+	%alpha = CBAC.getValue();
+
+	if($CallbackType == 1)
+		return mCeil(%red * 255) SPC mCeil(%green * 255) SPC mCeil(%blue * 255) SPC mCeil( %alpha * 255 );
+	else
+		return %red SPC %green SPC %blue SPC %alpha;
+}
+
+function colorCallbackExec()
+{
+	eval($Callback @ "(\"" @ constructCallbackColor(CBBC.getValue()) @ "\");");
+}
+
+function CBBWindow::onClose()
+{
+	Canvas.popDialog(ColorPick);
 }
 }