219 lines
6.1 KiB
Plaintext
Executable File
219 lines
6.1 KiB
Plaintext
Executable File
//--- OBJECT WRITE BEGIN ---
|
|
new GuiControl(ConsoleDlg) {
|
|
profile = "GuiDefaultProfile";
|
|
horizSizing = "right";
|
|
vertSizing = "bottom";
|
|
position = "0 0";
|
|
extent = "640 480";
|
|
minExtent = "8 2";
|
|
visible = "1";
|
|
|
|
new GuiWindowCtrl(ConsoleDlgWindow) {
|
|
profile = "GuiWindowProfile";
|
|
horizSizing = "right";
|
|
vertSizing = "bottom";
|
|
position = "0 0";
|
|
extent = "500 300";
|
|
minExtent = "8 2";
|
|
visible = "1";
|
|
text = "Console";
|
|
maxLength = "255";
|
|
resizeWidth = "1";
|
|
resizeHeight = "1";
|
|
canMove = "1";
|
|
canClose = "1";
|
|
canMinimize = "0";
|
|
canMaximize = "1";
|
|
MinSize = "500 300";
|
|
closeCommand = "ToggleConsole(1);";
|
|
|
|
new GuiScrollCtrl() {
|
|
profile = "GuiScrollProfile";
|
|
horizSizing = "width";
|
|
vertSizing = "height";
|
|
position = "3 36";
|
|
extent = "494 246";
|
|
minExtent = "8 2";
|
|
visible = "1";
|
|
willFirstRespond = "1";
|
|
hScrollBar = "alwaysOn";
|
|
vScrollBar = "alwaysOn";
|
|
constantThumbHeight = "0";
|
|
childMargin = "0 0";
|
|
resizeWidth = "1";
|
|
resizeHeight = "1";
|
|
|
|
new GuiConsole() {
|
|
profile = "GuiConsoleProfile";
|
|
position = "0 0";
|
|
};
|
|
};
|
|
new GuiConsoleEditCtrl(ConsoleEntry) {
|
|
profile = "GuiTextEditProfile";
|
|
horizSizing = "width";
|
|
vertSizing = "top";
|
|
position = "3 278";
|
|
extent = "494 18";
|
|
minExtent = "8 2";
|
|
visible = "1";
|
|
altCommand = "ConsoleEntry::eval();";
|
|
maxLength = "255";
|
|
historySize = "20";
|
|
password = "0";
|
|
tabComplete = "0";
|
|
sinkAllKeyEvents = "1";
|
|
useSiblingScroller = "1";
|
|
};
|
|
new GuiPaneControl(ConsoleErrorPane) {
|
|
profile = "GuiPaneProfile";
|
|
horizSizing = "width";
|
|
vertSizing = "bottom";
|
|
position = "3 22";
|
|
extent = "474 85";
|
|
minExtent = "474 10";
|
|
visible = "1";
|
|
caption = "No script compilation errors occured.";
|
|
collapsable = "1";
|
|
barBehindText = "1";
|
|
|
|
new GuiScrollCtrl(ConsoleErrorScroller) {
|
|
profile = "GuiScrollProfile";
|
|
horizSizing = "width";
|
|
vertSizing = "bottom";
|
|
position = "0 14";
|
|
extent = "474 71";
|
|
minExtent = "8 2";
|
|
visible = "0";
|
|
willFirstRespond = "0";
|
|
hScrollBar = "alwaysOff";
|
|
vScrollBar = "alwaysOn";
|
|
constantThumbHeight = "1";
|
|
childMargin = "0 0";
|
|
|
|
new GuiMLTextCtrl(ConsoleErrorDisplay) {
|
|
profile = "GuiMLTextProfile";
|
|
horizSizing = "width";
|
|
vertSizing = "bottom";
|
|
position = "2 2";
|
|
extent = "474 14";
|
|
minExtent = "8 2";
|
|
visible = "1";
|
|
lineSpacing = "2";
|
|
allowColorChars = "0";
|
|
maxChars = "-1";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
//--- OBJECT WRITE END ---
|
|
|
|
function ConsoleDlg::onWake()
|
|
{
|
|
%position = $pref::Console::position;
|
|
if(%position $= "")
|
|
%position = ConsoleDlgWindow.position;
|
|
|
|
%extent = $pref::Console::extent;
|
|
if(getWord(%extent, 0) < getWord(ConsoleDlgWindow.minExtent, 0) ||
|
|
getWord(%extent, 1) < getWord(ConsoleDlgWindow.minExtent, 1))
|
|
%extent = ConsoleDlgWindow.extent;
|
|
|
|
ConsoleDlgWindow.resize(getWord(%position, 0), getWord(%position, 1),
|
|
getWord(%extent, 0), getWord(%extent, 1));
|
|
}
|
|
|
|
function ConsoleDlg::onSleep()
|
|
{
|
|
$pref::Console::position = ConsoleDlgWindow.position;
|
|
$pref::Console::extent = ConsoleDlgWindow.extent;
|
|
}
|
|
|
|
function ConsoleEntry::eval()
|
|
{
|
|
%text = trim(ConsoleEntry.getValue());
|
|
|
|
if(strpos(%text, "(") == -1)
|
|
{
|
|
if(strpos(%text, "=") == -1 && strpos(%text, " ") == -1)
|
|
{
|
|
if(strpos(%text, "{") == -1 && strpos(%text, "}") == -1)
|
|
{
|
|
%text = %text @ "()";
|
|
}
|
|
}
|
|
}
|
|
|
|
%pos = strlen(%text) - 1;
|
|
if(strpos(%text, ";", %pos) == -1 && strpos(%text, "}") == -1)
|
|
{
|
|
%text = %text @ ";";
|
|
}
|
|
|
|
echo("==>" @ %text);
|
|
eval(%text);
|
|
ConsoleEntry.setValue("");
|
|
|
|
// Check for any pending errors to display
|
|
updateConsoleErrorWindow();
|
|
}
|
|
|
|
function ToggleConsole(%make)
|
|
{
|
|
if (%make)
|
|
{
|
|
if (ConsoleDlg.isAwake())
|
|
{
|
|
// Deactivate the console.
|
|
|
|
if ( $enableDirectInput )
|
|
activateKeyboard();
|
|
Canvas.popDialog(ConsoleDlg);
|
|
}
|
|
else
|
|
{
|
|
if ( $enableDirectInput )
|
|
deactivateKeyboard();
|
|
Canvas.pushDialog(ConsoleDlg, 99);
|
|
|
|
// Check for any pending errors to display
|
|
updateConsoleErrorWindow();
|
|
|
|
// Collapse the errors if this is the first time...
|
|
if(ConsoleErrorPane._initialized == false)
|
|
ConsoleErrorPane.setCollapsed(true);
|
|
}
|
|
}
|
|
}
|
|
|
|
// The first hash is 1000...
|
|
$ScriptErrorHashDisplayed = 999;
|
|
|
|
function updateConsoleErrorWindow()
|
|
{
|
|
if($ScriptErrorHash != $ScriptErrorHashDisplayed && $ScriptErrorHash != 0)
|
|
{
|
|
// Hash was different so there must be a new error. Update the display!
|
|
|
|
%oldText = ConsoleErrorDisplay.getText();
|
|
|
|
if(%oldText !$= "")
|
|
ConsoleErrorDisplay.setText(%oldText @ "\n" @ $ScriptError);
|
|
else
|
|
ConsoleErrorDisplay.setText($ScriptError);
|
|
|
|
ConsoleErrorDisplay.setCursorPosition(100000); // Hacka hacka hacka
|
|
ConsoleErrorDisplay.scrollToBottom();
|
|
|
|
// Update the pane caption.
|
|
$ConsoleErrorCount += $ScriptErrorHash - $ScriptErrorHashDisplayed;
|
|
ConsoleErrorPane.caption = $ConsoleErrorCount @ " script compilation error(s) have occured!";
|
|
|
|
// Indicate we dealt with this...
|
|
$ScriptErrorHashDisplayed = $ScriptErrorHash;
|
|
$ScriptError = "";
|
|
}
|
|
}
|
|
|
|
|