JXTextMenu* CBApp::CreateHelpMenu ( JXMenuBar* menuBar, const JCharacter* idNamespace ) { JXTextMenu* menu = menuBar->AppendTextMenu(kHelpMenuTitleStr); menu->SetMenuItems(kHelpMenuStr, idNamespace); menu->SetUpdateAction(JXMenu::kDisableNone); menu->SetItemImage(kHelpTOCCmd, jx_help_toc); menu->SetItemImage(kHelpWindowCmd, jx_help_specific); return menu; }
CBTextEditor::CBTextEditor ( CBTextDocument* document, const JCharacter* fileName, JXMenuBar* menuBar, CBTELineIndexInput* lineInput, CBTEColIndexInput* colInput, JXScrollbarSet* scrollbarSet, JXContainer* enclosure, const HSizingOption hSizing, const VSizingOption vSizing, const JCoordinate x, const JCoordinate y, const JCoordinate w, const JCoordinate h ) : JXTEBase(kFullEditor, kJTrue, kJFalse, scrollbarSet, enclosure, hSizing, vSizing, x,y, w,h), itsLastModifiers(GetDisplay()) { itsDoc = document; ListenTo(itsDoc); UpdateWritable(fileName); itsLineInput = lineInput; itsLineInput->SetTE(this, colInput); itsColInput = colInput; itsColInput->SetTE(this); itsTokenStartList = JTEStyler::NewTokenStartList(); itsBalanceWhileTypingFlag = kJTrue; itsScrollToBalanceFlag = kJTrue; itsBeepWhenTypeUnbalancedFlag = kJTrue; itsSmartTabFlag = kJTrue; // create edit menu JXTextMenu* editMenu = AppendEditMenu(menuBar, kJTrue, kJTrue, kJTrue, kJTrue, kJTrue, kJTrue, kJFalse, kJFalse); const JSize editCount = editMenu->GetItemCount(); editMenu->ShowSeparatorAfter(editCount); itsExecScriptCmdIndex = editCount + 1; editMenu->AppendItem(kExecScriptStr, JXMenu::kPlainType, NULL, kExecScriptNMShortcutStr, kExecScriptAction); editMenu->SetItemImage(itsExecScriptCmdIndex, jx_run_script); editMenu->AppendItem(kExecScriptSubmenuStr); CreateScriptMenu(editMenu, editCount + 2); // create search menu JXTextMenu* searchMenu = AppendSearchReplaceMenu(menuBar); itsFirstSearchMenuItem = searchMenu->GetItemCount() + 1; searchMenu->ShowSeparatorAfter(itsFirstSearchMenuItem-1); searchMenu->AppendMenuItems(kSearchMenuStr, "CBTextEditor"); ListenTo(searchMenu); searchMenu->SetItemImage(itsFirstSearchMenuItem + kBalanceCmd, jcc_balance_braces); searchMenu->SetItemImage(itsFirstSearchMenuItem + kViewManPageCmd, jcc_view_man_page); // create menus when needed itsFnMenu = NULL; itsCompletionMenu = NULL; itsContextMenu = NULL; // font CBPrefsManager* prefsMgr = CBGetPrefsManager(); JString fontName; JSize fontSize; prefsMgr->GetDefaultFont(&fontName, &fontSize); SetFont(fontName, fontSize, kDefTabCharCount); // colors SetDefaultFontStyle(prefsMgr->GetColor(CBPrefsManager::kTextColorIndex)); SetBackColor(prefsMgr->GetColor(CBPrefsManager::kBackColorIndex)); SetFocusColor(GetBackColor()); SetCaretColor(prefsMgr->GetColor(CBPrefsManager::kCaretColorIndex)); SetSelectionColor(prefsMgr->GetColor(CBPrefsManager::kSelColorIndex)); SetSelectionOutlineColor(prefsMgr->GetColor(CBPrefsManager::kSelLineColorIndex)); // right margin itsDrawRightMarginFlag = kJFalse; itsRightMarginWidth = 80; itsRightMarginColor = prefsMgr->GetColor(CBPrefsManager::kRightMarginColorIndex); SetWhitespaceColor(itsRightMarginColor); // misc setup ShouldBroadcastCaretLocationChanged(kJTrue); UpdateTabHandling(); ListenTo(this); (scrollbarSet->GetVScrollbar())->SetScrollDelay(0); UseMultipleUndo(); SetLastSaveLocation(); ShouldAutoIndent(kJTrue); CBShouldAllowDragAndDrop(kJTrue); // new users expect it ShouldMoveToFrontOfText(kJTrue); itsLineInput->ShareEditMenu(this); itsColInput->ShareEditMenu(this); SetCharacterInWordFunction(CBMIsCharacterInWord); JTEKeyHandler* handler; CBInstallEmulator((CBGetPrefsManager())->GetEmulator(), this, &handler); }