From 46192c370926c05e6ca6788b5291adfcd5f4db66 Mon Sep 17 00:00:00 2001 From: marauder2k7 Date: Thu, 23 Jan 2025 10:18:18 +0000 Subject: [PATCH] Eye dropper functionality Adds eye dropper functionality adds eye dropper button image supplied by jeff adds a few missing asset files (due to in asset browser scan and add all loose files) --- Engine/source/gui/controls/guiColorPicker.cpp | 198 ++++++++++++------ Engine/source/gui/controls/guiColorPicker.h | 23 +- .../game/tools/gui/colorPicker.ed.gui | 60 +++--- .../add-simgroup-btn_ctrl_i_image.asset.taml | 3 + .../add-simgroup-btn_i_image.asset.taml | 3 + .../gui/images/camera-btn_i_image.asset.taml | 3 + .../gui/images/clear-icon_i_image.asset.taml | 3 + .../gui/images/delete_i_image.asset.taml | 3 + .../dropdown-button-arrow_d_image.asset.taml | 3 + .../dropdown-button-arrow_h_image.asset.taml | 3 + .../dropdown-button-arrow_i_image.asset.taml | 3 + .../dropdown-button-arrow_n_image.asset.taml | 3 + .../game/tools/gui/images/eyedropper_d.png | Bin 0 -> 1123 bytes .../gui/images/eyedropper_d_image.asset.taml | 3 + .../game/tools/gui/images/eyedropper_h.png | Bin 0 -> 1064 bytes .../gui/images/eyedropper_h_image.asset.taml | 3 + .../game/tools/gui/images/eyedropper_i.png | Bin 0 -> 1083 bytes .../gui/images/eyedropper_i_image.asset.taml | 3 + .../game/tools/gui/images/eyedropper_n.png | Bin 0 -> 1097 bytes .../gui/images/eyedropper_n_image.asset.taml | 3 + .../gui/images/folder_d_image.asset.taml | 3 + .../gui/images/folder_h_image.asset.taml | 3 + .../gui/images/folder_i_image.asset.taml | 3 + .../gui/images/folder_n_image.asset.taml | 3 + .../images/images_menuGrid_d_image.asset.taml | 3 + .../images/images_menuGrid_h_image.asset.taml | 3 + .../images/images_menuGrid_image.asset.taml | 3 + .../images/images_menuGrid_n_image.asset.taml | 3 + .../gui/images/layers-btn_i_image.asset.taml | 3 + .../tools/gui/images/lock_i_image.asset.taml | 3 + .../images/new-folder-btn_i_image.asset.taml | 3 + .../tools/gui/images/new_i_image.asset.taml | 3 + .../gui/images/numericslider_image.asset.taml | 3 + .../gui/images/open-file_i_image.asset.taml | 3 + .../gui/images/reset-icon_i_image.asset.taml | 3 + .../images/selector-button_image.asset.taml | 3 + .../gui/images/tab-border_image.asset.taml | 3 + .../images/textEdit_black_image.asset.taml | 3 + .../gui/images/textEdit_blue_image.asset.taml | 3 + .../gui/images/textEdit_cyan_image.asset.taml | 3 + .../images/textEdit_green_image.asset.taml | 3 + .../images/textEdit_magenta_image.asset.taml | 3 + .../gui/images/textEdit_red_image.asset.taml | 3 + .../images/textEdit_white_image.asset.taml | 3 + .../images/textEdit_yellow_image.asset.taml | 3 + .../images/uv-editor-btn_i_image.asset.taml | 3 + 46 files changed, 292 insertions(+), 106 deletions(-) create mode 100644 Templates/BaseGame/game/tools/gui/images/add-simgroup-btn_ctrl_i_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/add-simgroup-btn_i_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/camera-btn_i_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/clear-icon_i_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/delete_i_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_d_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_h_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_i_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_n_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/eyedropper_d.png create mode 100644 Templates/BaseGame/game/tools/gui/images/eyedropper_d_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/eyedropper_h.png create mode 100644 Templates/BaseGame/game/tools/gui/images/eyedropper_h_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/eyedropper_i.png create mode 100644 Templates/BaseGame/game/tools/gui/images/eyedropper_i_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/eyedropper_n.png create mode 100644 Templates/BaseGame/game/tools/gui/images/eyedropper_n_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/folder_d_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/folder_h_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/folder_i_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/folder_n_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/images_menuGrid_d_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/images_menuGrid_h_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/images_menuGrid_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/images_menuGrid_n_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/layers-btn_i_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/lock_i_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/new-folder-btn_i_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/new_i_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/numericslider_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/open-file_i_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/reset-icon_i_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/selector-button_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/tab-border_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/textEdit_black_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/textEdit_blue_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/textEdit_cyan_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/textEdit_green_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/textEdit_magenta_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/textEdit_red_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/textEdit_white_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/textEdit_yellow_image.asset.taml create mode 100644 Templates/BaseGame/game/tools/gui/images/uv-editor-btn_i_image.asset.taml diff --git a/Engine/source/gui/controls/guiColorPicker.cpp b/Engine/source/gui/controls/guiColorPicker.cpp index 7ca985a20..d313d3412 100644 --- a/Engine/source/gui/controls/guiColorPicker.cpp +++ b/Engine/source/gui/controls/guiColorPicker.cpp @@ -29,6 +29,7 @@ #include "gui/controls/guiColorPicker.h" #include "gfx/primBuilder.h" #include "gfx/gfxDrawUtil.h" +#include "postFx/postEffectManager.h" IMPLEMENT_CONOBJECT(GuiColorPickerCtrl); @@ -47,15 +48,23 @@ GuiColorPickerCtrl::GuiColorPickerCtrl() mActive = true; mSelectorGap = 1; mActionOnMove = false; + mDropperActive = false; mShowReticle = true; mSelectedHue = 0; mSelectedAlpha = 255; mSelectedSaturation = 100; mSelectedBrightness = 100; + eyeDropperPos = Point2I::Zero; + eyeDropperCap = NULL; } GuiColorPickerCtrl::~GuiColorPickerCtrl() { + if (eyeDropperCap != NULL) + { + delete eyeDropperCap; + eyeDropperCap = NULL; + } } ImplementEnumType( GuiColorPickMode, @@ -314,6 +323,32 @@ void GuiColorPickerCtrl::renderAlphaSelector(RectI& bounds) GFX->getDrawUtil()->drawRectFill(selectorRect, currentColor, 2.0f, ColorI::WHITE); } +void GuiColorPickerCtrl::renderEyeDropper() +{ + if (eyeDropperCap != NULL) + { + GFX->getDrawUtil()->drawBitmap(eyeHandle, getRoot()->getPosition()); + + Point2I resolution = getRoot()->getExtent(); + Point2I magnifierSize(100, 100); + Point2I magnifierPosition = eyeDropperPos + Point2I(20, 20); + + // Adjust position to ensure magnifier stays on screen + if (magnifierPosition.x + magnifierSize.x > resolution.x) + magnifierPosition.x = eyeDropperPos.x - magnifierSize.x - 20; + if (magnifierPosition.y + magnifierSize.y > resolution.y) + magnifierPosition.y = eyeDropperPos.y - magnifierSize.y - 20; + + RectI magnifierBounds(magnifierPosition, magnifierSize); + + ColorI currentColor; + currentColor.set(ColorI::Hsb(mSelectedHue, mSelectedSaturation, mSelectedBrightness)); + currentColor.alpha = mSelectedAlpha; + + GFX->getDrawUtil()->drawRectFill(magnifierBounds, currentColor, 2.0f, ColorI::BLACK); + } +} + void GuiColorPickerCtrl::onRender(Point2I offset, const RectI& updateRect) { if (mStateBlock.isNull()) @@ -356,6 +391,15 @@ void GuiColorPickerCtrl::onRender(Point2I offset, const RectI& updateRect) if (mShowReticle) renderAlphaSelector(boundsRect); break; } + case GuiColorPickerCtrl::pDropperBackground: + { + if (mDropperActive) + { + // Render the magnified view of our currently selected color. + renderEyeDropper(); + } + break; + } default: break; } @@ -364,72 +408,31 @@ void GuiColorPickerCtrl::onRender(Point2I offset, const RectI& updateRect) renderChildControls(offset, updateRect); } -Point2I GuiColorPickerCtrl::findColor(const LinearColorF & color, const Point2I& offset, const Point2I& resolution, GBitmap& bmp) -{ - Point2I ext = getExtent(); - Point2I closestPos(-1, -1); - - /* Debugging - char filename[256]; - dSprintf( filename, 256, "%s.%s", "colorPickerTest", "png" ); - - // Open up the file on disk. - FileStream fs; - if ( !fs.open( filename, Torque::FS::File::Write ) ) - Con::errorf( "GuiObjectView::saveAsImage() - Failed to open output file '%s'!", filename ); - else - { - // Write it and close. - bmp.writeBitmap( "png", fs ); - - fs.close(); - } - */ - - ColorI tmp; - U32 buf_x; - U32 buf_y; - LinearColorF curColor; - F32 val(10000.0f); - F32 closestVal(10000.0f); - bool closestSet = false; - - for (S32 x = 0; x < ext.x; x++) - { - for (S32 y = 0; y < ext.y; y++) - { - buf_x = offset.x + x; - buf_y = (resolution.y - (offset.y + y)); - buf_y = resolution.y - buf_y; - - //Get the color at that position - bmp.getColor(buf_x, buf_y, tmp); - curColor = (LinearColorF)tmp; - - //Evaluate how close the color is to our desired color - val = mFabs(color.red - curColor.red) + mFabs(color.green - curColor.green) + mFabs(color.blue - curColor.blue); - - if (!closestSet) - { - closestVal = val; - closestPos.set(x, y); - closestSet = true; - } - else if (val < closestVal) - { - closestVal = val; - closestPos.set(x, y); - } - } - } - - return closestPos; -} - void GuiColorPickerCtrl::onMouseDown(const GuiEvent &event) { if (!mActive) return; + + // we need to do this first. + if (mDisplayMode == GuiColorPickerCtrl::pDropperBackground) { + if (mDropperActive) + { + mDropperActive = false; + + //getRoot()->pushObjectToBack(this); + + onAction(); + mouseUnlock(); + + if (eyeDropperCap != NULL) + { + delete eyeDropperCap; + eyeDropperCap = NULL; + } + } + + return; + } mouseLock(this); @@ -574,6 +577,29 @@ void GuiColorPickerCtrl::onMouseDragged(const GuiEvent &event) void GuiColorPickerCtrl::onMouseMove(const GuiEvent &event) { + if (mDisplayMode != pDropperBackground) + return; + + if (!mDropperActive) + return; + + // should not need globalToLocal as we are capturing the whole screen. + eyeDropperPos = globalToLocalCoord(event.mousePoint); + + if (eyeDropperCap != NULL) + { + // Sample the pixel color at the mouse position. Mouse position should translate directly. + ColorI sampledColor; + eyeDropperCap->getColor(eyeDropperPos.x, eyeDropperPos.y, sampledColor); + + // Convert the sampled color to HSB + ColorI::Hsb hsb = sampledColor.getHSB(); + mSelectedHue = hsb.hue; + mSelectedSaturation = hsb.sat; + mSelectedBrightness = hsb.brightness; + mSelectedAlpha = sampledColor.alpha; + } + } void GuiColorPickerCtrl::onMouseEnter(const GuiEvent &event) @@ -587,6 +613,15 @@ void GuiColorPickerCtrl::onMouseLeave(const GuiEvent &) mMouseOver = false; } +void GuiColorPickerCtrl::onMouseUp(const GuiEvent&) +{ + //if we released the mouse within this control, perform the action + if (mActive && mMouseDown) + mMouseDown = false; + + mouseUnlock(); +} + void GuiColorPickerCtrl::setSelectedHue(const F64& hueValue) { if (hueValue < 0) @@ -656,13 +691,34 @@ void GuiColorPickerCtrl::setSelectedAlpha(const F64& alphaValue) mSelectedAlpha = alphaValue; } -void GuiColorPickerCtrl::onMouseUp(const GuiEvent &) +void GuiColorPickerCtrl::activateEyeDropper() { - //if we released the mouse within this control, perform the action - if (mActive && mMouseDown) - mMouseDown = false; + // Make sure we are a pDropperBackground + if (mDisplayMode == GuiColorPickerCtrl::pDropperBackground) + { + mouseLock(this); // take over! - mouseUnlock(); + setFirstResponder(); // we need this to be first responder regardless. + + //getRoot()->bringObjectToFront(this); + + mDropperActive = true; + + // Set up our resolution. + Point2I resolution = getRoot()->getExtent(); + + // Texture handle to resolve the target to. + eyeHandle.set(resolution.x, resolution.y, GFXFormatR8G8B8A8_SRGB, &GFXRenderTargetSRGBProfile, avar("%s() - bb (line %d)", __FUNCTION__, __LINE__)); + + // Get our active render target (should be backbuffer). + eyeHandle = PFXMGR->getBackBufferTex(); + + if (eyeHandle.isValid()) + { + eyeDropperCap = new GBitmap(eyeHandle.getWidth(), eyeHandle.getHeight(), false, GFXFormatR8G8B8A8); + eyeHandle.copyToBmp(eyeDropperCap); + } + } } /// @@ -673,6 +729,14 @@ DefineEngineMethod(GuiColorPickerCtrl, executeUpdate, void, (), , "Execute the o object->onAction(); } +/// +/// This command should only be used with guiColorPicker in pDropperBackground mode. +/// +DefineEngineMethod(GuiColorPickerCtrl, activateEyeDropper, void, (), , "Activate the dropper mode.") +{ + object->activateEyeDropper(); +} + DefineEngineMethod(GuiColorPickerCtrl, setSelectedHue, void, (F64 hueValue), , "Sets the selected hue value should be 0-360.") { object->setSelectedHue(hueValue); diff --git a/Engine/source/gui/controls/guiColorPicker.h b/Engine/source/gui/controls/guiColorPicker.h index 48639520a..58a8b8302 100644 --- a/Engine/source/gui/controls/guiColorPicker.h +++ b/Engine/source/gui/controls/guiColorPicker.h @@ -108,23 +108,27 @@ class GuiColorPickerCtrl : public GuiControl /// The bounds of the ctrl. void renderAlphaSelector(RectI& bounds); + void renderEyeDropper(); + /// @name Core Variables /// @{ - PickMode mDisplayMode; ///< Current color display mode of the selector + PickMode mDisplayMode; ///< Current color display mode of the selector SelectorMode mSelectorMode; ///< Current color display mode of the selector F64 mSelectedHue; F64 mSelectedSaturation; F64 mSelectedBrightness; F64 mSelectedAlpha; + Point2I eyeDropperPos; + GBitmap* eyeDropperCap; + GFXTexHandle eyeHandle; - bool mMouseOver; ///< Mouse is over? - bool mMouseDown; ///< Mouse button down? - bool mActionOnMove; ///< Perform onAction() when position has changed? - bool mShowReticle; ///< Show reticle on render + bool mDropperActive; ///< Is the eye dropper active? + bool mMouseOver; ///< Mouse is over? + bool mMouseDown; ///< Mouse button down? + bool mActionOnMove; ///< Perform onAction() when position has changed? + bool mShowReticle; ///< Show reticle on render - Point2I findColor(const LinearColorF & color, const Point2I& offset, const Point2I& resolution, GBitmap& bmp); - - S32 mSelectorGap; ///< The half-way "gap" between the selector pos and where the selector is allowed to draw. + S32 mSelectorGap; ///< The half-way "gap" between the selector pos and where the selector is allowed to draw. GFXStateBlockRef mStateBlock; /// @} @@ -181,6 +185,9 @@ class GuiColorPickerCtrl : public GuiControl /// Alpha value, 0 - 255. void setSelectedAlpha(const F64& alphaValue); F64 getSelectedAlpha() { return mSelectedAlpha; } + + void activateEyeDropper(); + }; typedef GuiColorPickerCtrl::PickMode GuiColorPickMode; diff --git a/Templates/BaseGame/game/tools/gui/colorPicker.ed.gui b/Templates/BaseGame/game/tools/gui/colorPicker.ed.gui index 4c92f0ec9..3c6d60901 100644 --- a/Templates/BaseGame/game/tools/gui/colorPicker.ed.gui +++ b/Templates/BaseGame/game/tools/gui/colorPicker.ed.gui @@ -1,36 +1,25 @@ //--- OBJECT WRITE BEGIN --- $guiContent = new GuiColorPickerCtrl(ColorPickerDlg,EditorGuiGroup) { - displayMode = "Dropper"; // this makes the background visible - actionOnMove = "1"; - position = "0 0"; - extent = "1024 768"; - minExtent = "8 2"; - horizSizing = "right"; - vertSizing = "bottom"; - profile = "ToolsGuiDefaultProfile"; - visible = "1"; - active = "1"; - Clickable = "1"; - AffectChildren = "1"; - tooltipProfile = "GuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - canSave = "1"; - canSaveDynamicFields = "0"; + displayMode = "Dropper"; + extent = "1024 768"; + profile = "GuiDefaultProfile"; + command = "%selHue = ColorPickerDlg.getSelectedHue();\n%selSat = ColorPickerDlg.getSelectedSaturation();\n%selBright = ColorPickerDlg.getSelectedBrightness();\n%selAlpha = ColorPickerDlg.getSelectedAlpha();\n\nColorHueRange.setSelectedHue(%selHue);\nColorHueRange.executeUpdate();\n\nColorBlendRange.setSelectedBrightness(%selBright);\nColorBlendRange.setSelectedSaturation(%selSat);\nColorBlendRange.executeUpdate();\n\nColorAlphaRange.setSelectedAlpha(%selAlpha);\nColorAlphaRange.executeUpdate();\n\nColorEyeDropperButton.setStateOn(false);"; + tooltipProfile = "GuiToolTipProfile"; + isContainer = "1"; new GuiWindowCtrl() { - text = " "; - resizeWidth = "0"; - resizeHeight = "0"; - canMinimize = "0"; - canMaximize = "0"; - closeCommand = "DoColorPickerCancelCallback(); ColorPickerDlg.getRoot().popDialog(ColorPickerDlg);"; - position = "33 33"; - extent = "271 574"; - horizSizing = "windowRelative"; - vertSizing = "windowRelative"; - profile = "ToolsGuiWindowProfile"; - tooltipProfile = "ToolsGuiToolTipProfile"; + text = " "; + resizeWidth = "0"; + resizeHeight = "0"; + canMinimize = "0"; + canMaximize = "0"; + closeCommand = "DoColorPickerCancelCallback(); ColorPickerDlg.getRoot().popDialog(ColorPickerDlg);"; + position = "33 33"; + extent = "271 574"; + horizSizing = "windowRelative"; + vertSizing = "windowRelative"; + profile = "ToolsGuiWindowProfile"; + tooltipProfile = "ToolsGuiToolTipProfile"; new GuiStackControl() { padding = "5"; @@ -268,16 +257,25 @@ $guiContent = new GuiColorPickerCtrl(ColorPickerDlg,EditorGuiGroup) { text = "Apply"; position = "211 1"; extent = "52 20"; - command = "DoColorPickerCallback();"; profile = "ToolsGuiButtonProfile"; + command = "DoColorPickerCallback();"; tooltipProfile = "GuiToolTipProfile"; }; new GuiButtonCtrl() { text = "Cancel"; position = "211 24"; extent = "52 20"; - command = "DoColorPickerCancelCallback();"; profile = "ToolsGuiButtonProfile"; + command = "DoColorPickerCancelCallback();"; + tooltipProfile = "GuiToolTipProfile"; + }; + new GuiBitmapButtonCtrl(ColorEyeDropperButton) { + BitmapAsset = "ToolsModule:eyedropper_n_image"; + buttonType = "ToggleButton"; + position = "223 56"; + extent = "25 25"; + profile = "ToolsGuiCheckBoxProfile"; + command = "ColorPickerDlg.activateEyeDropper();"; tooltipProfile = "GuiToolTipProfile"; }; }; diff --git a/Templates/BaseGame/game/tools/gui/images/add-simgroup-btn_ctrl_i_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/add-simgroup-btn_ctrl_i_image.asset.taml new file mode 100644 index 000000000..ad5abe6ce --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/add-simgroup-btn_ctrl_i_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/add-simgroup-btn_i_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/add-simgroup-btn_i_image.asset.taml new file mode 100644 index 000000000..652dbaa97 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/add-simgroup-btn_i_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/camera-btn_i_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/camera-btn_i_image.asset.taml new file mode 100644 index 000000000..b256d1f27 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/camera-btn_i_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/clear-icon_i_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/clear-icon_i_image.asset.taml new file mode 100644 index 000000000..bf9066933 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/clear-icon_i_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/delete_i_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/delete_i_image.asset.taml new file mode 100644 index 000000000..0af4b8434 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/delete_i_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_d_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_d_image.asset.taml new file mode 100644 index 000000000..50cf4e2ef --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_d_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_h_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_h_image.asset.taml new file mode 100644 index 000000000..f352d6fc0 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_h_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_i_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_i_image.asset.taml new file mode 100644 index 000000000..dfe09e6e3 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_i_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_n_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_n_image.asset.taml new file mode 100644 index 000000000..eeb0c947b --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/dropdown-button-arrow_n_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/eyedropper_d.png b/Templates/BaseGame/game/tools/gui/images/eyedropper_d.png new file mode 100644 index 0000000000000000000000000000000000000000..adeb5b79e0f4e17579fd03f78b8c93ef07c459bc GIT binary patch literal 1123 zcmV-p1f2VcP)EX>4Tx04R}tkv&MmP!xqvQ>7vm2aAe0WT;Md(ISqeibb$c+6t{Yn7s54nlvOS zE{=k0!NH%!s)LKOt`4q(Aov5~E;uQ=NQw6)g%&Yhc)XAE?m4`7A0RZVOf`FAfT~$W zIuRFh`BgFS3Ll0sf*_(2GxcOT7x~Fccy9m$n?)$R_l!D0spGX{Ix?vG-5YKK} zI_G`j5GzXx@j3C7K^G)`lrQ95 zRyc2QR;zW^z9)ZSu%NAExK3*v2`nLr6hz3Vqk<|dL}=GYF_EV8xQBnt@u$coldA$o zjs?`9LUR1zfAD*@W^rcPO$x?=-WS{cm;eI1K&xTf-^aGyIsyF8z?IhV*P6iGC+Urj z7Cr(7w}Ff6jwbH`mpj1dlP(#OBl&3w#Uk*2M&FbNhHioWHFs|9bDTZ^S(?@I4RCM> zOqM8n-Q(ST-E;f5r#-(P()n`D+^se800006VoOIv0BZoL0A5Yo=RW`d010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=>ZlOFcBFNV(kC`02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00JRNL_t(o!|m2PXjD-U2H-E71dI_>e4|2$5y6NkW-GzM zDrg}n2$DiUEsl+#2);lNUyX&;0TIzgun-|#Kr4$VMhQZ|G@@vfAVCFDHzpgKQ-mcC zvwL?No$lUy?)?AE{4;a-*R3vVharRpti$5;Y6S0MjH6SXZ^#(D5&Lik%Ts`ZIE~(_ zWgvu5hlMzZtC*L3Phb?Uu{*{%RQhi&qu`ry3|G)p64*GFV&zmnW<_8LIum$lhMN+B z^_giPgiwza7>+THV+}UXP|^{+%~FJ`aULH+2;InI!8B)orP932lE5#=>-t>dQgz>+37#^Z5ZhLpwI6PZKHSy*PzC zGl5q+h>F;N?UTTNq8~TW6Jz{6o0Ce~umva3n817R0*i1qk(<>jX~R8eO9Je{ku(i= z;8G$Y^9&^L4s@je9wDTeFo?U@i>FoDh9QL31k!;|ID{uL#))#WnVTc{d>l{UW4Mmq za>3_BAg$VyY3bDAKJNXE(zD9ImL#-X>i=u_TIm*>YZrXM`!rsT&LhN| p0000EWmrjOO-%qQ00008000000002eQ diff --git a/Templates/BaseGame/game/tools/gui/images/eyedropper_h.png b/Templates/BaseGame/game/tools/gui/images/eyedropper_h.png new file mode 100644 index 0000000000000000000000000000000000000000..e6f20028169b2fe8ec5ebae6aacbd2114a77a4d5 GIT binary patch literal 1064 zcmV+@1lRkCP)EX>4Tx04R}tkv&MmP!xqvQ>7vm2aAe0WT;Md(ISqeibb$c+6t{Yn7s54nlvOS zE{=k0!NH%!s)LKOt`4q(Aov5~E;uQ=NQw6)g%&Yhc)XAE?m4`7A0RZVOf`FAfT~$W zIuRFh`BgFS3Ll0sf*_(2GxcOT7x~Fccy9m$n?)$R_l!D0spGX{Ix?vG-5YKK} zI_G`j5GzXx@j3C7K^G)`lrQ95 zRyc2QR;zW^z9)ZSu%NAExK3*v2`nLr6hz3Vqk<|dL}=GYF_EV8xQBnt@u$coldA$o zjs?`9LUR1zfAD*@W^rcPO$x?=-WS{cm;eI1K&xTf-^aGyIsyF8z?IhV*P6iGC+Urj z7Cr(7w}Ff6jwbH`mpj1dlP(#OBl&3w#Uk*2M&FbNhHioWHFs|9bDTZ^S(?@I4RCM> zOqM8n-Q(ST-E;f5r#-(P()n`D+^se800006VoOIv0BZoL0A5Yo=RW`d010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=>ZlOE+TS+JR|@B02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00HJnL_t(o!{yh_i%($`2k`GTFB&XnjD@@l&%O8i zea`uw=bW3&cdOd{L3AcrpQNw2#*@6Ps_JX)yFnNB;{o2_EpA|E-M|%kaSRif^2??$ ziThYtCxIn6iBEpFsp1>OmR9dBXcLG2Bzuzdw9r^jl4VIYw2c5dumT;$wJOQr9HJgi z@}kv3=YQ^aWs>0}qqvl0Ymy~@cy=<$nI!kxne#1pitl)ghg#bYoW;UA%IzRt;a$0A z1AoLYdg`qC-MBVO^%J;`edwyQ^g3_|UuTuvZ5(KO*jo@-k4H1Wui|F$jbO0u-54Qu-;TRQY*(=wRax)GE_ByLU>$DZGoE8;8oY^aw+QD7_(vSARp~9t z?o`S7Brc$@vB?En@v`Lo1_s&@`hV>O?~}Yvaw5s|s;V>@fv(a6*39UF_0EJvV4KSA zqpGUDH9E0k2cF>xwlxjD7?)=pwWr$|`oAG?q$qycMzFTsICG6;6SFijkYsa{1imDh zS!Rl_u@o%D#gc|eoJVhCzh>o>>rb*b$yky*Nj@}s_{TF0000 diff --git a/Templates/BaseGame/game/tools/gui/images/eyedropper_i.png b/Templates/BaseGame/game/tools/gui/images/eyedropper_i.png new file mode 100644 index 0000000000000000000000000000000000000000..c48e15d7f7e8fafd3b48df017e6bf4b032c45784 GIT binary patch literal 1083 zcmV-B1jPG^P)EX>4Tx04R}tkv&MmP!xqvQ>7vm2aAe0WT;Md(ISqeibb$c+6t{Yn7s54nlvOS zE{=k0!NH%!s)LKOt`4q(Aov5~E;uQ=NQw6)g%&Yhc)XAE?m4`7A0RZVOf`FAfT~$W zIuRFh`BgFS3Ll0sf*_(2GxcOT7x~Fccy9m$n?)$R_l!D0spGX{Ix?vG-5YKK} zI_G`j5GzXx@j3C7K^G)`lrQ95 zRyc2QR;zW^z9)ZSu%NAExK3*v2`nLr6hz3Vqk<|dL}=GYF_EV8xQBnt@u$coldA$o zjs?`9LUR1zfAD*@W^rcPO$x?=-WS{cm;eI1K&xTf-^aGyIsyF8z?IhV*P6iGC+Urj z7Cr(7w}Ff6jwbH`mpj1dlP(#OBl&3w#Uk*2M&FbNhHioWHFs|9bDTZ^S(?@I4RCM> zOqM8n-Q(ST-E;f5r#-(P()n`D+^se800006VoOIv0BZoL0A5Yo=RW`d010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=>ZlOFepYB>g50c02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00H?)L_t(o!|m4FYEw}V2H-ETt+lm{r%DkOMFsH$7Pbi9 z`8NBB*5iocg-X;Sf(P`XT0w)gVh2~HoiQr?nj60abXsijG%(Co5ymR3Qd-A)p65TJ|2KvefhpV$;jLmmrL?;J zG4lSoS7+5d-hKqvA_6VED4KGm6NpiJ16N|}J>K=A^s*vwJjQJ$@;jeWY7RQZ_Nswq z diff --git a/Templates/BaseGame/game/tools/gui/images/eyedropper_n.png b/Templates/BaseGame/game/tools/gui/images/eyedropper_n.png new file mode 100644 index 0000000000000000000000000000000000000000..4bc1ed2198c4237362ffb8480972a3076432b333 GIT binary patch literal 1097 zcmV-P1h)H$P)EX>4Tx04R}tkv&MmP!xqvQ>7vm2aAe0WT;Md(ISqeibb$c+6t{Yn7s54nlvOS zE{=k0!NH%!s)LKOt`4q(Aov5~E;uQ=NQw6)g%&Yhc)XAE?m4`7A0RZVOf`FAfT~$W zIuRFh`BgFS3Ll0sf*_(2GxcOT7x~Fccy9m$n?)$R_l!D0spGX{Ix?vG-5YKK} zI_G`j5GzXx@j3C7K^G)`lrQ95 zRyc2QR;zW^z9)ZSu%NAExK3*v2`nLr6hz3Vqk<|dL}=GYF_EV8xQBnt@u$coldA$o zjs?`9LUR1zfAD*@W^rcPO$x?=-WS{cm;eI1K&xTf-^aGyIsyF8z?IhV*P6iGC+Urj z7Cr(7w}Ff6jwbH`mpj1dlP(#OBl&3w#Uk*2M&FbNhHioWHFs|9bDTZ^S(?@I4RCM> zOqM8n-Q(ST-E;f5r#-(P()n`D+^se800006VoOIv0BZoL0A5Yo=RW`d010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=>ZlOFCuH04P^iT02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00IX|L_t(o!{yh_OH@%92Jqh*H8HJB%f7J)B*+MgiXbQm zp<46-{RjO??OO!xqOF0osy5L^$Y_)H0aAn|DG54y+PuOrj5f~PnT=<6?mhQB&-?K_ z=Ule?NJVd$b1q>&dgIX|ex;PkwbpkQ4BmlrxPjgA_y?Y0x@8&2IVbesGVVoS2^p*S zj)y6w`RZ>=1qHtYS8*3zRe`Oc4|{5TSQLRioDT5n40px*p~48{oJ%?9{%APp$I(qn zx`??Vo3J0ZFrRat#Bp?Qu(phGd@Yi|E}X(3E<~McWi#U?UT-AB)P&qF;dV5j3f->* zFXK5TQc5d@8&Qxrfjbzf04`$&FYrF4w7S_o%@|R}0i3LuuizVAVd{V2&B|~PW9SI* z5BP$exQT=HY|`1N3~@F*e+^T39Bw!gW$9@NfdC(lChUmFpI{-S^e5*$huO$ROENHk z`#2QlGLHF_QihP*r+POlZ87>CxE>i;!vv<+!5bN+Ey`{T*FwJU@V1^#FDe7aa3#QJ z!eo}3J;k=#1Ap-wPw}&v)HmdOIp^V=^FYNZ*xEZ`)ctTwXPd2eBPAHdgSb{b!snt1 zls1XJJ1liy+-63LOnp5nxQH_qr8OEiz zkzxF7^kNhX;eJbPHJ@!U{s9L+qGRTg)vo{m01jnXNoGw=04e|g00;m8000000Mb*F P00000NkvXXu0mjfiuL17 literal 0 HcmV?d00001 diff --git a/Templates/BaseGame/game/tools/gui/images/eyedropper_n_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/eyedropper_n_image.asset.taml new file mode 100644 index 000000000..89a658bfa --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/eyedropper_n_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/folder_d_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/folder_d_image.asset.taml new file mode 100644 index 000000000..19f226dec --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/folder_d_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/folder_h_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/folder_h_image.asset.taml new file mode 100644 index 000000000..2b3f8f34b --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/folder_h_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/folder_i_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/folder_i_image.asset.taml new file mode 100644 index 000000000..04d8c37c1 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/folder_i_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/folder_n_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/folder_n_image.asset.taml new file mode 100644 index 000000000..4fcd53625 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/folder_n_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/images_menuGrid_d_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/images_menuGrid_d_image.asset.taml new file mode 100644 index 000000000..b743dfda7 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/images_menuGrid_d_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/images_menuGrid_h_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/images_menuGrid_h_image.asset.taml new file mode 100644 index 000000000..6205526f1 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/images_menuGrid_h_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/images_menuGrid_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/images_menuGrid_image.asset.taml new file mode 100644 index 000000000..779ddd4ee --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/images_menuGrid_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/images_menuGrid_n_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/images_menuGrid_n_image.asset.taml new file mode 100644 index 000000000..a56f2bdf5 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/images_menuGrid_n_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/layers-btn_i_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/layers-btn_i_image.asset.taml new file mode 100644 index 000000000..c795223c1 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/layers-btn_i_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/lock_i_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/lock_i_image.asset.taml new file mode 100644 index 000000000..d0b0ec133 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/lock_i_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/new-folder-btn_i_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/new-folder-btn_i_image.asset.taml new file mode 100644 index 000000000..d3dd1b751 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/new-folder-btn_i_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/new_i_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/new_i_image.asset.taml new file mode 100644 index 000000000..6e1adc880 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/new_i_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/numericslider_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/numericslider_image.asset.taml new file mode 100644 index 000000000..b869224ef --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/numericslider_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/open-file_i_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/open-file_i_image.asset.taml new file mode 100644 index 000000000..954425721 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/open-file_i_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/reset-icon_i_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/reset-icon_i_image.asset.taml new file mode 100644 index 000000000..e7f5929f4 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/reset-icon_i_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/selector-button_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/selector-button_image.asset.taml new file mode 100644 index 000000000..bf61a6c0f --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/selector-button_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/tab-border_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/tab-border_image.asset.taml new file mode 100644 index 000000000..13e8e4439 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/tab-border_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/textEdit_black_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/textEdit_black_image.asset.taml new file mode 100644 index 000000000..e98e0d81a --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/textEdit_black_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/textEdit_blue_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/textEdit_blue_image.asset.taml new file mode 100644 index 000000000..f3f3a8cb2 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/textEdit_blue_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/textEdit_cyan_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/textEdit_cyan_image.asset.taml new file mode 100644 index 000000000..695ce779c --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/textEdit_cyan_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/textEdit_green_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/textEdit_green_image.asset.taml new file mode 100644 index 000000000..8748f435d --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/textEdit_green_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/textEdit_magenta_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/textEdit_magenta_image.asset.taml new file mode 100644 index 000000000..c1e9b1168 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/textEdit_magenta_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/textEdit_red_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/textEdit_red_image.asset.taml new file mode 100644 index 000000000..068a48c26 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/textEdit_red_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/textEdit_white_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/textEdit_white_image.asset.taml new file mode 100644 index 000000000..7b50f7bea --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/textEdit_white_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/textEdit_yellow_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/textEdit_yellow_image.asset.taml new file mode 100644 index 000000000..eec442900 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/textEdit_yellow_image.asset.taml @@ -0,0 +1,3 @@ + diff --git a/Templates/BaseGame/game/tools/gui/images/uv-editor-btn_i_image.asset.taml b/Templates/BaseGame/game/tools/gui/images/uv-editor-btn_i_image.asset.taml new file mode 100644 index 000000000..385b79fa3 --- /dev/null +++ b/Templates/BaseGame/game/tools/gui/images/uv-editor-btn_i_image.asset.taml @@ -0,0 +1,3 @@ +