Exemplo n.º 1
0
        public void update()
        {
            GuiStackControl SFXParametersStack = this.FOT("SFXParametersStack");

            for (uint i = 0; i < SFXParametersStack.getCount(); i++)
            {
                // If either the value field or the slider are currently being
                // edited, don't update the value in order to not interfere with
                // user editing.

                GuiControl ctrl = SFXParametersStack.getObject(i);

                GuiTextEditCtrl valueField  = ctrl.FOT("valueField");
                GuiSliderCtrl   valueSlider = ctrl.FOT("valueSlider");

                if (valueField.isFirstResponder() || valueSlider.isThumbBeingDragged())
                {
                    continue;
                }

                SFXParameter parameter = ctrl["sfxParameter"];

                valueField.setValue(parameter.value.AsString());
                valueSlider.setValue(parameter.value.AsString());
            }

            // If the control is still awake, schedule another
            // update.

            if (this.isVisible())
            {
                this.schedule(iGlobal["$SFX_PARAMETERS_UPDATE_INTERVAL"].AsString(), "update");
            }
        }
        public void loadDialog(GuiControl ctrl)
        {
            GuiCanvas       Canvas                    = "Canvas";
            GuiSliderCtrl   AlphaLevelSlider          = "AlphaLevelSlider";
            GuiSliderCtrl   MouseOverAlphaLevelSlider = "MouseOverAlphaLevelSlider";
            GuiTextEditCtrl AlphaLevelText            = "AlphaLevelText";
            GuiTextEditCtrl MouseOverAlphaLevelText   = "MouseOverAlphaLevelText";
            GuiTextEditCtrl AlphaFadeTimeText         = "AlphaFadeTimeText";

            this["ctrl"] = ctrl;
            this.checkAllowedDialogs();
            Canvas.pushDialog(this);

            if (this.ctrl["alpha"].AsBool())
            {
                this["oldAlphaValue"]     = ctrl.getAlphaValue().AsString();
                AlphaLevelSlider["value"] = this["oldAlphaValue"];
                AlphaLevelText["text"]    = this["oldAlphaValue"];
            }
            if (this.ctrl.mouseOverAlpha)
            {
                this["oldMouseOverAlphaValue"]     = ctrl.getMouseOverAlphaValue().AsString();
                MouseOverAlphaLevelSlider["value"] = this["oldMouseOverAlphaValue"];
                MouseOverAlphaLevelText["text"]    = this["oldMouseOverAlphaValue"];
            }
            if (this.ctrl.alphaFade)
            {
                this["oldAlphaFadeTime"]  = ctrl.getAlphaFadeTime().AsString();
                AlphaFadeTimeText["text"] = this["oldAlphaFadeTime"];
            }
        }
        public override void onWake()
        {
            GuiSliderCtrl   slider        = this.findObjectByInternalName("slider", true);
            GuiTextEditCtrl SlopeMinAngle =
                ((GuiControl)"PaintBrushSlopeControl").findObjectByInternalName("SlopeMinAngle", true);

            slider.setValue(SlopeMinAngle.getValue());
        }
        // This function pushes the color picker dialog and returns to a callback the selected value
        public static void GetColorI(string currentColor, string callback, string root, string updateCallback,
                                     string cancelCallback)
        {
            GuiSwatchButtonCtrl oldColor         = "oldColor";
            GuiSwatchButtonCtrl myColor          = "myColor";
            GuiColorPickerCtrl  ColorRangeSelect = "ColorRangeSelect";
            GuiColorPickerCtrl  ColorBlendSelect = "ColorBlendSelect";
            GuiSliderCtrl       ColorAlphaSelect = "ColorAlphaSelect";
            GuiCanvas           Canvas           = "Canvas";
            GuiTextEditCtrl     Channel_A_Val    = "Channel_A_Val";
            ColorPickerDlg      ColorPickerDlg   = "ColorPickerDlg";

            omni.bGlobal["$ColorPickerSignal"]         = true;
            omni.sGlobal["$ColorPickerCallback"]       = callback;
            omni.sGlobal["$ColorPickerCancelCallback"] = cancelCallback;
            omni.sGlobal["$ColorPickerUpdateCallback"] = updateCallback;
            omni.iGlobal["$ColorCallbackType"]         = 1; // ColorI

            oldColor.color = ColorIntToFloat(currentColor).AsColorF();
            myColor.color  = ColorIntToFloat(currentColor).AsColorF();

            ColorRangeSelect.showReticle = true;
            ColorBlendSelect.showReticle = true;

            // Set the range according to int
            ColorAlphaSelect.range = "0 255".AsPoint2F();

            // Set the RGBA displays accordingly
            float red   = omni.Util.getWord(currentColor, 0).AsFloat() / 255;
            float green = omni.Util.getWord(currentColor, 1).AsFloat() / 255;
            float blue  = omni.Util.getWord(currentColor, 2).AsFloat() / 255;
            float alpha = omni.Util.getWord(currentColor, 3).AsFloat();

            // set the initial range blend to correct color, no alpha needed
            // this should also set the color blend select right now
            ColorRangeSelect.baseColor = (red.AsString() + " " + green.AsString() + " " + blue.AsString() + " " + "1.0").AsColorF();
            ColorRangeSelect.updateColor();

            if (!root.isObject())
            {
                root = Canvas;
            }

            ((GuiCanvas)root).pushDialog(ColorPickerDlg);

            // update the alpha value first
            ColorAlphaSelect.setValue(alpha.AsString());
            Channel_A_Val.setText(alpha.AsString());
        }
        public void init()
        {
            GuiSliderCtrl slider = this.findObjectByInternalName("slider", true);

            slider.setValue("90.0");
        }
Exemplo n.º 6
0
        // Add a new SFXParameter to the list.
        public void addParameter(SFXParameter parameter)
        {
            GuiStackControl SFXParametersStack = this.FOT("SFXParametersStack");

            #region GuiRolloutCtrl ()        oc_Newobject23

            ObjectCreator oc_Newobject23 = new ObjectCreator("GuiRolloutCtrl", "");
            oc_Newobject23["Margin"]               = "0 0 0 0";
            oc_Newobject23["DefaultHeight"]        = "40";
            oc_Newobject23["Expanded"]             = "1";
            oc_Newobject23["ClickCollapse"]        = "1";
            oc_Newobject23["HideHeader"]           = "0";
            oc_Newobject23["isContainer"]          = "1";
            oc_Newobject23["Profile"]              = "GuiRolloutProfile";
            oc_Newobject23["HorizSizing"]          = "right";
            oc_Newobject23["VertSizing"]           = "bottom";
            oc_Newobject23["position"]             = "0 0";
            oc_Newobject23["Extent"]               = "421 114";
            oc_Newobject23["MinExtent"]            = "8 2";
            oc_Newobject23["canSave"]              = "1";
            oc_Newobject23["Visible"]              = "1";
            oc_Newobject23["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject23["hovertime"]            = "1000";
            oc_Newobject23["canSaveDynamicFields"] = "0";
            oc_Newobject23["caption"]              = parameter.getInternalName();

            #region GuiControl ()        oc_Newobject22

            ObjectCreator oc_Newobject22 = new ObjectCreator("GuiControl", "");
            oc_Newobject22["isContainer"]          = "1";
            oc_Newobject22["Profile"]              = "ToolsGuiDefaultProfile";
            oc_Newobject22["HorizSizing"]          = "right";
            oc_Newobject22["VertSizing"]           = "bottom";
            oc_Newobject22["position"]             = "0 17";
            oc_Newobject22["Extent"]               = "421 94";
            oc_Newobject22["MinExtent"]            = "421 94";
            oc_Newobject22["canSave"]              = "1";
            oc_Newobject22["Visible"]              = "1";
            oc_Newobject22["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject22["hovertime"]            = "1000";
            oc_Newobject22["canSaveDynamicFields"] = "0";

            #region GuiTextCtrl ()        oc_Newobject3

            ObjectCreator oc_Newobject3 = new ObjectCreator("GuiTextCtrl", "");
            oc_Newobject3["text"]                 = "Value";
            oc_Newobject3["maxLength"]            = "1024";
            oc_Newobject3["Margin"]               = "0 0 0 0";
            oc_Newobject3["Padding"]              = "0 0 0 0";
            oc_Newobject3["AnchorTop"]            = "1";
            oc_Newobject3["AnchorBottom"]         = "0";
            oc_Newobject3["AnchorLeft"]           = "1";
            oc_Newobject3["AnchorRight"]          = "0";
            oc_Newobject3["isContainer"]          = "0";
            oc_Newobject3["Profile"]              = "ToolsGuiAutoSizeTextProfile";
            oc_Newobject3["HorizSizing"]          = "right";
            oc_Newobject3["VertSizing"]           = "bottom";
            oc_Newobject3["position"]             = "7 4";
            oc_Newobject3["Extent"]               = "27 17";
            oc_Newobject3["MinExtent"]            = "8 2";
            oc_Newobject3["canSave"]              = "1";
            oc_Newobject3["Visible"]              = "1";
            oc_Newobject3["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject3["hovertime"]            = "1000";
            oc_Newobject3["canSaveDynamicFields"] = "0";

            #endregion

            oc_Newobject22["#Newobject3"] = oc_Newobject3;

            #region GuiTextCtrl ()        oc_Newobject4

            ObjectCreator oc_Newobject4 = new ObjectCreator("GuiTextCtrl", "");
            oc_Newobject4["text"]                 = "Channel";
            oc_Newobject4["maxLength"]            = "1024";
            oc_Newobject4["Margin"]               = "0 0 0 0";
            oc_Newobject4["Padding"]              = "0 0 0 0";
            oc_Newobject4["AnchorTop"]            = "1";
            oc_Newobject4["AnchorBottom"]         = "0";
            oc_Newobject4["AnchorLeft"]           = "1";
            oc_Newobject4["AnchorRight"]          = "0";
            oc_Newobject4["isContainer"]          = "0";
            oc_Newobject4["Profile"]              = "ToolsGuiAutoSizeTextProfile";
            oc_Newobject4["HorizSizing"]          = "right";
            oc_Newobject4["VertSizing"]           = "bottom";
            oc_Newobject4["position"]             = "7 27";
            oc_Newobject4["Extent"]               = "45 17";
            oc_Newobject4["MinExtent"]            = "8 2";
            oc_Newobject4["canSave"]              = "1";
            oc_Newobject4["Visible"]              = "1";
            oc_Newobject4["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject4["hovertime"]            = "1000";
            oc_Newobject4["canSaveDynamicFields"] = "0";

            #endregion

            oc_Newobject22["#Newobject4"] = oc_Newobject4;

            #region GuiTextCtrl ()        oc_Newobject5

            ObjectCreator oc_Newobject5 = new ObjectCreator("GuiTextCtrl", "");
            oc_Newobject5["text"]                 = "Comment";
            oc_Newobject5["maxLength"]            = "1024";
            oc_Newobject5["Margin"]               = "0 0 0 0";
            oc_Newobject5["Padding"]              = "0 0 0 0";
            oc_Newobject5["AnchorTop"]            = "1";
            oc_Newobject5["AnchorBottom"]         = "0";
            oc_Newobject5["AnchorLeft"]           = "1";
            oc_Newobject5["AnchorRight"]          = "0";
            oc_Newobject5["isContainer"]          = "0";
            oc_Newobject5["Profile"]              = "ToolsGuiAutoSizeTextProfile";
            oc_Newobject5["HorizSizing"]          = "right";
            oc_Newobject5["VertSizing"]           = "bottom";
            oc_Newobject5["position"]             = "7 50";
            oc_Newobject5["Extent"]               = "47 17";
            oc_Newobject5["MinExtent"]            = "8 2";
            oc_Newobject5["canSave"]              = "1";
            oc_Newobject5["Visible"]              = "1";
            oc_Newobject5["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject5["hovertime"]            = "1000";
            oc_Newobject5["canSaveDynamicFields"] = "0";

            #endregion

            oc_Newobject22["#Newobject5"] = oc_Newobject5;

            #region GuiTextCtrl ()        oc_Newobject6

            ObjectCreator oc_Newobject6 = new ObjectCreator("GuiTextCtrl", "");
            oc_Newobject6["text"]                 = "Tags";
            oc_Newobject6["maxLength"]            = "1024";
            oc_Newobject6["Margin"]               = "0 0 0 0";
            oc_Newobject6["Padding"]              = "0 0 0 0";
            oc_Newobject6["AnchorTop"]            = "1";
            oc_Newobject6["AnchorBottom"]         = "0";
            oc_Newobject6["AnchorLeft"]           = "1";
            oc_Newobject6["AnchorRight"]          = "0";
            oc_Newobject6["isContainer"]          = "0";
            oc_Newobject6["Profile"]              = "ToolsGuiAutoSizeTextProfile";
            oc_Newobject6["HorizSizing"]          = "right";
            oc_Newobject6["VertSizing"]           = "bottom";
            oc_Newobject6["position"]             = "7 73";
            oc_Newobject6["Extent"]               = "25 17";
            oc_Newobject6["MinExtent"]            = "8 2";
            oc_Newobject6["canSave"]              = "1";
            oc_Newobject6["Visible"]              = "1";
            oc_Newobject6["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject6["hovertime"]            = "1000";
            oc_Newobject6["canSaveDynamicFields"] = "0";

            #endregion

            oc_Newobject22["#Newobject6"] = oc_Newobject6;

            #region GuiTextCtrl ()        oc_Newobject7

            ObjectCreator oc_Newobject7 = new ObjectCreator("GuiTextCtrl", "");
            oc_Newobject7["text"]                 = "Min";
            oc_Newobject7["maxLength"]            = "1024";
            oc_Newobject7["Margin"]               = "0 0 0 0";
            oc_Newobject7["Padding"]              = "0 0 0 0";
            oc_Newobject7["AnchorTop"]            = "1";
            oc_Newobject7["AnchorBottom"]         = "0";
            oc_Newobject7["AnchorLeft"]           = "1";
            oc_Newobject7["AnchorRight"]          = "0";
            oc_Newobject7["isContainer"]          = "0";
            oc_Newobject7["Profile"]              = "ToolsGuiAutoSizeTextProfile";
            oc_Newobject7["HorizSizing"]          = "left";
            oc_Newobject7["VertSizing"]           = "bottom";
            oc_Newobject7["position"]             = "205 27";
            oc_Newobject7["Extent"]               = "17 17";
            oc_Newobject7["MinExtent"]            = "8 2";
            oc_Newobject7["canSave"]              = "1";
            oc_Newobject7["Visible"]              = "1";
            oc_Newobject7["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject7["hovertime"]            = "1000";
            oc_Newobject7["canSaveDynamicFields"] = "0";

            #endregion

            oc_Newobject22["#Newobject7"] = oc_Newobject7;

            #region GuiTextCtrl ()        oc_Newobject8

            ObjectCreator oc_Newobject8 = new ObjectCreator("GuiTextCtrl", "");
            oc_Newobject8["text"]                 = "Max";
            oc_Newobject8["maxLength"]            = "1024";
            oc_Newobject8["Margin"]               = "0 0 0 0";
            oc_Newobject8["Padding"]              = "0 0 0 0";
            oc_Newobject8["AnchorTop"]            = "1";
            oc_Newobject8["AnchorBottom"]         = "0";
            oc_Newobject8["AnchorLeft"]           = "1";
            oc_Newobject8["AnchorRight"]          = "0";
            oc_Newobject8["isContainer"]          = "0";
            oc_Newobject8["Profile"]              = "ToolsGuiAutoSizeTextProfile";
            oc_Newobject8["HorizSizing"]          = "left";
            oc_Newobject8["VertSizing"]           = "bottom";
            oc_Newobject8["position"]             = "271 27";
            oc_Newobject8["Extent"]               = "21 17";
            oc_Newobject8["MinExtent"]            = "8 2";
            oc_Newobject8["canSave"]              = "1";
            oc_Newobject8["Visible"]              = "1";
            oc_Newobject8["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject8["hovertime"]            = "1000";
            oc_Newobject8["canSaveDynamicFields"] = "0";

            #endregion

            oc_Newobject22["#Newobject8"] = oc_Newobject8;

            #region GuiTextCtrl ()        oc_Newobject9

            ObjectCreator oc_Newobject9 = new ObjectCreator("GuiTextCtrl", "");
            oc_Newobject9["text"]                 = "Initial";
            oc_Newobject9["maxLength"]            = "1024";
            oc_Newobject9["Margin"]               = "0 0 0 0";
            oc_Newobject9["Padding"]              = "0 0 0 0";
            oc_Newobject9["AnchorTop"]            = "1";
            oc_Newobject9["AnchorBottom"]         = "0";
            oc_Newobject9["AnchorLeft"]           = "1";
            oc_Newobject9["AnchorRight"]          = "0";
            oc_Newobject9["isContainer"]          = "0";
            oc_Newobject9["Profile"]              = "ToolsGuiAutoSizeTextProfile";
            oc_Newobject9["HorizSizing"]          = "left";
            oc_Newobject9["VertSizing"]           = "bottom";
            oc_Newobject9["position"]             = "340 27";
            oc_Newobject9["Extent"]               = "24 17";
            oc_Newobject9["MinExtent"]            = "8 2";
            oc_Newobject9["canSave"]              = "1";
            oc_Newobject9["Visible"]              = "1";
            oc_Newobject9["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject9["hovertime"]            = "1000";
            oc_Newobject9["canSaveDynamicFields"] = "0";

            #endregion

            oc_Newobject22["#Newobject9"] = oc_Newobject9;

            #region GuiSliderCtrl ()        oc_Newobject10

            ObjectCreator oc_Newobject10 = new ObjectCreator("GuiSliderCtrl", "");
            oc_Newobject10["range"]                = "0 1";
            oc_Newobject10["ticks"]                = "0";
            oc_Newobject10["snap"]                 = "0";
            oc_Newobject10["value"]                = "0.5";
            oc_Newobject10["isContainer"]          = "0";
            oc_Newobject10["Profile"]              = "ToolsGuiSliderProfile";
            oc_Newobject10["HorizSizing"]          = "width";
            oc_Newobject10["VertSizing"]           = "bottom";
            oc_Newobject10["position"]             = "65 5";
            oc_Newobject10["Extent"]               = "263 15";
            oc_Newobject10["MinExtent"]            = "8 2";
            oc_Newobject10["canSave"]              = "1";
            oc_Newobject10["Visible"]              = "1";
            oc_Newobject10["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject10["hovertime"]            = "1000";
            oc_Newobject10["internalName"]         = "valueSlider";
            oc_Newobject10["canSaveDynamicFields"] = "0";
            oc_Newobject10["command"]              = parameter + ".value = $thisControl.getValue();";

            #endregion

            oc_Newobject22["#Newobject10"] = oc_Newobject10;

            #region GuiTextEditCtrl ()        oc_Newobject11

            ObjectCreator oc_Newobject11 = new ObjectCreator("GuiTextEditCtrl", "");
            oc_Newobject11["historySize"]          = "0";
            oc_Newobject11["password"]             = "******";
            oc_Newobject11["tabComplete"]          = "0";
            oc_Newobject11["sinkAllKeyEvents"]     = "0";
            oc_Newobject11["passwordMask"]         = "•";
            oc_Newobject11["maxLength"]            = "1024";
            oc_Newobject11["Margin"]               = "0 0 0 0";
            oc_Newobject11["Padding"]              = "0 0 0 0";
            oc_Newobject11["AnchorTop"]            = "1";
            oc_Newobject11["AnchorBottom"]         = "0";
            oc_Newobject11["AnchorLeft"]           = "1";
            oc_Newobject11["AnchorRight"]          = "0";
            oc_Newobject11["isContainer"]          = "0";
            oc_Newobject11["Profile"]              = "ToolsGuiTextEditProfile";
            oc_Newobject11["HorizSizing"]          = "left";
            oc_Newobject11["VertSizing"]           = "bottom";
            oc_Newobject11["position"]             = "336 4";
            oc_Newobject11["Extent"]               = "39 17";
            oc_Newobject11["MinExtent"]            = "8 2";
            oc_Newobject11["canSave"]              = "1";
            oc_Newobject11["Visible"]              = "1";
            oc_Newobject11["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject11["hovertime"]            = "1000";
            oc_Newobject11["internalName"]         = "valueField";
            oc_Newobject11["canSaveDynamicFields"] = "0";
            oc_Newobject11["altCommand"]           = parameter + ".value = $thisControl.getValue();";

            #endregion

            oc_Newobject22["#Newobject11"] = oc_Newobject11;

            #region GuiBitmapButtonCtrl ()        oc_Newobject12

            ObjectCreator oc_Newobject12 = new ObjectCreator("GuiBitmapButtonCtrl", "");
            oc_Newobject12["bitmap"]               = "tools/gui/images/reset-icon";
            oc_Newobject12["autoFit"]              = "0";
            oc_Newobject12["groupNum"]             = "-1";
            oc_Newobject12["buttonType"]           = "PushButton";
            oc_Newobject12["useMouseEvents"]       = "0";
            oc_Newobject12["isContainer"]          = "0";
            oc_Newobject12["Profile"]              = "ToolsGuiDefaultProfile";
            oc_Newobject12["HorizSizing"]          = "left";
            oc_Newobject12["VertSizing"]           = "bottom";
            oc_Newobject12["position"]             = "381 4";
            oc_Newobject12["Extent"]               = "17 17";
            oc_Newobject12["MinExtent"]            = "8 2";
            oc_Newobject12["canSave"]              = "1";
            oc_Newobject12["Visible"]              = "1";
            oc_Newobject12["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject12["hovertime"]            = "1000";
            oc_Newobject12["internalName"]         = "resetButton";
            oc_Newobject12["canSaveDynamicFields"] = "0";
            oc_Newobject12["command"]              = parameter + ".reset();";

            #endregion

            oc_Newobject22["#Newobject12"] = oc_Newobject12;

            #region GuiBitmapButtonCtrl ()        oc_Newobject13

            ObjectCreator oc_Newobject13 = new ObjectCreator("GuiBitmapButtonCtrl", "");
            oc_Newobject13["bitmap"]               = "tools/gui/images/delete";
            oc_Newobject13["autoFit"]              = "0";
            oc_Newobject13["groupNum"]             = "-1";
            oc_Newobject13["buttonType"]           = "PushButton";
            oc_Newobject13["useMouseEvents"]       = "0";
            oc_Newobject13["isContainer"]          = "0";
            oc_Newobject13["Profile"]              = "ToolsGuiDefaultProfile";
            oc_Newobject13["HorizSizing"]          = "left";
            oc_Newobject13["VertSizing"]           = "bottom";
            oc_Newobject13["position"]             = "398 4";
            oc_Newobject13["Extent"]               = "17 17";
            oc_Newobject13["MinExtent"]            = "8 2";
            oc_Newobject13["canSave"]              = "1";
            oc_Newobject13["Visible"]              = "1";
            oc_Newobject13["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject13["hovertime"]            = "1000";
            oc_Newobject13["internalName"]         = "deleteButton";
            oc_Newobject13["canSaveDynamicFields"] = "0";
            oc_Newobject13["command"]              = "EManageSFXParameters.showDeleteParameterDlg( " + parameter + ");";

            #endregion

            oc_Newobject22["#Newobject13"] = oc_Newobject13;

            #region GuiPopUpMenuCtrl ()        oc_Newobject14

            ObjectCreator oc_Newobject14 = new ObjectCreator("GuiPopUpMenuCtrl", "");
            oc_Newobject14["maxPopupHeight"]       = "200";
            oc_Newobject14["sbUsesNAColor"]        = "0";
            oc_Newobject14["reverseTextList"]      = "0";
            oc_Newobject14["bitmapBounds"]         = "16 16";
            oc_Newobject14["maxLength"]            = "1024";
            oc_Newobject14["Margin"]               = "0 0 0 0";
            oc_Newobject14["Padding"]              = "0 0 0 0";
            oc_Newobject14["AnchorTop"]            = "1";
            oc_Newobject14["AnchorBottom"]         = "0";
            oc_Newobject14["AnchorLeft"]           = "1";
            oc_Newobject14["AnchorRight"]          = "0";
            oc_Newobject14["isContainer"]          = "0";
            oc_Newobject14["Profile"]              = "ToolsGuiPopUpMenuProfile";
            oc_Newobject14["HorizSizing"]          = "width";
            oc_Newobject14["VertSizing"]           = "bottom";
            oc_Newobject14["position"]             = "65 26";
            oc_Newobject14["Extent"]               = "135 18";
            oc_Newobject14["MinExtent"]            = "8 2";
            oc_Newobject14["canSave"]              = "1";
            oc_Newobject14["Visible"]              = "1";
            oc_Newobject14["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject14["hovertime"]            = "1000";
            oc_Newobject14["internalName"]         = "channelDropdown";
            oc_Newobject14["canSaveDynamicFields"] = "0";
            oc_Newobject14["command"]              = parameter + ".channel = $ThisControl.getText(); EManageSFXParameters.saveParameter( " + parameter + ");";

            #endregion

            oc_Newobject22["#Newobject14"] = oc_Newobject14;

            #region GuiTextEditCtrl ()        oc_Newobject15

            ObjectCreator oc_Newobject15 = new ObjectCreator("GuiTextEditCtrl", "");
            oc_Newobject15["historySize"]          = "0";
            oc_Newobject15["password"]             = "******";
            oc_Newobject15["tabComplete"]          = "0";
            oc_Newobject15["sinkAllKeyEvents"]     = "0";
            oc_Newobject15["passwordMask"]         = "•";
            oc_Newobject15["maxLength"]            = "1024";
            oc_Newobject15["Margin"]               = "0 0 0 0";
            oc_Newobject15["Padding"]              = "0 0 0 0";
            oc_Newobject15["AnchorTop"]            = "1";
            oc_Newobject15["AnchorBottom"]         = "0";
            oc_Newobject15["AnchorLeft"]           = "1";
            oc_Newobject15["AnchorRight"]          = "0";
            oc_Newobject15["isContainer"]          = "0";
            oc_Newobject15["Profile"]              = "ToolsGuiTextEditProfile";
            oc_Newobject15["HorizSizing"]          = "width";
            oc_Newobject15["VertSizing"]           = "bottom";
            oc_Newobject15["position"]             = "65 50";
            oc_Newobject15["Extent"]               = "350 17";
            oc_Newobject15["MinExtent"]            = "8 2";
            oc_Newobject15["canSave"]              = "1";
            oc_Newobject15["Visible"]              = "1";
            oc_Newobject15["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject15["hovertime"]            = "1000";
            oc_Newobject15["internalName"]         = "descriptionField";
            oc_Newobject15["canSaveDynamicFields"] = "0";
            oc_Newobject15["altCommand"]           = parameter + ".description = $ThisControl.getText(); EManageSFXParameters.saveParameter( " + parameter + ");";

            #endregion

            oc_Newobject22["#Newobject15"] = oc_Newobject15;

            #region GuiTextEditCtrl ()        oc_Newobject16

            ObjectCreator oc_Newobject16 = new ObjectCreator("GuiTextEditCtrl", "");
            oc_Newobject16["historySize"]          = "0";
            oc_Newobject16["password"]             = "******";
            oc_Newobject16["tabComplete"]          = "0";
            oc_Newobject16["sinkAllKeyEvents"]     = "0";
            oc_Newobject16["passwordMask"]         = "•";
            oc_Newobject16["maxLength"]            = "1024";
            oc_Newobject16["Margin"]               = "0 0 0 0";
            oc_Newobject16["Padding"]              = "0 0 0 0";
            oc_Newobject16["AnchorTop"]            = "1";
            oc_Newobject16["AnchorBottom"]         = "0";
            oc_Newobject16["AnchorLeft"]           = "1";
            oc_Newobject16["AnchorRight"]          = "0";
            oc_Newobject16["isContainer"]          = "0";
            oc_Newobject16["Profile"]              = "ToolsGuiTextEditProfile";
            oc_Newobject16["HorizSizing"]          = "width";
            oc_Newobject16["VertSizing"]           = "bottom";
            oc_Newobject16["position"]             = "65 73";
            oc_Newobject16["Extent"]               = "230 17";
            oc_Newobject16["MinExtent"]            = "8 2";
            oc_Newobject16["canSave"]              = "1";
            oc_Newobject16["Visible"]              = "1";
            oc_Newobject16["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject16["hovertime"]            = "1000";
            oc_Newobject16["internalName"]         = "tagsField";
            oc_Newobject16["canSaveDynamicFields"] = "0";
            oc_Newobject16["altCommand"]           = "EManageSFXParameters.updateParameterCategories( " + parameter +
                                                     ", $ThisControl.getText() );";

            #endregion

            oc_Newobject22["#Newobject16"] = oc_Newobject16;

            #region GuiTextEditCtrl ()        oc_Newobject17

            ObjectCreator oc_Newobject17 = new ObjectCreator("GuiTextEditCtrl", "");
            oc_Newobject17["historySize"]          = "0";
            oc_Newobject17["password"]             = "******";
            oc_Newobject17["tabComplete"]          = "0";
            oc_Newobject17["sinkAllKeyEvents"]     = "0";
            oc_Newobject17["passwordMask"]         = "•";
            oc_Newobject17["maxLength"]            = "1024";
            oc_Newobject17["Margin"]               = "0 0 0 0";
            oc_Newobject17["Padding"]              = "0 0 0 0";
            oc_Newobject17["AnchorTop"]            = "1";
            oc_Newobject17["AnchorBottom"]         = "0";
            oc_Newobject17["AnchorLeft"]           = "1";
            oc_Newobject17["AnchorRight"]          = "0";
            oc_Newobject17["isContainer"]          = "0";
            oc_Newobject17["Profile"]              = "ToolsGuiTextEditProfile";
            oc_Newobject17["HorizSizing"]          = "left";
            oc_Newobject17["VertSizing"]           = "bottom";
            oc_Newobject17["position"]             = "372 27";
            oc_Newobject17["Extent"]               = "43 17";
            oc_Newobject17["MinExtent"]            = "8 2";
            oc_Newobject17["canSave"]              = "1";
            oc_Newobject17["Visible"]              = "1";
            oc_Newobject17["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject17["hovertime"]            = "1000";
            oc_Newobject17["internalName"]         = "defaultField";
            oc_Newobject17["canSaveDynamicFields"] = "0";
            oc_Newobject17["command"]              = parameter + ".defaultValue = $ThisControl.getValue(); EManageSFXParameters.saveParameter( " + parameter + ");";

            #endregion

            oc_Newobject22["#Newobject17"] = oc_Newobject17;

            #region GuiTextEditCtrl ()        oc_Newobject18

            ObjectCreator oc_Newobject18 = new ObjectCreator("GuiTextEditCtrl", "");
            oc_Newobject18["historySize"]          = "0";
            oc_Newobject18["password"]             = "******";
            oc_Newobject18["tabComplete"]          = "0";
            oc_Newobject18["sinkAllKeyEvents"]     = "0";
            oc_Newobject18["passwordMask"]         = "•";
            oc_Newobject18["maxLength"]            = "1024";
            oc_Newobject18["Margin"]               = "0 0 0 0";
            oc_Newobject18["Padding"]              = "0 0 0 0";
            oc_Newobject18["AnchorTop"]            = "1";
            oc_Newobject18["AnchorBottom"]         = "0";
            oc_Newobject18["AnchorLeft"]           = "1";
            oc_Newobject18["AnchorRight"]          = "0";
            oc_Newobject18["isContainer"]          = "0";
            oc_Newobject18["Profile"]              = "ToolsGuiTextEditProfile";
            oc_Newobject18["HorizSizing"]          = "left";
            oc_Newobject18["VertSizing"]           = "bottom";
            oc_Newobject18["position"]             = "297 27";
            oc_Newobject18["Extent"]               = "39 17";
            oc_Newobject18["MinExtent"]            = "8 2";
            oc_Newobject18["canSave"]              = "1";
            oc_Newobject18["Visible"]              = "1";
            oc_Newobject18["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject18["hovertime"]            = "1000";
            oc_Newobject18["internalName"]         = "rangeMaxField";
            oc_Newobject18["canSaveDynamicFields"] = "0";
            oc_Newobject18["altCommand"]           = parameter + ".range = " + parameter + ".range.x SPC $ThisControl.getValue(); $ThisControl.parentGroup-->valueSlider.range = " + parameter + ".range; EManageSFXParameters.saveParameter( " + parameter + ");";

            #endregion

            oc_Newobject22["#Newobject18"] = oc_Newobject18;

            #region GuiTextEditCtrl ()        oc_Newobject19

            ObjectCreator oc_Newobject19 = new ObjectCreator("GuiTextEditCtrl", "");
            oc_Newobject19["historySize"]          = "0";
            oc_Newobject19["password"]             = "******";
            oc_Newobject19["tabComplete"]          = "0";
            oc_Newobject19["sinkAllKeyEvents"]     = "0";
            oc_Newobject19["passwordMask"]         = "•";
            oc_Newobject19["maxLength"]            = "1024";
            oc_Newobject19["Margin"]               = "0 0 0 0";
            oc_Newobject19["Padding"]              = "0 0 0 0";
            oc_Newobject19["AnchorTop"]            = "1";
            oc_Newobject19["AnchorBottom"]         = "0";
            oc_Newobject19["AnchorLeft"]           = "1";
            oc_Newobject19["AnchorRight"]          = "0";
            oc_Newobject19["isContainer"]          = "0";
            oc_Newobject19["Profile"]              = "ToolsGuiTextEditProfile";
            oc_Newobject19["HorizSizing"]          = "left";
            oc_Newobject19["VertSizing"]           = "bottom";
            oc_Newobject19["position"]             = "229 27";
            oc_Newobject19["Extent"]               = "39 17";
            oc_Newobject19["MinExtent"]            = "8 2";
            oc_Newobject19["canSave"]              = "1";
            oc_Newobject19["Visible"]              = "1";
            oc_Newobject19["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject19["hovertime"]            = "1000";
            oc_Newobject19["internalName"]         = "rangeMinField";
            oc_Newobject19["canSaveDynamicFields"] = "0";
            oc_Newobject19["altCommand"]           = parameter + ".range = $ThisControl.getValue() SPC " + parameter + ".range.y; $ThisControl.parentGroup-->valueSlider.range = " + parameter + ".range; EManageSFXParameters.saveParameter( " + parameter + ");";

            #endregion

            oc_Newobject22["#Newobject19"] = oc_Newobject19;

            #region GuiCheckBoxCtrl ()        oc_Newobject20

            ObjectCreator oc_Newobject20 = new ObjectCreator("GuiCheckBoxCtrl", "");
            oc_Newobject20["useInactiveState"]     = "0";
            oc_Newobject20["text"]                 = "Local";
            oc_Newobject20["groupNum"]             = "-1";
            oc_Newobject20["buttonType"]           = "ToggleButton";
            oc_Newobject20["useMouseEvents"]       = "0";
            oc_Newobject20["isContainer"]          = "0";
            oc_Newobject20["Profile"]              = "ToolsGuiCheckBoxProfile";
            oc_Newobject20["HorizSizing"]          = "left";
            oc_Newobject20["VertSizing"]           = "bottom";
            oc_Newobject20["position"]             = "302 73";
            oc_Newobject20["Extent"]               = "45 17";
            oc_Newobject20["MinExtent"]            = "8 2";
            oc_Newobject20["canSave"]              = "1";
            oc_Newobject20["Visible"]              = "1";
            oc_Newobject20["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject20["hovertime"]            = "1000";
            oc_Newobject20["internalName"]         = "localCheckbox";
            oc_Newobject20["canSaveDynamicFields"] = "0";

            #endregion

            oc_Newobject22["#Newobject20"] = oc_Newobject20;

            #region GuiPopUpMenuCtrl ()        oc_Newobject21

            ObjectCreator oc_Newobject21 = new ObjectCreator("GuiPopUpMenuCtrl", "");
            oc_Newobject21["maxPopupHeight"]       = "200";
            oc_Newobject21["sbUsesNAColor"]        = "0";
            oc_Newobject21["reverseTextList"]      = "0";
            oc_Newobject21["bitmapBounds"]         = "16 16";
            oc_Newobject21["maxLength"]            = "1024";
            oc_Newobject21["Margin"]               = "0 0 0 0";
            oc_Newobject21["Padding"]              = "0 0 0 0";
            oc_Newobject21["AnchorTop"]            = "1";
            oc_Newobject21["AnchorBottom"]         = "0";
            oc_Newobject21["AnchorLeft"]           = "1";
            oc_Newobject21["AnchorRight"]          = "0";
            oc_Newobject21["isContainer"]          = "0";
            oc_Newobject21["Profile"]              = "ToolsGuiPopUpMenuProfile";
            oc_Newobject21["HorizSizing"]          = "left";
            oc_Newobject21["VertSizing"]           = "bottom";
            oc_Newobject21["position"]             = "349 73";
            oc_Newobject21["Extent"]               = "64 17";
            oc_Newobject21["MinExtent"]            = "8 2";
            oc_Newobject21["canSave"]              = "1";
            oc_Newobject21["Visible"]              = "1";
            oc_Newobject21["tooltipprofile"]       = "ToolsGuiToolTipProfile";
            oc_Newobject21["hovertime"]            = "1000";
            oc_Newobject21["internalName"]         = "sourceDropdown";
            oc_Newobject21["canSaveDynamicFields"] = "0";

            #endregion

            oc_Newobject22["#Newobject21"] = oc_Newobject21;

            #endregion

            oc_Newobject23["#Newobject22"] = oc_Newobject22;

            #endregion

            GuiRolloutCtrl ctrl = oc_Newobject23.Create();

            ctrl["sfxParameter"] = parameter;

            // Deactivate the per-source controls for now as these are not
            // yet implemented in SFX.

            GuiCheckBoxCtrl  localCheckbox    = ctrl.FOT("localCheckbox");
            GuiPopUpMenuCtrl sourceDropdown   = ctrl.FOT("sourceDropdown");
            GuiTextEditCtrl  valueField       = ctrl.FOT("valueField");
            GuiTextEditCtrl  rangeMinField    = ctrl.FOT("rangeMinField");
            GuiTextEditCtrl  rangeMaxField    = ctrl.FOT("rangeMaxField");
            GuiTextEditCtrl  defaultField     = ctrl.FOT("defaultField");
            GuiTextEditCtrl  descriptionField = ctrl.FOT("descriptionField");
            GuiSliderCtrl    valueSlider      = ctrl.FOT("valueSlider");
            GuiPopUpMenuCtrl channelDropdown  = ctrl.FOT("channelDropdown");
            GuiTextEditCtrl  tagsField        = ctrl.FOT("tagsField");

            localCheckbox.setActive(false);
            sourceDropdown.setActive(false);

            // Set the fields to reflect the parameter's current settings.

            valueField.setValue(parameter.value.AsString());
            rangeMinField.setText(parameter.range.x.AsString());
            rangeMaxField.setText(parameter.range.y.AsString());
            defaultField.setValue(parameter.defaultValue.AsString());
            descriptionField.setText(parameter.description);

            valueSlider.range = parameter.range;
            valueSlider.setValue(parameter.value.AsString());

            // Set up the channels dropdown.

            GuiPopUpMenuCtrl list = channelDropdown;
            for (int i = 0; i < iGlobal["$SFX_PARAMETER_CHANNELS_COUNT"]; i++)
            {
                list.add(sGlobal["$SFX_PARAMETER_CHANNELS[" + i + "]"], i);
            }
            list.sort();
            list.setSelected(list.findText(parameter["channel"]));

            SFXParametersStack.addGuiControl(ctrl);

            // Fill tagging field.

            string tags    = "";
            bool   isFirst = true;
            for (int i = 0; parameter["categories[" + i + "]"] != ""; i++)
            {
                if (!isFirst)
                {
                    tags = tags + ", ";
                }

                tags = tags + parameter["categories[" + i + "]"];

                isFirst = false;
            }

            tagsField.setText(tags);
        }
Exemplo n.º 7
0
            public void updateSpeedFields(bool isRandom, float value, bool isSlider, bool onMouseUp)
            {
                GuiSliderCtrl   PEE_ejectionVelocity_slider   = this.FOT("PEE_ejectionVelocity_slider");
                GuiSliderCtrl   PEE_velocityVariance_slider   = this.FOT("PEE_velocityVariance_slider");
                GuiTextEditCtrl PEE_ejectionVelocity_textEdit = this.FOT("PEE_ejectionVelocity_textEdit");
                GuiTextEditCtrl PEE_velocityVariance_textEdit = this.FOT("PEE_velocityVariance_textEdit");
                editor          Editor         = "Editor";
                ParticleEditor  ParticleEditor = "ParticleEditor";

                this.setEmitterDirty();
                SimObject emitter = this.currEmitter;

                // Transfer values over to gui controls.

                if (isRandom)
                {
                    if (value > PEE_ejectionVelocity_slider.getValue())
                    {
                        PEE_ejectionVelocity_textEdit.setText(value.AsString());
                        PEE_ejectionVelocity_slider.setValue(value.AsString());
                    }
                }
                else
                {
                    if (value < PEE_velocityVariance_slider.getValue())
                    {
                        PEE_velocityVariance_textEdit.setText(value.AsString());
                        PEE_velocityVariance_slider.setValue(value.AsString());
                    }
                }

                // Submit undo.

                SimObject last = Editor.getUndoManager().getUndoAction((Editor.getUndoManager().getUndoCount() - 1));

                if ((isSlider) && (last["isSlider"].AsBool()) && (!last["onMouseUp"].AsBool()))
                {
                    last["isSlider"]  = isSlider.AsString();
                    last["onMouseUp"] = onMouseUp.AsString();
                    last["newValueEjectionVelocity"] = PEE_ejectionVelocity_textEdit.getText();
                    last["newValueVelocityVariance"] = PEE_velocityVariance_textEdit.getText();
                }
                else
                {
                    ParticleEditorUndo.ActionUpdateActiveEmitterSpeedFields action = ParticleEditor.createUndo <ParticleEditorUndo.ActionUpdateActiveEmitterSpeedFields>("Update Active Emitter");
                    action["emitter"]   = emitter;
                    action["isSlider"]  = isSlider.AsString();
                    action["onMouseUp"] = onMouseUp.AsString();

                    action["newValueEjectionVelocity"] = PEE_ejectionVelocity_textEdit.getText();
                    action["oldValueEjectionVelocity"] = emitter["ejectionVelocity"];

                    action["newValueVelocityVariance"] = PEE_velocityVariance_textEdit.getText();
                    action["oldValueVelocityVariance"] = emitter["velocityVariance"];

                    ParticleEditor.submitUndo(action);
                }

                // Set the values on the current emitter.

                emitter["ejectionVelocity"] = PEE_ejectionVelocity_textEdit.getText();
                emitter["velocityVariance"] = PEE_velocityVariance_textEdit.getText();
                emitter.call("reload");
            }
Exemplo n.º 8
0
            public void updateLifeFields(bool isRandom, float value, bool isSlider, bool onMouseUp)
            {
                GuiCheckBoxCtrl PEE_infiniteLoop                = this.FOT("PEE_infiniteLoop");
                GuiSliderCtrl   PEE_lifetimeMS_slider           = this.FOT("PEE_lifetimeMS_slider");
                GuiSliderCtrl   PEE_lifetimeVarianceMS_slider   = this.FOT("PEE_lifetimeVarianceMS_slider");
                GuiTextEditCtrl PEE_lifetimeVarianceMS_textEdit = this.FOT("PEE_lifetimeVarianceMS_textEdit");
                GuiTextEditCtrl PEE_lifetimeMS_textEdit         = this.FOT("PEE_lifetimeMS_textEdit");
                editor          Editor         = "Editor";
                ParticleEditor  ParticleEditor = "ParticleEditor";

                this.setEmitterDirty();

                SimObject emitter = this.currEmitter;

                // Transfer values over to gui controls.

                if (isRandom)
                {
                    if (value > 0)
                    {
                        value++;
                    }

                    if (value > PEE_lifetimeMS_slider.getValue())
                    {
                        PEE_lifetimeMS_textEdit.setText(value.AsString());
                        PEE_lifetimeMS_slider.setValue(value.AsString());
                    }
                }
                else
                {
                    if (value > 0)
                    {
                        value--;
                    }

                    if (value < PEE_lifetimeVarianceMS_slider.getValue())
                    {
                        PEE_lifetimeVarianceMS_textEdit.setText(value.AsString());
                        PEE_lifetimeVarianceMS_slider.setValue(value.AsString());
                    }
                }

                // Submit undo.

                SimObject last = Editor.getUndoManager().getUndoAction((Editor.getUndoManager().getUndoCount() - 1));

                if ((isSlider) && (last["isSlider"].AsBool()) && (!last["onMouseUp"].AsBool()))
                {
                    last["isSlider"]                   = isSlider.AsString();
                    last["onMouseUp"]                  = onMouseUp.AsString();
                    last["newValueLifetimeMS"]         = PEE_lifetimeMS_textEdit.getText();
                    last["newValueLifetimeVarianceMS"] = PEE_lifetimeVarianceMS_textEdit.getText();
                }
                else
                {
                    ParticleEditorUndo.ActionUpdateActiveEmitterLifeFields action = ParticleEditor.createUndo <ParticleEditorUndo.ActionUpdateActiveEmitterLifeFields>("Update Active Emitter");
                    action["emitter"]   = emitter;
                    action["isSlider"]  = isSlider.AsString();
                    action["onMouseUp"] = onMouseUp.AsString();

                    action["newValueLifetimeMS"] = PEE_lifetimeMS_textEdit.getText();
                    action["oldValueLifetimeMS"] = emitter["lifetimeMS"];

                    action["newValueLifetimeVarianceMS"] = PEE_lifetimeVarianceMS_textEdit.getText();
                    action["oldValueLifetimeVarianceMS"] = emitter["lifetimeVarianceMS"];

                    ParticleEditor.submitUndo(action);
                }

                // Set the values on the current emitter.

                emitter["lifetimeMS"]         = PEE_lifetimeMS_textEdit.getText();
                emitter["lifetimeVarianceMS"] = PEE_lifetimeVarianceMS_textEdit.getText();
                emitter.call("reload");

                // Keep the infiniteLoop checkbox up to date.

                PEE_infiniteLoop.setStateOn(emitter["lifetimeMS"].AsInt() == 0);
            }
Exemplo n.º 9
0
            public void guiSync()
            {
                GuiCheckBoxCtrl  PEE_infiniteLoop                = this.FOT("PEE_infiniteLoop");
                GuiCheckBoxCtrl  PEE_orientParticles             = this.FOT("PEE_orientParticles");
                GuiCheckBoxCtrl  PEE_alignParticles              = this.FOT("PEE_alignParticles");
                GuiCheckBoxCtrl  PEE_softParticles               = this.FOT("PEE_softParticles");
                GuiCheckBoxCtrl  PEE_reverseOrder                = this.FOT("PEE_reverseOrder");
                GuiCheckBoxCtrl  PEE_useEmitterSizes             = this.FOT("PEE_useEmitterSizes");
                GuiCheckBoxCtrl  PEE_useEmitterColors            = this.FOT("PEE_useEmitterColors");
                GuiSliderCtrl    PEE_lifetimeMS_slider           = this.FOT("PEE_lifetimeMS_slider");
                GuiSliderCtrl    PEE_lifetimeVarianceMS_slider   = this.FOT("PEE_lifetimeVarianceMS_slider");
                GuiSliderCtrl    PEE_ejectionVelocity_slider     = this.FOT("PEE_ejectionVelocity_slider");
                GuiSliderCtrl    PEE_ejectionPeriodMS_slider     = this.FOT("PEE_ejectionPeriodMS_slider");
                GuiSliderCtrl    PEE_periodVarianceMS_slider     = this.FOT("PEE_periodVarianceMS_slider");
                GuiSliderCtrl    PEE_velocityVariance_slider     = this.FOT("PEE_velocityVariance_slider");
                GuiSliderCtrl    PEE_thetaMin_slider             = this.FOT("PEE_thetaMin_slider");
                GuiSliderCtrl    PEE_thetaMax_slider             = this.FOT("PEE_thetaMax_slider");
                GuiSliderCtrl    PEE_phiVariance_slider          = this.FOT("PEE_phiVariance_slider");
                GuiSliderCtrl    PEE_ejectionOffset_slider       = this.FOT("PEE_ejectionOffset_slider");
                GuiSliderCtrl    PEE_softnessDistance_slider     = this.FOT("PEE_softnessDistance_slider");
                GuiSliderCtrl    PEE_ambientFactor_slider        = this.FOT("PEE_ambientFactor_slider");
                GuiTextEditCtrl  PEE_lifetimeMS_textEdit         = this.FOT("PEE_lifetimeMS_textEdit");
                GuiTextEditCtrl  PEE_lifetimeVarianceMS_textEdit = this.FOT("PEE_lifetimeVarianceMS_textEdit");
                GuiTextEditCtrl  PEE_ejectionPeriodMS_textEdit   = this.FOT("PEE_ejectionPeriodMS_textEdit");
                GuiTextEditCtrl  PEE_periodVarianceMS_textEdit   = this.FOT("PEE_periodVarianceMS_textEdit");
                GuiTextEditCtrl  PEE_ejectionVelocity_textEdit   = this.FOT("PEE_ejectionVelocity_textEdit");
                GuiTextEditCtrl  PEE_velocityVariance_textEdit   = this.FOT("PEE_velocityVariance_textEdit");
                GuiTextEditCtrl  PEE_alignDirection              = this.FOT("PEE_alignDirection");
                GuiTextEditCtrl  PEE_thetaMin_textEdit           = this.FOT("PEE_thetaMin_textEdit");
                GuiTextEditCtrl  PEE_thetaMax_textEdit           = this.FOT("PEE_thetaMax_textEdit");
                GuiTextEditCtrl  PEE_phiVariance_textEdit        = this.FOT("PEE_phiVariance_textEdit");
                GuiTextEditCtrl  PEE_ejectionOffset_textEdit     = this.FOT("PEE_ejectionOffset_textEdit");
                GuiTextEditCtrl  PEE_softnessDistance_textEdit   = this.FOT("PEE_softnessDistance_textEdit");
                GuiTextEditCtrl  PEE_ambientFactor_textEdit      = this.FOT("PEE_ambientFactor_textEdit");
                GuiPopUpMenuCtrl PEE_blendType = this.FOT("PEE_blendType");

                SimObject data = this.currEmitter;

                // Sync up sliders and number boxes.

                if (PEE_infiniteLoop.isStateOn())
                {
                    PEE_lifetimeMS_slider.setActive(false);
                    PEE_lifetimeMS_textEdit.setActive(false);
                    PEE_lifetimeVarianceMS_slider.setActive(false);
                    PEE_lifetimeVarianceMS_textEdit.setActive(false);
                }
                else
                {
                    PEE_lifetimeMS_slider.setActive(true);
                    PEE_lifetimeMS_textEdit.setActive(true);
                    PEE_lifetimeVarianceMS_slider.setActive(true);
                    PEE_lifetimeVarianceMS_textEdit.setActive(true);

                    PEE_lifetimeMS_slider.setValue(data["lifetimeMS"]);
                    PEE_lifetimeMS_textEdit.setText(data["lifetimeMS"]);
                    PEE_lifetimeVarianceMS_slider.setValue(data["lifetimeVarianceMS"]);
                    PEE_lifetimeVarianceMS_textEdit.setText(data["lifetimeVarianceMS"]);
                }

                PEE_ejectionPeriodMS_slider.setValue(data["ejectionPeriodMS"]);
                PEE_ejectionPeriodMS_textEdit.setText(data["ejectionPeriodMS"]);

                PEE_periodVarianceMS_slider.setValue(data["periodVarianceMS"]);
                PEE_periodVarianceMS_textEdit.setText(data["periodVarianceMS"]);

                PEE_ejectionVelocity_slider.setValue(data["ejectionVelocity"]);
                PEE_ejectionVelocity_textEdit.setText(data["ejectionVelocity"]);

                PEE_velocityVariance_slider.setValue(data["velocityVariance"]);
                PEE_velocityVariance_textEdit.setText(data["velocityVariance"]);

                PEE_orientParticles.setValue(data["orientParticles"]);
                PEE_alignParticles.setValue(data["alignParticles"]);
                PEE_alignDirection.setText(data["alignDirection"]);

                PEE_thetaMin_slider.setValue(data["thetaMin"]);
                PEE_thetaMin_textEdit.setText(data["thetaMin"]);

                PEE_thetaMax_slider.setValue(data["thetaMax"]);
                PEE_thetaMax_textEdit.setText(data["thetaMax"]);

                PEE_phiVariance_slider.setValue(data["phiVariance"]);
                PEE_phiVariance_textEdit.setText(data["phiVariance"]);

                PEE_ejectionOffset_slider.setValue(data["ejectionOffset"]);
                PEE_ejectionOffset_textEdit.setText(data["ejectionOffset"]);

                int blendTypeId = PEE_blendType.findText(data["blendStyle"]);

                PEE_blendType.setSelected(blendTypeId, false);

                PEE_softnessDistance_slider.setValue(data["softnessDistance"]);
                PEE_softnessDistance_textEdit.setText(data["softnessDistance"]);

                PEE_ambientFactor_slider.setValue(data["ambientFactor"]);
                PEE_ambientFactor_textEdit.setText(data["ambientFactor"]);

                PEE_softParticles.setValue(data["softParticles"]);
                PEE_reverseOrder.setValue(data["reverseOrder"]);
                PEE_useEmitterSizes.setValue(data["useEmitterSizes"]);
                PEE_useEmitterColors.setValue(data["useEmitterColors"]);

                // Sync up particle selectors.

                for (int index = 0; index < 4; index++)
                {
                    GuiControl       ctrl  = "PEE_EmitterParticle" + (index + 1);
                    GuiPopUpMenuCtrl popup = ctrl.FOT("PopUpMenu");

                    string particle = Util.getWord(data["particles"], index);
                    if (particle.Trim() == "")
                    {
                        popup.setSelected(0, false); // Select "None".
                    }
                    else if (particle.isObject())
                    {
                        popup.setSelected(particle.getID(), false);
                    }
                    else
                    {
                        popup.setSelected(0, false); // Select "None".
                    }
                }
            }
            public void updateSpinFields(bool isMax, float value, bool isSlider, bool onMouseUp)
            {
                editor         Editor         = "Editor";
                ParticleEditor ParticleEditor = "ParticleEditor";

                GuiTextEditCtrl PEP_spinRandomMin_textEdit = this.FOT("PEP_spinRandomMin_textEdit");
                GuiTextEditCtrl PEP_spinRandomMax_textEdit = this.FOT("PEP_spinRandomMax_textEdit");
                GuiSliderCtrl   PEP_spinRandomMin_slider   = this.FOT("PEP_spinRandomMin_slider");
                GuiSliderCtrl   PEP_spinRandomMax_slider   = this.FOT("PEP_spinRandomMax_slider");

                this.setParticleDirty();
                SimObject particle = this.currParticle;

                // Transfer values over to gui controls.
                if (isMax)
                {
                    value++;
                    if (value > PEP_spinRandomMax_slider.getValue())
                    {
                        PEP_spinRandomMax_textEdit.setText(value.AsString());
                        PEP_spinRandomMax_slider.setValue(value.AsString());
                    }
                }
                else
                {
                    value--;
                    if (value < PEP_spinRandomMin_slider.getValue())
                    {
                        PEP_spinRandomMin_textEdit.setText(value.AsString());
                        PEP_spinRandomMin_slider.setValue(value.AsString());
                    }
                }

                // Submit undo.
                SimObject last =
                    Editor.getUndoManager().getUndoAction((Editor.getUndoManager().getUndoCount() - 1));

                if ((isSlider) && (last["isSlider"].AsBool()) && (!last["onMouseUp"].AsBool()))
                {
                    last["isSlider"]              = isSlider.AsString();
                    last["onMouseUp"]             = onMouseUp.AsString();
                    last["newValueSpinRandomMax"] = PEP_spinRandomMax_textEdit.getText();
                    last["newValueSpinRandomMin"] = PEP_spinRandomMin_textEdit.getText();
                }
                else
                {
                    var action = ParticleEditor.createUndo <ParticleEditorUndo.ActionUpdateActiveParticleSpinFields>("Update Active Particle");
                    action["particle"]              = particle;
                    action["isSlider"]              = isSlider.AsString();
                    action["onMouseUp"]             = onMouseUp.AsString();
                    action["newValueSpinRandomMax"] = PEP_spinRandomMax_textEdit.getText();
                    action["oldValueSpinRandomMax"] = particle["spinRandomMax"];

                    action["newValueSpinRandomMin"] = PEP_spinRandomMin_textEdit.getText();
                    action["oldValueSpinRandomMin"] = particle["spinRandomMin"];

                    ParticleEditor.submitUndo(action);
                }

                particle["spinRandomMax"] = PEP_spinRandomMax_textEdit.getText();
                particle["spinRandomMin"] = PEP_spinRandomMin_textEdit.getText();
                particle.call("reload");
            }
            public void guiSync()
            {
                GuiPopUpMenuCtrl PEP_ParticleSelector = "PEP_ParticleSelector";

                ParticleEmitterEditor.PE_EmitterEditor PE_EmitterEditor = "PE_EmitterEditor";
                MaterialEditor.gui.CodeBehind.MaterialEditor.MaterialEditorGui MaterialEditorGui = "MaterialEditorGui";
                GuiSwatchButtonCtrl PE_ColorTintSwatch0 = "PE_ColorTintSwatch0";
                GuiSwatchButtonCtrl PE_ColorTintSwatch1 = "PE_ColorTintSwatch1";
                GuiSwatchButtonCtrl PE_ColorTintSwatch2 = "PE_ColorTintSwatch2";
                GuiSwatchButtonCtrl PE_ColorTintSwatch3 = "PE_ColorTintSwatch3";

                GuiBitmapButtonCtrl PEP_previewImage                  = this.FOT("PEP_previewImage");
                GuiTextEditCtrl     PEP_previewImageName              = this.FOT("PEP_previewImageName");
                GuiTextEditCtrl     PEP_lifetimeMS_textEdit           = this.FOT("PEP_lifetimeMS_textEdit");
                GuiTextEditCtrl     PEP_lifetimeVarianceMS_textEdit   = this.FOT("PEP_lifetimeVarianceMS_textEdit");
                GuiTextEditCtrl     PEP_inheritedVelFactor_textEdit   = this.FOT("PEP_inheritedVelFactor_textEdit");
                GuiTextEditCtrl     PEP_constantAcceleration_textEdit = this.FOT("PEP_constantAcceleration_textEdit");
                GuiTextEditCtrl     PEP_gravityCoefficient_textEdit   = this.FOT("PEP_gravityCoefficient_textEdit");
                GuiTextEditCtrl     PEP_dragCoefficient_textEdit      = this.FOT("PEP_dragCoefficient_textEdit");
                GuiTextEditCtrl     PEP_spinRandomMin_textEdit        = this.FOT("PEP_spinRandomMin_textEdit");
                GuiTextEditCtrl     PEP_spinRandomMax_textEdit        = this.FOT("PEP_spinRandomMax_textEdit");
                GuiTextEditCtrl     PEP_spinSpeed_textEdit            = this.FOT("PEP_spinSpeed_textEdit");
                GuiTextEditCtrl     PEP_pointSize_textEdit0           = this.FOT("PEP_pointSize_textEdit0");
                GuiTextEditCtrl     PEP_pointSize_textEdit1           = this.FOT("PEP_pointSize_textEdit1");
                GuiTextEditCtrl     PEP_pointSize_textEdit2           = this.FOT("PEP_pointSize_textEdit2");
                GuiTextEditCtrl     PEP_pointSize_textEdit3           = this.FOT("PEP_pointSize_textEdit3");
                GuiTextEditCtrl     PEP_pointTime_textEdit0           = this.FOT("PEP_pointTime_textEdit0");
                GuiTextEditCtrl     PEP_pointTime_textEdit1           = this.FOT("PEP_pointTime_textEdit1");
                GuiTextEditCtrl     PEP_pointTime_textEdit2           = this.FOT("PEP_pointTime_textEdit2");
                GuiTextEditCtrl     PEP_pointTime_textEdit3           = this.FOT("PEP_pointTime_textEdit3");
                GuiCheckBoxCtrl     PEP_inverseAlpha                  = this.FOT("PEP_inverseAlpha");
                GuiSliderCtrl       PEP_lifetimeMS_slider             = this.FOT("PEP_lifetimeMS_slider");
                GuiSliderCtrl       PEP_lifetimeVarianceMS_slider     = this.FOT("PEP_lifetimeVarianceMS_slider");
                GuiSliderCtrl       PEP_inheritedVelFactor_slider     = this.FOT("PEP_inheritedVelFactor_slider");
                GuiSliderCtrl       PEP_constantAcceleration_slider   = this.FOT("PEP_constantAcceleration_slider");
                GuiSliderCtrl       PEP_gravityCoefficient_slider     = this.FOT("PEP_gravityCoefficient_slider");
                GuiSliderCtrl       PEP_dragCoefficient_slider        = this.FOT("PEP_dragCoefficient_slider");
                GuiSliderCtrl       PEP_spinRandomMin_slider          = this.FOT("PEP_spinRandomMin_slider");
                GuiSliderCtrl       PEP_spinRandomMax_slider          = this.FOT("PEP_spinRandomMax_slider");
                GuiSliderCtrl       PEP_spinSpeed_slider              = this.FOT("PEP_spinSpeed_slider");
                GuiSliderCtrl       PEP_pointSize_slider0             = this.FOT("PEP_pointSize_slider0");
                GuiSliderCtrl       PEP_pointSize_slider1             = this.FOT("PEP_pointSize_slider1");
                GuiSliderCtrl       PEP_pointSize_slider2             = this.FOT("PEP_pointSize_slider2");
                GuiSliderCtrl       PEP_pointSize_slider3             = this.FOT("PEP_pointSize_slider3");
                GuiSliderCtrl       PEP_pointTime_slider0             = this.FOT("PEP_pointTime_slider0");
                GuiSliderCtrl       PEP_pointTime_slider1             = this.FOT("PEP_pointTime_slider1");
                GuiSliderCtrl       PEP_pointTime_slider2             = this.FOT("PEP_pointTime_slider2");
                GuiSliderCtrl       PEP_pointTime_slider3             = this.FOT("PEP_pointTime_slider3");

                // Populate the selector with the particles assigned
                // to the current emitter.

                bool             containsCurrParticle = false;
                GuiPopUpMenuCtrl popup = PEP_ParticleSelector;

                popup.clear();

                foreach (SimObject particle in PE_EmitterEditor.currEmitter["particles"].Split(' '))
                {
                    if (particle.getId() == this.currParticle)
                    {
                        containsCurrParticle = true;
                    }

                    popup.add(particle.getName(), particle.getId());
                }

                // Just in case the particle doesn't exist, fallback gracefully

                if (!containsCurrParticle)
                {
                    this.currParticle = Util.getWord(PE_EmitterEditor.currEmitter["particles"], 0).getID();
                }

                SimObject data = this.currParticle;

                popup.sort();
                popup.setSelected(data);

                string bitmap = MaterialEditorGui.searchForTexture(data.getName(), data["textureName"]);


                if (bitmap != "")
                {
                    PEP_previewImage.setBitmap(bitmap);
                    PEP_previewImageName.setText(bitmap);
                    PEP_previewImageName.tooltip = bitmap;
                }
                else
                {
                    PEP_previewImage.setBitmap("");
                    PEP_previewImageName.setText("None");
                    PEP_previewImageName.tooltip = "None";
                }

                PEP_inverseAlpha.setValue(data["useInvAlpha"]);

                PEP_lifetimeMS_slider.setValue(data["lifetimeMS"]);
                PEP_lifetimeMS_textEdit.setText(data["lifetimeMS"]);

                PEP_lifetimeVarianceMS_slider.setValue(data["lifetimeVarianceMS"]);
                PEP_lifetimeVarianceMS_textEdit.setText(data["lifetimeVarianceMS"]);

                PEP_inheritedVelFactor_slider.setValue(data["inheritedVelFactor"]);
                PEP_inheritedVelFactor_textEdit.setText(data["inheritedVelFactor"]);

                PEP_constantAcceleration_slider.setValue(data["constantAcceleration"]);
                PEP_constantAcceleration_textEdit.setText(data["constantAcceleration"]);

                PEP_gravityCoefficient_slider.setValue(data["gravityCoefficient"]);
                PEP_gravityCoefficient_textEdit.setText(data["gravityCoefficient"]);

                PEP_dragCoefficient_slider.setValue(data["dragCoefficient"]);
                PEP_dragCoefficient_textEdit.setText(data["dragCoefficient"]);

                PEP_spinRandomMin_slider.setValue(data["spinRandomMin"]);
                PEP_spinRandomMin_textEdit.setText(data["spinRandomMin"]);

                PEP_spinRandomMax_slider.setValue(data["spinRandomMax"]);
                PEP_spinRandomMax_textEdit.setText(data["spinRandomMax"]);

                PEP_spinRandomMax_slider.setValue(data["spinRandomMax"]);
                PEP_spinRandomMax_textEdit.setText(data["spinRandomMax"]);

                PEP_spinSpeed_slider.setValue(data["spinSpeed"]);
                PEP_spinSpeed_textEdit.setText(data["spinSpeed"]);

                PE_ColorTintSwatch0["color"] = data["colors[0]"];
                PE_ColorTintSwatch1["color"] = data["colors[1]"];
                PE_ColorTintSwatch2["color"] = data["colors[2]"];
                PE_ColorTintSwatch3["color"] = data["colors[3]"];

                PEP_pointSize_slider0.setValue(data["sizes[0]"]);
                PEP_pointSize_textEdit0.setText(data["sizes[0]"]);

                PEP_pointSize_slider1.setValue(data["sizes[1]"]);
                PEP_pointSize_textEdit1.setText(data["sizes[1]"]);

                PEP_pointSize_slider2.setValue(data["sizes[2]"]);
                PEP_pointSize_textEdit2.setText(data["sizes[2]"]);

                PEP_pointSize_slider3.setValue(data["sizes[3]"]);
                PEP_pointSize_textEdit3.setText(data["sizes[3]"]);

                PEP_pointTime_slider0.setValue(data["times[0]"]);
                PEP_pointTime_textEdit0.setText(data["times[0]"]);

                PEP_pointTime_slider1.setValue(data["times[1]"]);
                PEP_pointTime_textEdit1.setText(data["times[1]"]);

                PEP_pointTime_slider2.setValue(data["times[2]"]);
                PEP_pointTime_textEdit2.setText(data["times[2]"]);

                PEP_pointTime_slider3.setValue(data["times[3]"]);
                PEP_pointTime_textEdit3.setText(data["times[3]"]);
            }