276 lines
8.2 KiB
Plaintext
Executable File
276 lines
8.2 KiB
Plaintext
Executable File
//--- 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();
|
|
}
|