void LuaDebuggerInterface::createCodeEditor(void) { //Create the Breakpoint images BoostPath BreakpointIconPath(_BaseIconDir / BoostPath("breakpoint.png")), BreakpointDisabledIconPath(_BaseIconDir / BoostPath("breakpoint-disabled.png")), BreakpointConditionalIconPath(_BaseIconDir / BoostPath("breakpoint-conditional.png")), BreakpointConditionalDisabledIconPath(_BaseIconDir / BoostPath("breakpoint-conditional-disabled.png")), BreakpointCountIconPath(_BaseIconDir / BoostPath("breakpoint-count.png")), BreakpointCountDisabledIconPath(_BaseIconDir / BoostPath("breakpoint-count-disabled.png")); //Breakpoint Button prototypes //Regular Breakpoint ButtonRecPtr BreakpointProtoButton = Button::create(); BreakpointProtoButton->setPreferredSize(Vec2f(18.0f, 18.0f)); BreakpointProtoButton->setImages(BreakpointIconPath.string()); BreakpointProtoButton->setDisabledImage(BreakpointDisabledIconPath.string()); BreakpointProtoButton->setBorders(NULL); BreakpointProtoButton->setBackgrounds(NULL); BreakpointProtoButton->setForegrounds(NULL); //Count Breakpoint ButtonRecPtr BreakpointCountProtoButton = Button::create(); BreakpointCountProtoButton->setPreferredSize(Vec2f(18.0f, 18.0f)); BreakpointCountProtoButton->setImages(BreakpointCountIconPath.string()); BreakpointCountProtoButton->setDisabledImage(BreakpointCountDisabledIconPath.string()); BreakpointCountProtoButton->setBorders(NULL); BreakpointCountProtoButton->setBackgrounds(NULL); BreakpointCountProtoButton->setForegrounds(NULL); //Conditional breakpoint ButtonRecPtr BreakpointConditionalProtoButton = Button::create(); BreakpointConditionalProtoButton->setPreferredSize(Vec2f(18.0f, 18.0f)); BreakpointConditionalProtoButton->setImages(BreakpointConditionalIconPath.string()); BreakpointConditionalProtoButton->setDisabledImage(BreakpointConditionalDisabledIconPath.string()); BreakpointConditionalProtoButton->setBorders(NULL); BreakpointConditionalProtoButton->setBackgrounds(NULL); BreakpointConditionalProtoButton->setForegrounds(NULL); //Create the default font _CodeFont = UIFont::create(); _CodeFont->setFamily("Courier New"); _CodeFont->setSize(21); _CodeFont->setGlyphPixelSize(22); _CodeFont->setAntiAliasing(false); // Create a TextArea component _CodeTextArea = TextEditor::create(); _CodeTextArea->setIsSplit(false); _CodeTextArea->setClipboardVisible(false); //_CodeTextArea->getTextDomArea()->setFont(_CodeFont); //_CodeTextArea->setGutterWidth(50.0f); _CodeTextArea->setText(createDefaultCodeText()); //_CodeTextArea->connectCaretChanged(boost::bind(&LuaDebuggerInterface::codeAreaCaretChanged,this, _1)); //_CodeTextArea->connectMouseClicked(boost::bind(&LuaDebuggerInterface::handleCodeAreaMouseClicked,this, _1)); _MainSplitPanel = SplitPanel::create(); _MainSplitPanel->setMinComponent(_CodeTextArea); _MainSplitPanel->setMaxComponent(_InfoTabPanel); _MainSplitPanel->setOrientation(SplitPanel::VERTICAL_ORIENTATION); _MainSplitPanel->setDividerPosition(0.7); // location from the left/top _MainSplitPanel->setDividerSize(4); _MainSplitPanel->setMaxDividerPosition(.8); _MainSplitPanel->setMinDividerPosition(.2); //Code Area Info LabelRefPtr LineLabel = Label::create(); LineLabel->setText("Line:"); LineLabel->setPreferredSize(Vec2f(40.0f, 30.0f)); LineLabel->setAlignment(Vec2f(1.0f, 0.5f)); _LineValueLabel = Label::create(); _LineValueLabel->setText(""); _LineValueLabel->setPreferredSize(Vec2f(40.0f, 30.0f)); LabelRefPtr ColumnLabel = Label::create(); ColumnLabel->setText("Column:"); ColumnLabel->setPreferredSize(Vec2f(55.0f, 30.0f)); ColumnLabel->setAlignment(Vec2f(1.0f, 0.5f)); _ColumnValueLabel = Label::create(); _ColumnValueLabel->setText(""); _ColumnValueLabel->setPreferredSize(Vec2f(40.0f, 30.0f)); //TextArea Info Panel _CodeAreaInfoPanel = Panel::create(); SpringLayoutRefPtr CodeAreaInfoLayout = SpringLayout::create(); //ColumnValueLabel CodeAreaInfoLayout->putConstraint(SpringLayoutConstraints::NORTH_EDGE, _ColumnValueLabel, 0, SpringLayoutConstraints::NORTH_EDGE, _CodeAreaInfoPanel); CodeAreaInfoLayout->putConstraint(SpringLayoutConstraints::SOUTH_EDGE, _ColumnValueLabel, 0, SpringLayoutConstraints::SOUTH_EDGE, _CodeAreaInfoPanel); CodeAreaInfoLayout->putConstraint(SpringLayoutConstraints::EAST_EDGE, _ColumnValueLabel, 0, SpringLayoutConstraints::EAST_EDGE, _CodeAreaInfoPanel); //ColumnLabel CodeAreaInfoLayout->putConstraint(SpringLayoutConstraints::NORTH_EDGE, ColumnLabel, 0, SpringLayoutConstraints::NORTH_EDGE, _CodeAreaInfoPanel); CodeAreaInfoLayout->putConstraint(SpringLayoutConstraints::SOUTH_EDGE, ColumnLabel, 0, SpringLayoutConstraints::SOUTH_EDGE, _CodeAreaInfoPanel); CodeAreaInfoLayout->putConstraint(SpringLayoutConstraints::EAST_EDGE, ColumnLabel, -1, SpringLayoutConstraints::WEST_EDGE, _ColumnValueLabel); //LineValueLabel CodeAreaInfoLayout->putConstraint(SpringLayoutConstraints::NORTH_EDGE, _LineValueLabel, 0, SpringLayoutConstraints::NORTH_EDGE, _CodeAreaInfoPanel); CodeAreaInfoLayout->putConstraint(SpringLayoutConstraints::SOUTH_EDGE, _LineValueLabel, 0, SpringLayoutConstraints::SOUTH_EDGE, _CodeAreaInfoPanel); CodeAreaInfoLayout->putConstraint(SpringLayoutConstraints::EAST_EDGE, _LineValueLabel, -1, SpringLayoutConstraints::WEST_EDGE, ColumnLabel); //LineLabel CodeAreaInfoLayout->putConstraint(SpringLayoutConstraints::NORTH_EDGE, LineLabel, 0, SpringLayoutConstraints::NORTH_EDGE, _CodeAreaInfoPanel); CodeAreaInfoLayout->putConstraint(SpringLayoutConstraints::SOUTH_EDGE, LineLabel, 0, SpringLayoutConstraints::SOUTH_EDGE, _CodeAreaInfoPanel); CodeAreaInfoLayout->putConstraint(SpringLayoutConstraints::EAST_EDGE, LineLabel, -1, SpringLayoutConstraints::WEST_EDGE, _LineValueLabel); _CodeAreaInfoPanel->setPreferredSize(Vec2f(400.0f, 22.0f)); _CodeAreaInfoPanel->pushToChildren(LineLabel); _CodeAreaInfoPanel->pushToChildren(_LineValueLabel); _CodeAreaInfoPanel->pushToChildren(ColumnLabel); _CodeAreaInfoPanel->pushToChildren(_ColumnValueLabel); _CodeAreaInfoPanel->setBorders(NULL); _CodeAreaInfoPanel->setLayout(CodeAreaInfoLayout); }
void LuaDebuggerInterface::createExecutionToolbar(void) { //Execute Button BoostPath ExecuteIconPath(_BaseIconDir / BoostPath("execute.png")); BoostPath ExecuteDisabledIconPath(_BaseIconDir / BoostPath("execute-disabled.png")); _ExecuteButton = Button::create(); _ExecuteButton->setPreferredSize(_ToolButtonSize); _ExecuteButton->setImages(ExecuteIconPath.string()); _ExecuteButton->setDisabledImage(ExecuteDisabledIconPath.string()); _ExecuteButton->setAlignment(Vec2f(0.5f,0.5f)); _ExecuteButton->setToolTipText("Execute"); _ExecuteButton->connectActionPerformed(boost::bind(&LuaDebuggerInterface::executeScriptButtonAction,this)); //Step Into Button BoostPath StepInIconPath(_BaseIconDir / BoostPath("basicstepinto.png")); BoostPath StepInDisabledIconPath(_BaseIconDir / BoostPath("basicstepinto-disabled.png")); _StepInButton = Button::create(); _StepInButton->setPreferredSize(_ToolButtonSize); _StepInButton->setImages(StepInIconPath.string()); _StepInButton->setDisabledImage(StepInDisabledIconPath.string()); _StepInButton->setAlignment(Vec2f(0.5f,0.5f)); _StepInButton->setToolTipText("Step In"); //Step Out Button BoostPath StepOutIconPath(_BaseIconDir / BoostPath("basicstepout.png")); BoostPath StepOutDisabledIconPath(_BaseIconDir / BoostPath("basicstepout-disabled.png")); _StepOutButton = Button::create(); _StepOutButton->setPreferredSize(_ToolButtonSize); _StepOutButton->setImages(StepOutIconPath.string()); _StepOutButton->setDisabledImage(StepOutDisabledIconPath.string()); _StepOutButton->setAlignment(Vec2f(0.5f,0.5f)); _StepOutButton->setToolTipText("Step Out"); //Step Over Button BoostPath StepOverIconPath(_BaseIconDir / BoostPath("basicstepover.png")); BoostPath StepOverDisabledIconPath(_BaseIconDir / BoostPath("basicstepover-disabled.png")); _StepOverButton = Button::create(); _StepOverButton->setPreferredSize(_ToolButtonSize); _StepOverButton->setImages(StepOverIconPath.string()); _StepOverButton->setDisabledImage(StepOverDisabledIconPath.string()); _StepOverButton->setAlignment(Vec2f(0.5f,0.5f)); _StepOverButton->setToolTipText("Step Over"); //Stop Button BoostPath StopExecutionIconPath(_BaseIconDir / BoostPath("stop.png")); BoostPath StopExecutionDisabledIconPath(_BaseIconDir / BoostPath("stop-disabled.png")); _StopExecutionButton = Button::create(); _StopExecutionButton->setPreferredSize(_ToolButtonSize); _StopExecutionButton->setImages(StopExecutionIconPath.string()); _StopExecutionButton->setDisabledImage(StopExecutionDisabledIconPath.string()); _StopExecutionButton->setAlignment(Vec2f(0.5f,0.5f)); _StopExecutionButton->setToolTipText("Stop"); //Code Execution Toolbar //Layout FlowLayoutRecPtr ToolbarLayout = FlowLayout::create(); ToolbarLayout->setOrientation(FlowLayout::HORIZONTAL_ORIENTATION); ToolbarLayout->setHorizontalGap(3.0f); ToolbarLayout->setMajorAxisAlignment(0.0f); ToolbarLayout->setMinorAxisAlignment(0.5); _CodeExecutionToolbar = Panel::createEmpty(); _CodeExecutionToolbar->setPreferredSize(Vec2f(45.0f, 45.0f)); _CodeExecutionToolbar->setLayout(ToolbarLayout); _CodeExecutionToolbar->pushToChildren(_ExecuteButton); _CodeExecutionToolbar->pushToChildren(_StopExecutionButton); _CodeExecutionToolbar->pushToChildren(_StepOverButton); _CodeExecutionToolbar->pushToChildren(_StepInButton); _CodeExecutionToolbar->pushToChildren(_StepOutButton); updateExecutionToolbar(); }