void TestWidget::BuildXlsfontsMenu ( JXMenu* owner, JXContainer* enclosure ) { JXTextMenu* menu = jnew JXTextMenu(owner, kXlsfontsMenuCmd, enclosure); assert( menu != NULL ); menu->SetUpdateAction(JXMenu::kDisableNone); JPtrArray<JString> fontList(JPtrArrayT::kDeleteAll); GetXFontManager()->GetXFontNames(JRegex("^-.*-(courier|helvetica)-.*$"), &fontList); const JSize fontCount = fontList.GetElementCount(); for (JIndex i=1; i<=fontCount; i++) { JString* fontName = fontList.NthElement(i); menu->AppendItem(*fontName); } menu->AppendItem("I wish Netscape's bookmark list would scroll like this!!!"); const JSize count = menu->GetItemCount(); menu->SetItemFontStyle(count, JFontStyle(kJTrue, kJFalse, 0, kJFalse, GetColormap()->GetBlackColor())); if (count > 1) { menu->ShowSeparatorAfter(count-1); } }
void SCFeedbackDirector::BuildWindow ( SCCircuitDocument* doc ) { const SCCircuit* circuit = doc->GetCircuit(); JArray<JCoordinate> heights(4); heights.AppendElement(kInitExprHeight); heights.AppendElement(kInitExprHeight); heights.AppendElement(kInitExprHeight); heights.AppendElement(kInitExprHeight); JArray<JCoordinate> minHeights(4); minHeights.AppendElement(kMinExprHeight); minHeights.AppendElement(kMinExprHeight); minHeights.AppendElement(kMinExprHeight); minHeights.AppendElement(kMinExprHeight); // begin JXLayout JXWindow* window = new JXWindow(this, 360,520, ""); assert( window != NULL ); itsMainPartition = new JXVertPartition(heights, 0, minHeights, window, JXWidget::kHElastic, JXWidget::kVElastic, 0,110, 365,415); assert( itsMainPartition != NULL ); itsInputSource = new SCComponentMenu(circuit, SCACSourceFilter, "Input source:", window, JXWidget::kFixedLeft, JXWidget::kFixedTop, 20,20, 150,30); assert( itsInputSource != NULL ); itsDepSource = new SCComponentMenu(circuit, SCDepSourceFilter, "Dependent source:", window, JXWidget::kFixedLeft, JXWidget::kFixedTop, 20,60, 150,30); assert( itsDepSource != NULL ); itsEvalButton = new JXTextButton(JGetString("itsEvalButton::SCFeedbackDirector::JXLayout"), window, JXWidget::kFixedRight, JXWidget::kFixedTop, 230,20, 80,20); assert( itsEvalButton != NULL ); JXStaticText* layoutMessage = new JXStaticText(JGetString("layoutMessage::SCFeedbackDirector::JXLayout"), window, JXWidget::kFixedRight, JXWidget::kFixedTop, 240,50, 110,60); assert( layoutMessage != NULL ); // end JXLayout const JCoordinate kMinWindowWidth = window->GetBoundsWidth(); window->SetTitle("Feedback Theorem"); window->SetMinSize(kMinWindowWidth, window->GetBoundsHeight()); layoutMessage->SetText( "Output fn\nH0 | Hinf\n T | Tn\nScratch area"); itsInputSource->SetToPopupChoice(kJTrue); itsDepSource->SetToPopupChoice(kJTrue); ListenTo(itsEvalButton); // create sub-partitions const JCoordinate w = (itsMainPartition->GetBoundsWidth() - JPartition::kDragRegionSize)/2; JArray<JCoordinate> widths(2); widths.AppendElement(w); widths.AppendElement(w); const JCoordinate wMin = (kMinWindowWidth - JPartition::kDragRegionSize)/2; JArray<JCoordinate> minWidths(2); minWidths.AppendElement(wMin); minWidths.AppendElement(wMin); JXContainer* encl = itsMainPartition->GetCompartment(2); itsHPartition = new JXHorizPartition(widths, 0, minWidths, encl, JXWidget::kHElastic, JXWidget::kVElastic, 0,0, encl->GetBoundsWidth(), encl->GetBoundsHeight()); assert( itsHPartition != NULL ); encl = itsMainPartition->GetCompartment(3); itsTPartition = new JXHorizPartition(widths, 0, minWidths, encl, JXWidget::kHElastic, JXWidget::kVElastic, 0,0, encl->GetBoundsWidth(), encl->GetBoundsHeight()); assert( itsTPartition != NULL ); // create expressions SCExprEditorSet* exprSet = new SCExprEditorSet(doc, &itsOutputFn, itsMainPartition->GetCompartment(1), JXWidget::kHElastic, JXWidget::kVElastic, 0,0, 100,100); assert( exprSet != NULL ); exprSet->FitToEnclosure(); exprSet = new SCExprEditorSet(doc, itsOutputFn, &itsH0, itsHPartition->GetCompartment(1), JXWidget::kHElastic, JXWidget::kVElastic, 0,0, 100,100); assert( exprSet != NULL ); exprSet->FitToEnclosure(); exprSet = new SCExprEditorSet(doc, itsOutputFn, &itsHinf, itsHPartition->GetCompartment(2), JXWidget::kHElastic, JXWidget::kVElastic, 0,0, 100,100); assert( exprSet != NULL ); exprSet->FitToEnclosure(); exprSet = new SCExprEditorSet(doc, itsOutputFn, &itsT, itsTPartition->GetCompartment(1), JXWidget::kHElastic, JXWidget::kVElastic, 0,0, 100,100); assert( exprSet != NULL ); exprSet->FitToEnclosure(); exprSet = new SCExprEditorSet(doc, itsOutputFn, &itsTn, itsTPartition->GetCompartment(2), JXWidget::kHElastic, JXWidget::kVElastic, 0,0, 100,100); assert( exprSet != NULL ); exprSet->FitToEnclosure(); exprSet = new SCExprEditorSet(doc, itsOutputFn, &itsScratchFn, itsMainPartition->GetCompartment(4), JXWidget::kHElastic, JXWidget::kVElastic, 0,0, 100,100); assert( exprSet != NULL ); exprSet->FitToEnclosure(); // add our menu items JXTextMenu* menu = itsOutputFn->GetExtraMenu(); menu->AppendItem(kBuildH0FormItemStr); itsBuildH0Index = menu->GetItemCount(); menu->AppendItem(kBuildHinfFormItemStr); itsBuildHinfIndex = menu->GetItemCount(); menu->ShowSeparatorAfter(itsBuildH0Index-1); ListenTo(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); }