added everything
This commit is contained in:
275
example/common/ui/ColorPickerDlg.gui
Executable file
275
example/common/ui/ColorPickerDlg.gui
Executable file
@@ -0,0 +1,275 @@
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GuiColorPickerCtrl(ColorPickerDlg) {
|
||||
Profile = "GuiDefaultProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "0 0";
|
||||
Extent = "800 600";
|
||||
MinExtent = "8 2";
|
||||
Visible = "1";
|
||||
baseColor = "1.000000 0.000000 1.000000 1.000000";
|
||||
pickColor = "0.788235 0.713726 0.600000 1.000000";
|
||||
selectorGap = "1";
|
||||
displayMode = "Dropper";
|
||||
actionOnMove = "1";
|
||||
|
||||
new GuiWindowCtrl(GuiPickerDlg) {
|
||||
Profile = "GuiWindowProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "51 39";
|
||||
Extent = "358 294";
|
||||
MinExtent = "8 2";
|
||||
Visible = "1";
|
||||
text = "Pick Color";
|
||||
maxLength = "255";
|
||||
resizeWidth = "0";
|
||||
resizeHeight = "0";
|
||||
canMove = "1";
|
||||
canClose = "1";
|
||||
canMinimize = "0";
|
||||
canMaximize = "0";
|
||||
MinSize = "50 50";
|
||||
closeCommand = "endColorDropper();Canvas.popDialog(ColorPickerDlg);";
|
||||
|
||||
new GuiColorPickerCtrl(ColorBlendSelect) {
|
||||
Profile = "GuiDefaultProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "9 42";
|
||||
Extent = "314 190";
|
||||
MinExtent = "8 2";
|
||||
Visible = "1";
|
||||
baseColor = "0.600000 1.000000 0.000000 1.000000";
|
||||
selectorGap = "1";
|
||||
displayMode = "BlendColor";
|
||||
actionOnMove = "1";
|
||||
};
|
||||
new GuiSliderCtrl(ColorAlphaSelect) {
|
||||
Profile = "GuiSliderProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "8 238";
|
||||
Extent = "293 21";
|
||||
MinExtent = "8 2";
|
||||
Visible = "1";
|
||||
range = "0.000000 1.000000";
|
||||
ticks = "255";
|
||||
value = "1";
|
||||
};
|
||||
new GuiColorPickerCtrl(ColorRangeSelect) {
|
||||
Profile = "GuiDefaultProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "328 42";
|
||||
Extent = "21 188";
|
||||
MinExtent = "8 2";
|
||||
Visible = "1";
|
||||
Command = "updatePickerBaseColor();";
|
||||
baseColor = "1.000000 0.000000 1.000000 1.000000";
|
||||
pickColor = "0.600000 1.000000 0.000000 1.000000";
|
||||
selectorGap = "1";
|
||||
displayMode = "VertColor";
|
||||
actionOnMove = "1";
|
||||
};
|
||||
new GuiTextCtrl(Channel_R_Val) {
|
||||
Profile = "GuiTextProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "14 21";
|
||||
Extent = "22 18";
|
||||
MinExtent = "8 2";
|
||||
Visible = "1";
|
||||
text = "R : 1.0";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiTextCtrl(Channel_G_Val) {
|
||||
Profile = "GuiTextProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "69 21";
|
||||
Extent = "23 18";
|
||||
MinExtent = "8 2";
|
||||
Visible = "1";
|
||||
text = "G : 1.0";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiTextCtrl(Channel_B_Val) {
|
||||
Profile = "GuiTextProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "131 21";
|
||||
Extent = "22 18";
|
||||
MinExtent = "8 2";
|
||||
Visible = "1";
|
||||
text = "B : 1.0";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiTextCtrl(Channel_A_Val) {
|
||||
Profile = "GuiTextProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "198 21";
|
||||
Extent = "23 18";
|
||||
MinExtent = "8 2";
|
||||
Visible = "1";
|
||||
text = "A : 1.0";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
Profile = "GuiButtonProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "304 238";
|
||||
Extent = "47 18";
|
||||
MinExtent = "8 2";
|
||||
Visible = "1";
|
||||
Command = "toggleColorPicker();";
|
||||
text = "Drop";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
Profile = "GuiButtonProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "201 267";
|
||||
Extent = "71 17";
|
||||
MinExtent = "8 2";
|
||||
Visible = "1";
|
||||
Command = "DoColorPickerCallback();";
|
||||
text = "Ok";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
Profile = "GuiButtonProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "279 267";
|
||||
Extent = "71 17";
|
||||
MinExtent = "8 2";
|
||||
Visible = "1";
|
||||
Command = "Canvas.popDialog(ColorPickerDlg);";
|
||||
text = "Cancel";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
|
||||
$ColorPickerCallback = ""; // Control that we need to update
|
||||
$ColorCallbackType = 1; // ColorI
|
||||
|
||||
// This function pushes the color picker dialog and returns to a callback the selected value
|
||||
function GetColorI( %currentColor, %callback )
|
||||
{
|
||||
$ColorPickerCallback = %callback;
|
||||
$ColorCallbackType = 1; // ColorI
|
||||
|
||||
// Set the RGBA displays accordingly
|
||||
%red = getWord(%currentColor, 0);
|
||||
%green = getWord(%currentColor, 1);
|
||||
%blue = getWord(%currentColor, 2);
|
||||
%alpha = getWord(%currentColor, 3);
|
||||
|
||||
setColorInfo(%red, %green, %blue, %alpha);
|
||||
|
||||
ColorBlendSelect.pickColor = %red SPC %green SPC %blue SPC "1.0";
|
||||
ColorBlendSelect.updateColor();
|
||||
ColorAlphaSelect.setValue(%alpha);
|
||||
|
||||
Canvas.pushDialog(ColorPickerDlg);
|
||||
}
|
||||
|
||||
function GetColorF( %currentColor, %callback )
|
||||
{
|
||||
$ColorPickerCallback = %callback;
|
||||
$ColorCallbackType = 2; // ColorF
|
||||
|
||||
// Set the RGBA displays accordingly
|
||||
%red = getWord(%currentColor, 0);
|
||||
%green = getWord(%currentColor, 1);
|
||||
%blue = getWord(%currentColor, 2);
|
||||
%alpha = getWord(%currentColor, 3);
|
||||
|
||||
setColorInfo(%red, %green, %blue, %alpha);
|
||||
|
||||
ColorBlendSelect.pickColor = %red SPC %green SPC %blue SPC "1.0";
|
||||
ColorBlendSelect.updateColor();
|
||||
ColorAlphaSelect.setValue(%alpha);
|
||||
|
||||
Canvas.pushDialog(ColorPickerDlg);
|
||||
}
|
||||
|
||||
|
||||
function DoColorPickerCallback()
|
||||
{
|
||||
eval( $ColorPickerCallback @ "(\"" @ constructNewColor(ColorBlendSelect.getValue(), $ColorCallbackType) @"\");" );
|
||||
|
||||
Canvas.popDialog(ColorPickerDlg);
|
||||
}
|
||||
|
||||
// This function updates the base color on the blend control
|
||||
function updatePickerBaseColor()
|
||||
{
|
||||
%pickColor = ColorRangeSelect.getValue();
|
||||
%red = getWord(%pickColor, 0);
|
||||
%green = getWord(%pickColor, 1);
|
||||
%blue = getWord(%pickColor, 2);
|
||||
|
||||
ColorBlendSelect.baseColor = %red SPC %green SPC %blue SPC "1.0";
|
||||
ColorBlendSelect.updateColor();
|
||||
}
|
||||
|
||||
// This function is used to update the text controls at the top
|
||||
function setColorInfo(%red, %green, %blue, %alpha)
|
||||
{
|
||||
Channel_R_Val.setValue("R :" SPC mCeil(%red * 255));
|
||||
Channel_G_Val.setValue("G :" SPC mCeil(%green * 255));
|
||||
Channel_B_Val.setValue("B :" SPC mCeil(%blue * 255));
|
||||
Channel_A_Val.setValue("A :" SPC mCeil(%alpha * 255));
|
||||
}
|
||||
|
||||
// This function constructs a new color, and updates the text displays accordingly
|
||||
function constructNewColor(%pickColor, %colorType )
|
||||
{
|
||||
%red = getWord(%pickColor, 0);
|
||||
%green = getWord(%pickColor, 1);
|
||||
%blue = getWord(%pickColor, 2);
|
||||
%alpha = ColorAlphaSelect.getValue();
|
||||
|
||||
// Update the text controls to reflect new color
|
||||
setColorInfo(%red, %green, %blue, %alpha);
|
||||
if ( %colorType == 1 ) // ColorI
|
||||
return mCeil( %red * 255 ) SPC mCeil( %green * 255 ) SPC mCeil( %blue * 255 ) SPC mCeil( %alpha * 255 );
|
||||
else // ColorF
|
||||
return %red SPC %green SPC %blue SPC %alpha;
|
||||
}
|
||||
|
||||
|
||||
// Functions to deal with the color dropper
|
||||
function startColorDropper()
|
||||
{
|
||||
//ColorPickerDlg.command = "ColorDropperSelect.baseColor = ColorPickerDlg.pickColor;";
|
||||
ColorPickerDlg.altCommand = $pickerUpdateControl@".setValue(constructNewColor(ColorPickerDlg.pickColor));endColorDropper();";
|
||||
ColorPickerDlg.setActive(true);
|
||||
$pickerActive = true;
|
||||
}
|
||||
|
||||
function endColorDropper()
|
||||
{
|
||||
ColorPickerDlg.command = "";
|
||||
ColorPickerDlg.altCommand = "";
|
||||
ColorPickerDlg.setActive(false);
|
||||
$pickerActive = false;
|
||||
}
|
||||
|
||||
function toggleColorPicker()
|
||||
{
|
||||
if ($pickerActive)
|
||||
endColorDropper();
|
||||
else
|
||||
startColorDropper();
|
||||
}
|
||||
Reference in New Issue
Block a user