void GMessageTableDir::BuildWindow ( const JString& mailfile ) { JSize w = 560; JSize h = 300; JString title; JString path; JSplitPathAndName(mailfile, &path, &title); itsWindow = new JXWindow(this, w,h, title); assert( itsWindow != NULL ); itsWindow->SetWMClass(GMGetWMClassInstance(), GMGetTableWindowClass()); // ListenTo(itsWindow); GGetPrefsMgr()->GetTableWindowSize(itsWindow); w = itsWindow->GetFrameWidth(); h = itsWindow->GetFrameHeight(); itsWindow->SetMinSize(w, 150); JXMenuBar* menuBar = new JXMenuBar(itsWindow, JXWidget::kHElastic, JXWidget::kFixedTop, 0, 0, w, kJXDefaultMenuBarHeight); assert(menuBar != 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()); GMPOPRetrieverMenu* popmenu = new GMPOPRetrieverMenu(itsFileMenu, kCheckAccountCmd, menuBar); assert(popmenu != NULL); // itsInboxMenu = new JXTextMenu(itsFileMenu, kInboxCmd, menuBar); itsInboxMenu = menuBar->AppendTextMenu(kInboxMenuTitleStr); assert(itsInboxMenu != NULL); itsInboxMenu->SetMenuItems(kInboxMenuStr); itsInboxMenu->SetUpdateAction(JXMenu::kDisableNone); ListenTo(itsInboxMenu); itsToolBar = new JXToolBar(GGetPrefsMgr(), kGTableToolBarID, menuBar, w, 150, itsWindow, JXWidget::kHElastic, JXWidget::kVElastic, 0, kJXDefaultMenuBarHeight, w, h - kJXDefaultMenuBarHeight); assert(itsToolBar != NULL); const JCoordinate pathheight = 20; const JCoordinate scrollheight = itsToolBar->GetWidgetEnclosure()->GetBoundsHeight() - pathheight; itsSBSet = new JXScrollbarSet(itsToolBar->GetWidgetEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0,0,w,scrollheight); assert(itsSBSet != NULL); itsTable = new GMessageTable(this, menuBar, itsSBSet, itsSBSet->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kVElastic, 0,20,w,scrollheight-20); assert (itsTable != NULL); itsColHeader = new GMessageColHeader(itsTable, itsSBSet, itsSBSet->GetScrollEnclosure(), JXWidget::kHElastic, JXWidget::kFixedTop, 0,0,w,20); assert(itsColHeader != NULL); itsColHeader->SetColTitle(4, "From"); itsColHeader->SetColTitle(5, "Subject"); itsColHeader->SetColTitle(6, "Date"); itsColHeader->SetColTitle(7, "Size"); const JCoordinate pathwidth = w - 150; itsPath = new JXStaticText(mailfile, itsToolBar->GetWidgetEnclosure(), JXWidget::kHElastic, JXWidget::kFixedBottom, 0,scrollheight,pathwidth,pathheight); assert(itsPath != NULL); itsPath->SetBorderWidth(1); itsMessageCount = new JXStaticText("", itsToolBar->GetWidgetEnclosure(), JXWidget::kFixedRight, JXWidget::kFixedBottom, pathwidth,scrollheight,w-pathwidth,pathheight); assert(itsMessageCount != NULL); itsMessageCount->SetBorderWidth(1); itsNoMailIcon = new JXImage(itsWindow->GetDisplay(), nomail_xpm); itsNoMailIcon->ConvertToRemoteStorage(); itsNewMailIcon = new JXImage(itsWindow->GetDisplay(), newmail_xpm); itsNewMailIcon->ConvertToRemoteStorage(); itsSmallNewMailIcon = new JXImage(itsWindow->GetDisplay(), newmail_small_xpm); itsSmallNewMailIcon->ConvertToRemoteStorage(); itsHaveMailIcon = new JXImage(itsWindow->GetDisplay(), havemail_xpm); itsHaveMailIcon->ConvertToRemoteStorage(); JXImage* icon = new JXImage(*itsNoMailIcon); assert(icon != NULL); itsWindow->SetIcon(icon); itsIndicator = new JXProgressIndicator(itsToolBar->GetWidgetEnclosure(), JXWidget::kHElastic, JXWidget::kFixedBottom, 5,scrollheight+5,pathwidth-10,pathheight/2); assert(itsIndicator != NULL); itsIndicator->Hide(); itsPG = new GXBlockingPG(NULL, NULL, itsIndicator); assert(itsPG != NULL); // itsPG->SetItems(NULL, NULL, itsIndicator); // begin JXLayout 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(kSaveMsgCmd, filefloppy); itsFileMenu->SetItemImage(kPrintMsgCmd, fileprint); itsFileMenu->SetItemImage(kCheckMailCmd, check_mail); // itsFileMenu->SetItemImage(kOpenCmd, fileopen); itsInboxMenu->SetItemImage(kAddInboxCmd, newmail_small_plus); itsInboxMenu->SetItemImage(kRemoveInboxCmd, newmail_small_minus); itsHelpMenu->SetItemImage(kTOCCmd, manual); itsHelpMenu->SetItemImage(kThisWindowCmd, jx_help_specific); itsDummyPrintText = new GMDummyText(GMGetAltPTPrinter(), "", itsWindow, JXWidget::kHElastic, JXWidget::kFixedBottom, 0,0,500,10); assert(itsDummyPrintText != NULL); itsToolBar->LoadPrefs(); if (itsToolBar->IsEmpty()) { itsToolBar->AppendButton(itsFileMenu, kNewCmd); itsToolBar->AppendButton(itsFileMenu, kNewMBox); itsToolBar->AppendButton(itsFileMenu, kOpenCmd); itsToolBar->NewGroup(); itsToolBar->AppendButton(itsFileMenu, kSaveMsgCmd); itsToolBar->NewGroup(); itsToolBar->AppendButton(itsFileMenu, kPrintMsgCmd); itsToolBar->NewGroup(); itsToolBar->AppendButton(itsFileMenu, kCheckMailCmd); itsToolBar->NewGroup(); JString id; if (GGetMailboxTreeDir()->GetID(&id)) { itsToolBar->AppendButton(menu, id); } if (GMGetAddressBookDir()->GetID(&id)) { itsToolBar->AppendButton(menu, id); } itsToolBar->NewGroup(); itsToolBar->AppendButton(itsHelpMenu, kTOCCmd); itsToolBar->AppendButton(itsHelpMenu, kThisWindowCmd); } itsMenuIcon = new JXImage(itsWindow->GetDisplay(), envelopes); assert(itsMenuIcon != NULL); itsMenuIcon->ConvertToRemoteStorage(); }
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 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(); }