//--- 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 = ""; } }