GLFitDescriptionList::GLFitDescriptionList ( JXScrollbarSet* scrollbarSet, JXContainer* enclosure, const HSizingOption hSizing, const VSizingOption vSizing, const JCoordinate x, const JCoordinate y, const JCoordinate w, const JCoordinate h ) : JXEditTable(1, kDefColWidth, scrollbarSet, enclosure, hSizing,vSizing, x,y, w,h), itsInput(NULL) { itsMinColWidth = 1; const JFontManager* fontMgr = GetFontManager(); const JSize rowHeight = 2*kVMarginWidth + fontMgr->GetDefaultFont().GetLineHeight(); SetDefaultRowHeight(rowHeight); const JSize count = GetFitManager()->GetFitCount(); itsNameList = jnew JPtrArray<JString>(JPtrArrayT::kDeleteAll); assert(itsNameList != NULL); AppendCols(1); SyncWithManager(); JXColormap* colormap = GetColormap(); SetRowBorderInfo(0, colormap->GetBlackColor()); SetColBorderInfo(0, colormap->GetBlackColor()); itsBuiltInIcon = jnew JXImage(GetDisplay(), JXPM(glBuiltInFit)); assert(itsBuiltInIcon != NULL); itsBuiltInIcon->ConvertToRemoteStorage(); itsNonLinearIcon = jnew JXImage(GetDisplay(), JXPM(glNonLinearFit)); assert(itsNonLinearIcon != NULL); itsNonLinearIcon->ConvertToRemoteStorage(); itsPolyIcon = jnew JXImage(GetDisplay(), JXPM(glPolyFit)); assert(itsPolyIcon != NULL); itsPolyIcon->ConvertToRemoteStorage(); itsExecutableIcon = jnew JXImage(GetDisplay(), JXPM(jx_executable_small)); assert( itsExecutableIcon != NULL ); itsExecutableIcon->ConvertToRemoteStorage(); ListenTo(GetFitManager()); }
SMTPDebugDir::SMTPDebugDir ( JXDirector* supervisor ) : GMManagedDirector(supervisor) { JSize w = 400; JSize h = 300; JXWindow* window = new JXWindow(this, w,h, "Debug Window"); assert( window != NULL ); SetWindow(window); window->SetCloseAction(JXWindow::kDeactivateDirector); JXMenuBar* menuBar = new JXMenuBar(window, JXWidget::kHElastic, JXWidget::kFixedTop, 0,0, w,kJXStdMenuBarHeight); assert( menuBar != NULL ); itsFileMenu = menuBar->AppendTextMenu(kFileMenuTitleStr); itsFileMenu->SetMenuItems(kFileMenuStr); itsFileMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsFileMenu); GMDirectorMenu* menu = new GMDirectorMenu(kWindowsMenuTitleStr, menuBar, JXWidget::kFixedLeft, JXWidget::kVElastic, 0,0, 10,10); assert(menu != NULL); menuBar->AppendMenu(menu); JXScrollbarSet* scrollbarSet = new JXScrollbarSet(window, JXWidget::kHElastic, JXWidget::kVElastic, 0,kJXStdMenuBarHeight,w,h - kJXStdMenuBarHeight); assert ( scrollbarSet != NULL ); itsText = new JXStaticText("", kJFalse, kJTrue, scrollbarSet, scrollbarSet->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0,0,w,h - kJXStdMenuBarHeight); assert (itsText != NULL); itsMenuIcon = new JXImage(window->GetDisplay(), window->GetColormap(), JXPM(debug_xpm)); assert(itsMenuIcon != NULL); itsMenuIcon->ConvertToRemoteStorage(); GGetDirMgr()->DirectorCreated(this); }
TestWidget::TestWidget ( const JBoolean isMaster, const JBoolean isImage, JXMenuBar* menuBar, JXScrollbarSet* scrollbarSet, JXContainer* enclosure, const HSizingOption hSizing, const VSizingOption vSizing, const JCoordinate x, const JCoordinate y, const JCoordinate w, const JCoordinate h ) : JXScrollableWidget(scrollbarSet, enclosure, hSizing, vSizing, x,y, w,h), itsRNG() { JIndex i; itsFillFlag = kJFalse; itsRandPointCount = 10; itsResizeDialog = NULL; SetBackColor(GetColormap()->GetDefaultBackColor()); // cursors JXDisplay* display = GetDisplay(); itsTrekCursor = display->CreateBuiltInCursor("XC_trek", XC_trek); itsGumbyCursor = display->CreateBuiltInCursor("XC_gumby", XC_gumby); itsBogosityCursor = display->CreateBuiltInCursor("XC_bogosity", XC_bogosity); itsFleurCursor = display->CreateBuiltInCursor("XC_fleur", XC_fleur); SetDefaultCursor(itsTrekCursor); // menus itsActionsMenu = menuBar->AppendTextMenu(kActionsMenuTitleStr); itsActionsMenu->SetTitleFontStyle(GetColormap()->GetWhiteColor()); itsActionsMenu->SetShortcuts(kActionsMenuShortcutStr); itsActionsMenu->SetMenuItems(kActionsMenuStr); itsActionsMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsActionsMenu); itsPointMenu = jnew JXTextMenu(itsActionsMenu, kPointMenuCmd, menuBar); assert( itsPointMenu != NULL ); itsPointMenu->SetMenuItems(kPointMenuStr); itsPointMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsPointMenu); // This tests the JX response to an empty menu. JXTextMenu* emptyMenu = jnew JXTextMenu(itsActionsMenu, kEmptyMenuCmd, menuBar); assert( emptyMenu != NULL ); JXMenu* prevMenu = itsActionsMenu; JIndex prevMenuIndex = kAdviceMenuCmd; for (i=1; i<=kAdviceMenuCount; i++) { JXTextMenu* adviceMenu = jnew JXTextMenu(prevMenu, prevMenuIndex, menuBar); assert( adviceMenu != NULL ); adviceMenu->SetMenuItems(kAdviceMenuStr[i-1]); adviceMenu->SetUpdateAction(JXMenu::kDisableNone); if (i == kAdviceBoldMenuIndex) { adviceMenu->SetItemFontStyle(2, JFontStyle(kJTrue, kJFalse, 0, kJFalse, GetColormap()->GetBlackColor())); } prevMenu = adviceMenu; prevMenuIndex = 2; } BuildXlsfontsMenu(itsActionsMenu, menuBar); // secret menus are a bad idea because the user can't find them! itsSecretMenu = jnew JXTextMenu("", this, kFixedLeft, kFixedTop, 0,0, 10,10); assert( itsSecretMenu != NULL ); itsSecretMenu->SetMenuItems(kSecretMenuStr); itsSecretMenu->SetUpdateAction(JXMenu::kDisableNone); itsSecretMenu->SetToHiddenPopupMenu(kJTrue); // will assert() otherwise itsSecretMenu->Hide(); ListenTo(itsSecretMenu); itsSecretSubmenu = jnew JXTextMenu(itsSecretMenu, kSecretSubmenuIndex, this); assert( itsSecretSubmenu != NULL ); itsSecretSubmenu->SetMenuItems(kSecretSubmenuStr); itsSecretSubmenu->SetUpdateAction(JXMenu::kDisableNone); // we don't ListenTo() it because it's only there for show // image from xpm itsXPMImage = jnew JXImage(GetDisplay(), JXPM(macapp_xpm)); assert( itsXPMImage != NULL ); // partial image from image itsPartialXPMImage = jnew JXImage(*itsXPMImage, JRect(5,5,14,16)); assert( itsPartialXPMImage != NULL ); // home symbol itsHomeImage = jnew JXImage(GetDisplay(), JXPM(home_xpm)); assert( itsHomeImage != NULL ); itsHomeRect = itsHomeImage->GetBounds(); itsHomeRect.Shift(120, 10); // buffer contents of Widget in JXImage itsImageBuffer = NULL; if (isImage) { CreateImageBuffer(); } // initial size SetBounds(400,400); // enclosed objects itsAnimButton = jnew JXTextButton("Start", this, JXWidget::kFixedLeft, JXWidget::kFixedTop, 37,175, 50,30); assert( itsAnimButton != NULL ); itsAnimButton->SetShortcuts("#A"); ListenTo(itsAnimButton); if (isMaster) { itsQuitButton = jnew JXTextButton(JGetString("Quit::TestWidget"), this, JXWidget::kFixedRight, JXWidget::kFixedBottom, x,y, 50,30); assert( itsQuitButton != NULL ); JXColormap* colormap = GetColormap(); itsQuitButton->CenterWithinEnclosure(kJTrue, kJTrue); itsQuitButton->SetFontStyle(JFontStyle(kJTrue, kJFalse, 0, kJFalse, colormap->GetRedColor())); itsQuitButton->SetNormalColor(colormap->GetCyanColor()); itsQuitButton->SetPushedColor(colormap->GetBlueColor()); ListenTo(itsQuitButton); } else { itsQuitButton = NULL; } ExpandToFitContent(); // drops on iconfied window JXWindowIcon* windowIcon; const JBoolean hasIconWindow = GetWindow()->GetIconWidget(&windowIcon); assert( hasIconWindow ); ListenTo(windowIcon); }
void GPMMainDirector::BuildWindow() { // begin JXLayout JXWindow* window = new JXWindow(this, 530,350, ""); assert( window != NULL ); JXMenuBar* menuBar = new JXMenuBar(window, JXWidget::kHElastic, JXWidget::kFixedTop, 0,0, 540,30); assert( menuBar != NULL ); itsToolBar = new JXToolBar(GPMGetPrefsManager(), kGPMMainToolBarID, menuBar, 540, 250, window, JXWidget::kHElastic, JXWidget::kVElastic, 0,30, 530,300); assert( itsToolBar != NULL ); itsFullCmdDisplay = new JXStaticText("", kJFalse, kJTrue, NULL, window, JXWidget::kHElastic, JXWidget::kFixedBottom, 0,330, 530,20); assert( itsFullCmdDisplay != NULL ); // end JXLayout window->SetTitle("Drakon Process Manager"); window->SetCloseAction(JXWindow::kQuitApp); window->SetWMClass(GPMGetWMClassInstance(), GPMGetMainWindowClass()); JXImage* image = new JXImage(GetDisplay(), gpm_main_window_icon); assert( image != NULL ); window->SetIcon(image); // system stats itsSystemStats = new GPMSystemStats(itsProcessList, itsToolBar->GetWidgetEnclosure(), JXWidget::kHElastic, JXWidget::kFixedTop, 0,kStatusMargin, 100,kStatusHeight); assert( itsSystemStats != NULL ); itsSystemStats->FitToEnclosure(kJTrue, kJFalse); // tab group itsTabGroup = new JXTabGroup(itsToolBar->GetWidgetEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0,0, 100,100); assert( itsTabGroup != NULL ); itsTabGroup->FitToEnclosure(); ListenTo(itsTabGroup->GetCardEnclosure()); const JCoordinate statusHeight = kStatusHeight + 2*kStatusMargin; itsTabGroup->AdjustSize(0, -statusHeight); itsTabGroup->Move(0, statusHeight); JXWidgetSet* listTab = itsTabGroup->AppendTab("List"); JXWidgetSet* treeTab = itsTabGroup->AppendTab("Tree"); // list view JXScrollbarSet* scrollbarSet = new JXScrollbarSet(listTab, JXWidget::kHElastic, JXWidget::kVElastic, 0,0, 100,100); assert( scrollbarSet != NULL ); scrollbarSet->FitToEnclosure(); const JCoordinate kHeaderHeight = 25; const JCoordinate tableHeight = scrollbarSet->GetScrollEnclosure()->GetBoundsHeight() - kHeaderHeight; itsProcessTable = new GPMProcessTable(itsProcessList, itsFullCmdDisplay, scrollbarSet, scrollbarSet->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0,kHeaderHeight, 100,tableHeight); assert( itsProcessTable != NULL ); itsProcessTable->FitToEnclosure(kJTrue, kJFalse); GPMListHeaderWidget* tableHeader = new GPMListHeaderWidget(itsProcessTable, itsProcessList, scrollbarSet, scrollbarSet->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kFixedTop, 0,0, 100,kHeaderHeight); assert( tableHeader != NULL ); tableHeader->FitToEnclosure(kJTrue, kJFalse); // tree view scrollbarSet = new JXScrollbarSet(treeTab, JXWidget::kHElastic, JXWidget::kVElastic, 0,0, 100,100); assert( scrollbarSet != NULL ); scrollbarSet->FitToEnclosure(); JNamedTreeList* treeList = new JNamedTreeList(itsProcessList->GetProcessTree()); assert( treeList != NULL ); itsProcessTree = new GPMProcessTreeList(itsProcessList, treeList, itsFullCmdDisplay, scrollbarSet, scrollbarSet->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0,kHeaderHeight, 100,tableHeight); assert( itsProcessTree != NULL ); itsProcessTree->FitToEnclosure(kJTrue, kJFalse); GPMTreeHeaderWidget* treeHeader = new GPMTreeHeaderWidget(itsProcessTree, itsProcessList, scrollbarSet, scrollbarSet->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kFixedTop, 0,0, 100,kHeaderHeight); assert( treeHeader != NULL ); treeHeader->FitToEnclosure(kJTrue, kJFalse); itsProcessTable->SetDefaultRowHeight(itsProcessTree->GetDefaultRowHeight()); // focus hocus pocus window->UnregisterFocusWidget(itsFullCmdDisplay); window->RegisterFocusWidget(itsFullCmdDisplay); // menus itsFileMenu = menuBar->AppendTextMenu(kFileMenuTitleStr); itsFileMenu->SetMenuItems(kFileMenuStr); itsFileMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsFileMenu); itsProcessMenu = menuBar->AppendTextMenu(kProcessMenuTitleStr); itsProcessMenu->SetMenuItems(kProcessMenuStr, "GPMProcessTable"); ListenTo(itsProcessMenu); itsProcessMenu->SetItemImage(kShowAllCmd, JXPM(gpm_all_processes)); itsProcessMenu->SetItemImage(kEndCmd, JXPM(gpm_stop)); itsProcessMenu->SetItemImage(kKillCmd, JXPM(jx_edit_clear)); itsProcessMenu->SetItemImage(kPauseCmd, JXPM(gpm_pause)); itsProcessMenu->SetItemImage(kContinueCmd, JXPM(gpm_cont)); itsProcessMenu->SetItemImage(kReNiceCmd, JXPM(gpm_slow)); itsPrefsMenu = menuBar->AppendTextMenu(kPrefsMenuTitleStr); itsPrefsMenu->SetMenuItems(kPrefsMenuStr); itsPrefsMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsPrefsMenu); itsHelpMenu = menuBar->AppendTextMenu(kHelpMenuTitleStr); itsHelpMenu->SetMenuItems(kHelpMenuStr); itsHelpMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsHelpMenu); itsHelpMenu->SetItemImage(kTOCCmd, jx_help_toc); itsHelpMenu->SetItemImage(kThisWindowCmd, jx_help_specific); // must be done after creating widgets itsToolBar->LoadPrefs(); if (itsToolBar->IsEmpty()) { itsToolBar->AppendButton(itsFileMenu, kQuitCmd); itsToolBar->NewGroup(); itsToolBar->AppendButton(itsProcessMenu, kShowAllCmd); itsToolBar->NewGroup(); itsToolBar->AppendButton(itsProcessMenu, kEndCmd); itsToolBar->AppendButton(itsProcessMenu, kKillCmd); itsToolBar->NewGroup(); itsToolBar->AppendButton(itsProcessMenu, kPauseCmd); itsToolBar->AppendButton(itsProcessMenu, kContinueCmd); itsToolBar->NewGroup(); itsToolBar->AppendButton(itsProcessMenu, kReNiceCmd); itsToolBar->NewGroup(); itsToolBar->AppendButton(itsHelpMenu, kTOCCmd); itsToolBar->AppendButton(itsHelpMenu, kThisWindowCmd); } }
void GMessageViewDir::BuildWindow ( const JString& mailfile ) { JSize w = 500; JSize h = 300; JXWindow* window = new JXWindow(this, w,h, mailfile); assert( window != NULL ); window->SetWMClass(GMGetWMClassInstance(), GMGetViewWindowClass()); GGetPrefsMgr()->GetViewWindowSize(window); w = window->GetFrameWidth(); h = window->GetFrameHeight(); window->SetMinSize(w, 150); window->ShouldFocusWhenShow(kJTrue); JXMenuBar* menuBar = new JXMenuBar(window, JXWidget::kHElastic, JXWidget::kFixedTop, 0, 0, w - kJXDefaultMenuBarHeight, kJXDefaultMenuBarHeight); assert(menuBar != NULL); JXEngravedRect* eRect = new JXEngravedRect(window, JXWidget::kFixedRight, JXWidget::kFixedTop, w - kJXDefaultMenuBarHeight, 0, kJXDefaultMenuBarHeight, kJXDefaultMenuBarHeight); assert(eRect != NULL); GMMessageDragSource* mds = new GMMessageDragSource(this, window, JXWidget::kFixedRight, JXWidget::kFixedTop, w - kJXDefaultMenuBarHeight + kJXDefaultBorderWidth, 0 + kJXDefaultBorderWidth, kJXDefaultMenuBarHeight - 2 * kJXDefaultBorderWidth + 1, kJXDefaultMenuBarHeight - 2 * kJXDefaultBorderWidth + 1); assert(mds != NULL); itsFileMenu = menuBar->AppendTextMenu(kFileMenuTitleStr); itsFileMenu->SetMenuItems(kFileMenuStr); itsFileMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsFileMenu); JPtrArray<JString> nodes(JPtrArrayT::kDeleteAll); GGetMailboxTreeDir()->GetTopLevelNodes(&nodes); itsTransferMenu = new JXFSDirMenu(nodes, itsFileMenu, kTransferToCmd, menuBar); assert(itsTransferMenu != NULL); ListenTo(itsTransferMenu); JDirInfo* info; if (itsTransferMenu->GetDirInfo(&info)) { info->SetContentFilter(GMGetMailRegexStr()); } itsCopyMenu = new JXFSDirMenu(nodes, itsFileMenu, kCopyToCmd, menuBar); assert(itsCopyMenu != NULL); ListenTo(itsCopyMenu); if (itsCopyMenu->GetDirInfo(&info)) { info->SetContentFilter(GMGetMailRegexStr()); } ListenTo(GGetMailboxTreeDir()); itsMessageMenu = menuBar->AppendTextMenu(kMessageMenuTitleStr); itsMessageMenu->SetMenuItems(kMessageMenuStr); itsMessageMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsMessageMenu); itsToolBar = new JXToolBar(GGetPrefsMgr(), kGViewToolBarID, menuBar, w, 150, window, JXWidget::kHElastic, JXWidget::kVElastic, 0, kJXDefaultMenuBarHeight, w, h - kJXDefaultMenuBarHeight); assert(itsToolBar != NULL); const JSize newHeight = itsToolBar->GetWidgetEnclosure()->GetBoundsHeight(); const JFontManager* fm = window->GetFontManager(); JSize lineHeight = fm->GetLineHeight(GGetPrefsMgr()->GetDefaultMonoFont(), GGetPrefsMgr()->GetDefaultFontSize(), JFontStyle()); const JCoordinate headerheight = (lineHeight * 4) + (lineHeight/2); //58; JArray<JCoordinate> sizes; JArray<JCoordinate> minSizes; sizes.AppendElement(headerheight); minSizes.AppendElement(20); sizes.AppendElement(w - headerheight); minSizes.AppendElement(50); JIndex elasticIndex = 2; itsPart = new JXVertPartition(sizes, elasticIndex, minSizes, itsToolBar->GetWidgetEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0, 0, w, newHeight); assert(itsPart != NULL); itsSBSet = new JXScrollbarSet(itsPart->GetCompartment(2), JXWidget::kHElastic, JXWidget::kVElastic, 0,0, 100,100); assert(itsSBSet != NULL); itsSBSet->FitToEnclosure(kJTrue, kJTrue); itsView = new GMessageView(menuBar, itsSBSet, itsSBSet->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0,0,10,10); assert (itsView != NULL); itsView->FitToEnclosure(kJTrue, kJTrue); itsView->SetPTPrinter(GMGetAltPTPrinter()); window->InstallShortcuts(itsView, "#_"); ListenTo(itsView); JXScrollbarSet* sbs = new JXScrollbarSet(itsPart->GetCompartment(1), JXWidget::kHElastic, JXWidget::kVElastic, 0,0, 100,50); assert(sbs != NULL); sbs->FitToEnclosure(kJTrue, kJTrue); itsHeader = new GMessageView(sbs, sbs->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0,0,10,10); assert (itsHeader != NULL); itsHeader->FitToEnclosure(kJTrue, kJTrue); itsHeader->ShareEditMenu(itsView); itsHeader->ShareSearchMenu(itsView); GMDirectorMenu* menu = new GMDirectorMenu(kWindowsMenuTitleStr, menuBar, JXWidget::kFixedLeft, JXWidget::kVElastic, 0,0, 10,10); assert(menu != NULL); menuBar->AppendMenu(menu); itsPrefsMenu = menuBar->AppendTextMenu(kPrefsMenuTitleStr); itsPrefsMenu->SetMenuItems(kPrefsMenuStr); itsPrefsMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsPrefsMenu); itsHelpMenu = menuBar->AppendTextMenu(kHelpMenuTitleStr); itsHelpMenu->SetMenuItems(kHelpMenuStr); itsHelpMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsHelpMenu); itsFileMenu->SetItemImage(kNewCmd, filenew); itsFileMenu->SetItemImage(kNewMBox, envelopes); itsFileMenu->SetItemImage(kOpenCmd, fileopen); itsFileMenu->SetItemImage(kSaveCmd, filefloppy); itsFileMenu->SetItemImage(kPrintCmd, fileprint); itsFileMenu->SetItemImage(kShowNextCmd, mini_right); itsFileMenu->SetItemImage(kDeleteShowNextCmd, mini_del_right); itsFileMenu->SetItemImage(kShowPrevCmd, mini_left); itsMessageMenu->SetItemImage(kDecryptCmd, unlock_xpm); itsMessageMenu->SetItemImage(kSaveAttachCmd, paperclip); itsMessageMenu->SetItemImage(kReplyCmd, reply_xpm); itsMessageMenu->SetItemImage(kReplySenderCmd, reply_sender_xpm); itsMessageMenu->SetItemImage(kReplyAllCmd, reply_all_xpm); itsMessageMenu->SetItemImage(kForwardCmd, forward_xpm); itsMessageMenu->SetItemImage(kRedirectCmd, redirect_xpm); itsHelpMenu->SetItemImage(kTOCCmd, jx_help_toc); itsHelpMenu->SetItemImage(kThisWindowCmd, JXPM(jx_help_specific)); itsToolBar->LoadPrefs(); if (itsToolBar->IsEmpty()) { itsToolBar->AppendButton(itsFileMenu, kNewCmd); itsToolBar->AppendButton(itsFileMenu, kOpenCmd); itsToolBar->NewGroup(); itsToolBar->AppendButton(itsFileMenu, kSaveCmd); itsToolBar->NewGroup(); itsToolBar->AppendButton(itsFileMenu, kPrintCmd); itsToolBar->NewGroup(); itsToolBar->AppendButton(itsFileMenu, kShowNextCmd); itsToolBar->AppendButton(itsFileMenu, kShowPrevCmd); itsToolBar->AppendButton(itsFileMenu, kDeleteShowNextCmd); itsToolBar->NewGroup(); itsToolBar->AppendButton(itsMessageMenu, kReplyCmd); itsToolBar->AppendButton(itsMessageMenu, kReplySenderCmd); itsToolBar->AppendButton(itsMessageMenu, kReplyAllCmd); itsToolBar->AppendButton(itsMessageMenu, kForwardCmd); itsToolBar->AppendButton(itsMessageMenu, kRedirectCmd); } itsMenuIcon = new JXImage(window->GetDisplay(), jx_plain_file_small); assert(itsMenuIcon != NULL); itsMenuIcon->ConvertToRemoteStorage(); }
void GXDataDocument::BuildWindow() { JSize w = 453; JSize h = 360; JXWindow* window = jnew JXWindow(this, w,h, ""); assert( window != NULL ); JXMenuBar* menuBar = jnew JXMenuBar(window, JXWidget::kHElastic, JXWidget::kFixedTop, 0,0, w, kJXDefaultMenuBarHeight); assert( menuBar != NULL ); JXToolBar* toolBar = jnew JXToolBar(GetPrefsMgr(), kDataToolBarID, menuBar, window, JXWidget::kHElastic, JXWidget::kVElastic, 0,kJXDefaultMenuBarHeight, w,h - kJXDefaultMenuBarHeight); assert( toolBar != NULL ); window->SetMinSize(150, 150); itsFileMenu = menuBar->AppendTextMenu(kFileMenuTitleStr); itsFileMenu->SetMenuItems(kFileMenuStr); ListenTo(itsFileMenu); JXImage* image = jnew JXImage(GetDisplay(), JXPM(filenew)); assert(image != NULL); itsFileMenu->SetItemImage(kNewCmd, image, kJTrue); image = jnew JXImage(GetDisplay(), JXPM(fileopen)); assert(image != NULL); itsFileMenu->SetItemImage(kOpenCmd, image, kJTrue); image = jnew JXImage(GetDisplay(), JXPM(filefloppy)); assert(image != NULL); itsFileMenu->SetItemImage(kSaveCmd, image, kJTrue); image = jnew JXImage(GetDisplay(), JXPM(fileprint)); assert(image != NULL); itsFileMenu->SetItemImage(kPrintCmd, image, kJTrue); const JCoordinate scrollheight = toolBar->GetWidgetEnclosure()->GetBoundsHeight(); itsScrollbarSet = jnew JXScrollbarSet(toolBar->GetWidgetEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0,0, w, scrollheight); assert( itsScrollbarSet != NULL ); AdjustWindowTitle(); // layout table and headers const JCoordinate kRowHeaderWidth = 30; const JCoordinate kColHeaderHeight = 20; JXContainer* encl = itsScrollbarSet->GetScrollEnclosure(); JRect enclApG = encl->GetApertureGlobal(); JXTextButton* okButton = jnew JXTextButton("OK", encl, JXWidget::kFixedLeft, JXWidget::kFixedTop, 0, 0, kRowHeaderWidth-2, kColHeaderHeight-2); assert(okButton != NULL); itsTable = jnew GXRaggedFloatTable(this, okButton, itsData, 6, menuBar, itsScrollbarSet, encl, JXWidget::kHElastic, JXWidget::kVElastic, kRowHeaderWidth,kColHeaderHeight, enclApG.width() - kRowHeaderWidth, enclApG.height() - kColHeaderHeight); assert( itsTable != NULL ); enclApG = encl->GetApertureGlobal(); // JXScrollableWidget forces a change in this GXRowHeaderWidget* rowHeader = jnew GXRowHeaderWidget(itsTable, itsScrollbarSet, encl, JXWidget::kFixedLeft, JXWidget::kVElastic, 0,kColHeaderHeight, kRowHeaderWidth, enclApG.height() - kColHeaderHeight); assert( rowHeader != NULL ); GXColHeaderWidget* colHeader = jnew GXColHeaderWidget(itsTable, itsScrollbarSet, encl, JXWidget::kHElastic, JXWidget::kFixedTop, kRowHeaderWidth,0, enclApG.width() - kRowHeaderWidth, kColHeaderHeight); colHeader->TurnOnColResizing(20); assert( colHeader != NULL ); JXDocumentMenu* windowListMenu = jnew JXDocumentMenu(kWindowListMenuTitleStr, menuBar, JXWidget::kFixedLeft, JXWidget::kVElastic, 0,0, 10,10); assert( windowListMenu != NULL ); menuBar->AppendMenu(windowListMenu); itsExportMenu = jnew JXTextMenu(itsFileMenu, kExportCmd, menuBar); assert( itsExportMenu != NULL ); itsExportMenu->SetMenuItems(kExportMenuStr); itsExportMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsExportMenu); itsHelpMenu = menuBar->AppendTextMenu(kHelpMenuTitleStr); itsHelpMenu->SetMenuItems(kHelpMenuStr); itsHelpMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsHelpMenu); image = jnew JXImage(GetDisplay(), JXPM(manual)); assert(image != NULL); itsHelpMenu->SetItemImage(kTOCCmd, image, kJTrue); toolBar->LoadPrefs(); if (toolBar->IsEmpty()) { toolBar->AppendButton(itsFileMenu, kNewCmd); toolBar->AppendButton(itsFileMenu, kOpenCmd); toolBar->AppendButton(itsFileMenu, kSaveCmd); toolBar->NewGroup(); toolBar->AppendButton(itsFileMenu, kPrintCmd); itsTable->LoadDefaultToolButtons(toolBar); toolBar->NewGroup(); toolBar->AppendButton(itsHelpMenu, kTOCCmd); } }
void GLFitDirector::BuildWindow() { JCoordinate w = 600; JCoordinate h = 420; JXWindow* window = new JXWindow(this, w,h, "Fit"); assert( window != NULL ); window->SetCloseAction(JXWindow::kDeactivateDirector); JXMenuBar* menuBar = new JXMenuBar(window, JXWidget::kHElastic, JXWidget::kFixedTop, 0,0, w,kJXDefaultMenuBarHeight); assert( menuBar != NULL ); itsToolBar = new JXToolBar(GetPrefsMgr(), kFitToolBarID, menuBar, w, h, window, JXWidget::kHElastic, JXWidget::kVElastic, 0,kJXDefaultMenuBarHeight, w,h - kJXDefaultMenuBarHeight); assert( itsToolBar != NULL ); JSize newHeight = itsToolBar->GetWidgetEnclosure()->GetBoundsHeight(); const JCoordinate kPartitionHandleWidth = 5; const JCoordinate kFitListWidth = 155; JArray<JCoordinate> widths(2); widths.AppendElement(kFitListWidth); widths.AppendElement(w - kFitListWidth - kPartitionHandleWidth); JIndex elasticIndex = 2; JArray<JCoordinate> minWidths(2); minWidths.AppendElement(100); minWidths.AppendElement(300); itsMainPartition = new JXHorizPartition(widths, elasticIndex, minWidths, itsToolBar->GetWidgetEnclosure(), JXWidget::kHElastic,JXWidget::kVElastic, 0, 0, w, newHeight); assert( itsMainPartition != NULL ); // This is the first column the contains the curve and fit lists. JXContainer* container = itsMainPartition->GetCompartment(1); const JCoordinate kCurveListHeight = 100; const JCoordinate kColHeaderHeight = 20; const JCoordinate kExprHeight = 50; const JCoordinate kFitListHeight = newHeight - kCurveListHeight - 2 * kPartitionHandleWidth - kExprHeight; JArray<JCoordinate> heights(3); heights.AppendElement(kCurveListHeight); heights.AppendElement(kFitListHeight); heights.AppendElement(kExprHeight); elasticIndex = 2; JArray<JCoordinate> minHeights(3); minHeights.AppendElement(50); minHeights.AppendElement(100); minHeights.AppendElement(40); itsListPartition = new JXVertPartition(heights, elasticIndex, minHeights, container, JXWidget::kHElastic, JXWidget::kVElastic, 0, 0, kFitListWidth, newHeight); assert( itsListPartition != NULL ); container = itsListPartition->GetCompartment(1); JXScrollbarSet* scrollbarSet = new JXScrollbarSet(container, JXWidget::kHElastic,JXWidget::kVElastic, 0, kColHeaderHeight, kFitListWidth, kCurveListHeight - kColHeaderHeight); assert( scrollbarSet != NULL ); // This will be the curve list itsCurveList = new GLCurveNameList(itsDir, itsPlot, scrollbarSet, scrollbarSet->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0, 0, kFitListWidth, kCurveListHeight - kColHeaderHeight); assert(itsCurveList != NULL); ListenTo(itsCurveList); JXColHeaderWidget* header = new JXColHeaderWidget(itsCurveList, scrollbarSet, container, JXWidget::kHElastic, JXWidget::kFixedTop, 0, 0, kFitListWidth, kColHeaderHeight); assert(header != NULL); header->SetColTitle(1, "Curves"); container = itsListPartition->GetCompartment(2); scrollbarSet = new JXScrollbarSet(container, JXWidget::kHElastic,JXWidget::kVElastic, 0, kColHeaderHeight, kFitListWidth, kFitListHeight - kColHeaderHeight); assert( scrollbarSet != NULL ); // This will be the fit list itsFitList = new GLFitDescriptionList(scrollbarSet, scrollbarSet->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0, 0, kFitListWidth, kFitListHeight - kColHeaderHeight); assert(itsFitList != NULL); ListenTo(itsFitList); header = new JXColHeaderWidget(itsFitList, scrollbarSet, container, JXWidget::kHElastic, JXWidget::kFixedTop, 0, 0, kFitListWidth, kColHeaderHeight); assert(header != NULL); header->SetColTitle(1, "Fits"); // this is the expression widget that displays the current JFunction container = itsListPartition->GetCompartment(3); scrollbarSet = new JXScrollbarSet(container, JXWidget::kHElastic,JXWidget::kVElastic, 0, 0, kFitListWidth, kExprHeight); assert( scrollbarSet != NULL ); itsExprVarList = new GVarList(); assert(itsExprVarList != NULL); itsExprWidget = new JXExprWidget(itsExprVarList, scrollbarSet, scrollbarSet->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0, 0, kFitListWidth, kExprHeight); assert(itsExprWidget != NULL); itsExprWidget->Hide(); // This is the second column that will contain the parameter table // and the plots container = itsMainPartition->GetCompartment(2); const JCoordinate kParmsTableHeight = 50; const JCoordinate kChiSqHeight = 20; const JCoordinate kTotalParmsHeight = kParmsTableHeight + kColHeaderHeight + kChiSqHeight; const JCoordinate kFirstPlotHeight = 120; const JCoordinate kMinPlotHeight = 100; heights.RemoveAll(); heights.AppendElement(kTotalParmsHeight); heights.AppendElement(kFirstPlotHeight); heights.AppendElement(newHeight - kFirstPlotHeight - kTotalParmsHeight - 2 * kPartitionHandleWidth); elasticIndex = 2; minHeights.RemoveAll(); minHeights.AppendElement(kTotalParmsHeight - 20); minHeights.AppendElement(kMinPlotHeight); minHeights.AppendElement(kMinPlotHeight); itsPlotPartition = new JXVertPartition(heights, elasticIndex, minHeights, container, JXWidget::kHElastic, JXWidget::kVElastic, 0, 0, w - kFitListWidth - kPartitionHandleWidth, newHeight); assert( itsPlotPartition != NULL ); container = itsPlotPartition->GetCompartment(1); scrollbarSet = new JXScrollbarSet(container, JXWidget::kHElastic,JXWidget::kVElastic, 0, kColHeaderHeight, w - kFitListWidth - kPartitionHandleWidth, kParmsTableHeight); assert( scrollbarSet != NULL ); // this will be the parameter table itsParameterTable = new GLFitParameterTable(scrollbarSet, scrollbarSet->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0, 0, w - kFitListWidth - kPartitionHandleWidth, kParmsTableHeight); assert(itsParameterTable != NULL); ListenTo(itsParameterTable); itsParameterColHeader = new GLParmColHeaderWidget(itsParameterTable, scrollbarSet, container, JXWidget::kHElastic, JXWidget::kFixedTop, 0, 0, w - kFitListWidth - kPartitionHandleWidth, kColHeaderHeight); assert(itsParameterColHeader != NULL); itsParameterTable->SetColHeaderWidget(itsParameterColHeader); itsFitMenu = menuBar->AppendTextMenu(kFitMenuTitleStr); itsFitMenu->SetMenuItems(kFitMenuStr); itsFitMenu->SetUpdateAction(JXMenu::kDisableAll); ListenTo(itsFitMenu); const JCoordinate kChiSqLabelWidth = 170; GLChiSqLabel* label = new GLChiSqLabel(container, JXWidget::kFixedLeft, JXWidget::kFixedBottom, 0, kParmsTableHeight + kColHeaderHeight, kChiSqLabelWidth, kChiSqHeight); assert(label != NULL); JXDownRect* downRect = new JXDownRect(container, JXWidget::kHElastic, JXWidget::kFixedBottom, kChiSqLabelWidth, kParmsTableHeight + kColHeaderHeight, w - kFitListWidth - kPartitionHandleWidth, kChiSqHeight); assert(downRect != NULL); itsChiSq = new JXStaticText("", container, JXWidget::kHElastic, JXWidget::kFixedBottom, kChiSqLabelWidth + kJXDefaultBorderWidth, kParmsTableHeight + kColHeaderHeight + kJXDefaultBorderWidth, w - kFitListWidth - kPartitionHandleWidth - 2 * kJXDefaultBorderWidth, kChiSqHeight - 2 * kJXDefaultBorderWidth); assert(itsChiSq != NULL); itsChiSq->SetBackColor(GetColormap()->GetWhiteColor()); // now add the 2 plots container = itsPlotPartition->GetCompartment(2); itsFitPlot = new JX2DPlotWidget(menuBar, container, JXWidget::kHElastic, JXWidget::kVElastic, 0, 0, w - kFitListWidth - kPartitionHandleWidth, container->GetApertureHeight()); assert(itsFitPlot != NULL); itsFitPlot->SetTitle(kFitPlotTitle); itsFitPlot->SetXLabel(itsPlot->GetXLabel()); itsFitPlot->SetYLabel(itsPlot->GetYLabel()); container = itsPlotPartition->GetCompartment(3); itsDiffPlot = new JX2DPlotWidget(itsFitPlot, container, JXWidget::kHElastic, JXWidget::kVElastic, 0, 0, w - kFitListWidth - kPartitionHandleWidth, newHeight - kFirstPlotHeight - kTotalParmsHeight - 2 * kPartitionHandleWidth); assert(itsDiffPlot != NULL); itsDiffPlot->SetTitle(kDiffPlotTitle); itsDiffPlot->SetXLabel(itsPlot->GetXLabel()); itsDiffPlot->SetYLabel(itsPlot->GetYLabel()); itsDiffPlot->ShowFrame(kJFalse); itsPrefsMenu = menuBar->AppendTextMenu(kPrefsMenuTitleStr); itsPrefsMenu->SetMenuItems(kPrefsMenuStr); itsPrefsMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsPrefsMenu); itsHelpMenu = menuBar->AppendTextMenu(kHelpMenuTitleStr); itsHelpMenu->SetMenuItems(kHelpMenuStr); itsHelpMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsHelpMenu); itsHelpMenu->SetItemImage(kTOCCmd, jx_help_toc); itsHelpMenu->SetItemImage(kThisWindowCmd, JXPM(jx_help_specific)); itsCurveList->SetCurrentCurveIndex(1); GetPrefsMgr()->ReadFitDirectorSetup(this); }
void GLAboutDialog::BuildWindow ( const JCharacter* prevVersStr ) { // begin JXLayout JXWindow* window = jnew JXWindow(this, 430,180, ""); assert( window != NULL ); JXImageWidget* gloveIcon = jnew JXImageWidget(window, JXWidget::kFixedLeft, JXWidget::kFixedTop, 20,15, 50,50); assert( gloveIcon != NULL ); JXStaticText* textWidget = jnew JXStaticText(JGetString("textWidget::GLAboutDialog::JXLayout"), window, JXWidget::kHElastic, JXWidget::kVElastic, 90,20, 330,110); assert( textWidget != NULL ); JXImageWidget* npsIcon = jnew JXImageWidget(window, JXWidget::kFixedLeft, JXWidget::kFixedTop, 10,75, 65,65); assert( npsIcon != NULL ); JXTextButton* okButton = jnew JXTextButton(JGetString("okButton::GLAboutDialog::JXLayout"), window, JXWidget::kFixedLeft, JXWidget::kFixedBottom, 320,150, 60,20); assert( okButton != NULL ); okButton->SetShortcuts(JGetString("okButton::GLAboutDialog::shortcuts::JXLayout")); itsHelpButton = jnew JXTextButton(JGetString("itsHelpButton::GLAboutDialog::JXLayout"), window, JXWidget::kFixedLeft, JXWidget::kFixedBottom, 185,150, 60,20); assert( itsHelpButton != NULL ); itsCreditsButton = jnew JXTextButton(JGetString("itsCreditsButton::GLAboutDialog::JXLayout"), window, JXWidget::kFixedLeft, JXWidget::kFixedBottom, 50,150, 60,20); assert( itsCreditsButton != NULL ); // end JXLayout window->SetTitle("About"); SetButtons(okButton, NULL); ListenTo(itsHelpButton); ListenTo(itsCreditsButton); const JCharacter* map1[] = { "version", JGetString("VERSION"), "copyright", JGetString("COPYRIGHT") }; JString text = JGetString(kDescriptionID, map1, sizeof(map1)); if (!JStringEmpty(prevVersStr)) { const JCharacter* map[] = { "vers", prevVersStr }; text += JGetString(kUpgradeNoticeID); (JGetStringManager())->Replace(&text, map, sizeof(map)); itsHelpButton->SetLabel(JGetString(kChangeButtonLabelID)); itsIsUpgradeFlag = kJTrue; } textWidget->SetText(text); JXImage* image = jnew JXImage(GetDisplay(), JXPM(glove_icon)); assert(image != NULL); gloveIcon->SetImage(image, kJTrue); // NPS icon image = jnew JXImage(GetDisplay(), nps); assert( image != NULL ); npsIcon->SetImage(image, kJTrue); const JSize bdh = textWidget->GetBoundsHeight(); const JSize aph = textWidget->GetApertureHeight(); if (bdh > aph) { window->AdjustSize(0, bdh - aph); // safe to calculate once bdh > aph } }
JXPM GloveHistoryDir::GetMenuIcon() const { return JXPM(jx_plain_file_small); }
void MDAboutDialog::BuildWindow ( const JCharacter* prevVersStr ) { // begin JXLayout JXWindow* window = new JXWindow(this, 430,200, ""); assert( window != NULL ); JXStaticText* textWidget = new JXStaticText(JGetString("textWidget::MDAboutDialog::JXLayout"), window, JXWidget::kHElastic, JXWidget::kVElastic, 90,20, 330,130); assert( textWidget != NULL ); JXTextButton* okButton = new JXTextButton(JGetString("okButton::MDAboutDialog::JXLayout"), window, JXWidget::kFixedLeft, JXWidget::kFixedBottom, 319,169, 62,22); assert( okButton != NULL ); okButton->SetShortcuts(JGetString("okButton::MDAboutDialog::shortcuts::JXLayout")); itsHelpButton = new JXTextButton(JGetString("itsHelpButton::MDAboutDialog::JXLayout"), window, JXWidget::kFixedLeft, JXWidget::kFixedBottom, 185,170, 60,20); assert( itsHelpButton != NULL ); itsHelpButton->SetShortcuts(JGetString("itsHelpButton::MDAboutDialog::shortcuts::JXLayout")); JXImageWidget* imageWidget = new JXImageWidget(window, JXWidget::kFixedLeft, JXWidget::kFixedTop, 25,20, 40,40); assert( imageWidget != NULL ); itsCreditsButton = new JXTextButton(JGetString("itsCreditsButton::MDAboutDialog::JXLayout"), window, JXWidget::kFixedLeft, JXWidget::kFixedBottom, 50,170, 60,20); assert( itsCreditsButton != NULL ); JXImageWidget* npsIcon = new JXImageWidget(window, JXWidget::kFixedLeft, JXWidget::kFixedTop, 10,75, 65,65); assert( npsIcon != NULL ); // end JXLayout window->SetTitle(JGetString("WindowTitle::MDAboutDialog")); SetButtons(okButton, NULL); ListenTo(itsHelpButton); ListenTo(itsCreditsButton); JXImage* image = new JXImage(GetDisplay(), JXPM(md_about_icon)); assert( image != NULL ); imageWidget->SetImage(image, kJTrue); JString text = MDGetVersionStr(); if (!JStringEmpty(prevVersStr)) { const JCharacter* map[] = { "vers", prevVersStr }; text += JGetString(kUpgradeNoticeID); (JGetStringManager())->Replace(&text, map, sizeof(map)); itsHelpButton->SetLabel(JGetString(kChangeButtonLabelID)); itsIsUpgradeFlag = kJTrue; } textWidget->SetText(text); const JSize bdh = textWidget->GetBoundsHeight(); const JSize aph = textWidget->GetApertureHeight(); if (bdh > aph) { window->AdjustSize(0, bdh - aph); // safe to calculate once bdh > aph } }
void GAddressBookTreeDir::BuildWindow() { JCoordinate w = 300; JCoordinate minW = 250; JCoordinate h = 500; JCoordinate minH = 250; JXWindow* window = new JXWindow(this, w,h, "Addresses"); assert( window != NULL ); window->SetWMClass(GMGetWMClassInstance(), GMGetAddressBookWindowClass()); window->SetCloseAction(JXWindow::kDeactivateDirector); window->PlaceAsDialogWindow(); window->ShouldFocusWhenShow(kJTrue); //window->SetMinSize(200, 300); //window->LockCurrentMinSize(); JXMenuBar* menuBar = new JXMenuBar(window, JXWidget::kHElastic, JXWidget::kFixedTop, 0,0, w - kCloseButtonWidth,kJXDefaultMenuBarHeight); assert( menuBar != NULL ); itsCloseButton = new JXTextButton("Close", window, JXWidget::kFixedRight, JXWidget::kFixedTop, w - kCloseButtonWidth,0, kCloseButtonWidth,kJXDefaultMenuBarHeight); assert( itsCloseButton != NULL ); itsCloseButton->SetShortcuts("#W"); //^[ ListenTo(itsCloseButton); itsToolBar = new JXToolBar(GGetPrefsMgr(), kGAddressToolBarID, menuBar, minW, minH, window, JXWidget::kHElastic, JXWidget::kVElastic, 0, kJXDefaultMenuBarHeight, w, h - kJXDefaultMenuBarHeight); assert(itsToolBar != NULL); const JSize newHeight = itsToolBar->GetWidgetEnclosure()->GetBoundsHeight(); JXScrollbarSet* scrollbarSet = new JXScrollbarSet(itsToolBar->GetWidgetEnclosure(), JXWidget::kHElastic,JXWidget::kVElastic, 0, 0, w, newHeight); assert( scrollbarSet != NULL ); JNamedTreeNode* base = new JNamedTreeNode(NULL, ""); assert(base != NULL); itsTree = new JTree(base); assert(itsTree != NULL); JNamedTreeList* list = new JNamedTreeList(itsTree); itsWidget = new GAddressBookTreeWidget(itsTree, list, menuBar, scrollbarSet, scrollbarSet->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0,0,w,newHeight); assert(itsWidget != NULL); GMDirectorMenu* menu = new GMDirectorMenu(kWindowsMenuTitleStr, menuBar, JXWidget::kFixedLeft, JXWidget::kVElastic, 0,0, 10,10); assert(menu != NULL); menuBar->AppendMenu(menu); itsHelpMenu = menuBar->AppendTextMenu(kHelpMenuTitleStr); itsHelpMenu->SetMenuItems(kHelpMenuStr); itsHelpMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsHelpMenu); itsHelpMenu->SetItemImage(kTOCCmd, JXPM(jx_help_toc)); itsHelpMenu->SetItemImage(kThisWindowCmd, JXPM(jx_help_specific)); itsToolBar->LoadPrefs(); if (itsToolBar->IsEmpty()) { itsWidget->AddDefaultButtcons(itsToolBar); itsToolBar->AppendButton(itsHelpMenu, kTOCCmd); itsToolBar->AppendButton(itsHelpMenu, kThisWindowCmd); } itsMenuIcon = new JXImage(window->GetDisplay(), address_entry); assert(itsMenuIcon != NULL); itsMenuIcon->ConvertToRemoteStorage(); }
void GMailboxTreeDir::BuildWindow() { JCoordinate w = 360; JCoordinate h = 500; JXWindow* window = new JXWindow(this, w,h, "Mailbox window"); assert( window != NULL ); window->SetWMClass(GMGetWMClassInstance(), GMGetMailboxWindowClass()); window->SetCloseAction(JXWindow::kDeactivateDirector); window->PlaceAsDialogWindow(); window->ShouldFocusWhenShow(kJTrue); window->LockCurrentMinSize(); JXMenuBar* menuBar = new JXMenuBar(window, JXWidget::kHElastic, JXWidget::kFixedTop, 0,0, w - kCloseButtonWidth,kJXDefaultMenuBarHeight); assert( menuBar != NULL ); itsCloseButton = new JXTextButton("Close", window, JXWidget::kFixedRight, JXWidget::kFixedTop, w - kCloseButtonWidth,0, kCloseButtonWidth,kJXDefaultMenuBarHeight); assert( itsCloseButton != NULL ); itsCloseButton->SetShortcuts("#W"); //^[ ListenTo(itsCloseButton); itsToolBar = new JXToolBar(GGetPrefsMgr(), kGMailboxToolBarID, menuBar, w, h, window, JXWidget::kHElastic, JXWidget::kVElastic, 0, kJXDefaultMenuBarHeight, w, h - kJXDefaultMenuBarHeight); assert(itsToolBar != NULL); itsFileMenu = menuBar->AppendTextMenu(kFileMenuTitleStr); itsFileMenu->SetMenuItems(kFileMenuStr); itsFileMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsFileMenu); GMPOPRetrieverMenu* popmenu = new GMPOPRetrieverMenu(itsFileMenu, kCheckAccountCmd, menuBar); assert(popmenu != NULL); itsFileMenu->SetItemImage(kNewCmd, filenew); itsFileMenu->SetItemImage(kOpenCmd, fileopen); itsFileMenu->SetItemImage(kCheckMailCmd, check_mail); const JSize newHeight = itsToolBar->GetWidgetEnclosure()->GetBoundsHeight(); JXScrollbarSet* scrollbarSet = new JXScrollbarSet(itsToolBar->GetWidgetEnclosure(), JXWidget::kHElastic,JXWidget::kVElastic, 0, 0, w, newHeight); assert( scrollbarSet != NULL ); GMTreeRootNode* base = new GMTreeRootNode(); assert(base != NULL); JDirInfo* info; if (base->GetDirInfo(&info)) { JString regex("^$|"); regex += GMGetMailRegexStr(); info->SetContentFilter(regex); } itsTree = new GMFileTree(base); assert(itsTree != NULL); JNamedTreeList* list = new JNamedTreeList(itsTree); itsWidget = new GMailboxTreeWidget(itsTree, list, menuBar, scrollbarSet, scrollbarSet->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0,0,w,newHeight); assert(itsWidget != NULL); GMDirectorMenu* menu = new GMDirectorMenu(kWindowsMenuTitleStr, menuBar, JXWidget::kFixedLeft, JXWidget::kVElastic, 0,0, 10,10); assert(menu != NULL); menuBar->AppendMenu(menu); itsPrefsMenu = menuBar->AppendTextMenu(kPrefsMenuTitleStr); itsPrefsMenu->SetMenuItems(kPrefsMenuStr); itsPrefsMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsPrefsMenu); itsHelpMenu = menuBar->AppendTextMenu(kHelpMenuTitleStr); itsHelpMenu->SetMenuItems(kHelpMenuStr); itsHelpMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsHelpMenu); itsHelpMenu->SetItemImage(kTOCCmd, JXPM(jx_help_toc)); itsHelpMenu->SetItemImage(kThisWindowCmd, JXPM(jx_help_specific)); itsToolBar->LoadPrefs(); if (itsToolBar->IsEmpty()) { itsToolBar->AppendButton(itsFileMenu, kNewCmd); itsToolBar->AppendButton(itsFileMenu, kOpenCmd); itsToolBar->NewGroup(); itsToolBar->AppendButton(itsFileMenu, kCheckMailCmd); itsToolBar->NewGroup(); itsWidget->AddDefaultButtcons(itsToolBar); itsToolBar->AppendButton(itsHelpMenu, kTOCCmd); itsToolBar->AppendButton(itsHelpMenu, kThisWindowCmd); } itsMenuIcon = new JXImage(window->GetDisplay(), mailbox); assert(itsMenuIcon != NULL); itsMenuIcon->ConvertToRemoteStorage(); }