BeCheckersWindow::BeCheckersWindow(BRect frame, const char *title) : BWindow(frame, title, B_TITLED_WINDOW, B_NOT_RESIZABLE | B_NOT_ZOOMABLE) { BMenuBar *mb = new BMenuBar(BRect(0, 0, frame.right, 15), "MenuBar"); BMenu *menu = new BMenu("File"); menu->AddItem(new BMenuItem("New", new BMessage(BECHECKERS_NEW), 'N')); menu->AddItem(new BMenuItem("Open...", new BMessage(BECHECKERS_OPEN), 'O')); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem("Save", new BMessage(BECHECKERS_SAVE), 'S')); menu->AddItem(new BMenuItem("Save As", new BMessage(BECHECKERS_SAVEAS))); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem("About BeCheckers...", new BMessage(B_ABOUT_REQUESTED))); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q')); mb->AddItem(menu); AddChild(mb); mvIndicationLabel = new BStringView(BRect(0, 472, 450, 485), "Status", "Dark to move"); mvIndicationLabel->SetViewColor(232, 232, 232); mvIndicationLabel->SetAlignment(B_ALIGN_CENTER); AddChild(mvIndicationLabel); StartGame(); }
void ExpanderWindow::_AddMenuBar(BLayout* layout) { fBar = new BMenuBar("menu_bar", B_ITEMS_IN_ROW, B_INVALIDATE_AFTER_LAYOUT); BMenu* menu = new BMenu(B_TRANSLATE("File")); menu->AddItem(fSourceItem = new BMenuItem(B_TRANSLATE("Set source…"), new BMessage(MSG_SOURCE), 'O')); menu->AddItem(fDestItem = new BMenuItem(B_TRANSLATE("Set destination…"), new BMessage(MSG_DEST), 'D')); menu->AddSeparatorItem(); menu->AddItem(fExpandItem = new BMenuItem(B_TRANSLATE("Expand"), new BMessage(MSG_EXPAND), 'E')); fExpandItem->SetEnabled(false); menu->AddItem(fShowItem = new BMenuItem(B_TRANSLATE("Show contents"), new BMessage(MSG_SHOW), 'L')); fShowItem->SetEnabled(false); menu->AddSeparatorItem(); menu->AddItem(fStopItem = new BMenuItem(B_TRANSLATE("Stop"), new BMessage(MSG_STOP), 'K')); fStopItem->SetEnabled(false); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem(B_TRANSLATE("Close"), new BMessage(B_QUIT_REQUESTED), 'W')); fBar->AddItem(menu); menu = new BMenu(B_TRANSLATE("Settings")); menu->AddItem(fPreferencesItem = new BMenuItem(B_TRANSLATE("Settings…"), new BMessage(MSG_PREFERENCES), 'S')); fBar->AddItem(menu); layout->AddView(fBar); }
BMenu* PoorManWindow::BuildEditMenu() const { BMenu* ptrEditMenu = new BMenu(STR_MNU_EDIT); BMenuItem* CopyMenuItem = new BMenuItem(STR_MNU_EDIT_COPY, new BMessage(B_COPY), CMD_EDIT_COPY); ptrEditMenu->AddItem(CopyMenuItem); CopyMenuItem->SetTarget(fLoggingView, NULL); ptrEditMenu->AddSeparatorItem(); BMenuItem* SelectAllMenuItem = new BMenuItem(STR_MNU_EDIT_SELECT_ALL, new BMessage(B_SELECT_ALL), CMD_EDIT_SELECT_ALL); ptrEditMenu->AddItem(SelectAllMenuItem); SelectAllMenuItem->SetTarget(fLoggingView, NULL); ptrEditMenu->AddSeparatorItem(); BMenuItem* PrefMenuItem = new BMenuItem(STR_MNU_EDIT_PREF, new BMessage(MSG_MENU_EDIT_PREF)); ptrEditMenu->AddItem(PrefMenuItem); return ptrEditMenu; }
GraphWindow::GraphWindow(BRect frame):BWindow(frame, "Graph", B_TITLED_WINDOW, B_NOT_ZOOMABLE|B_ASYNCHRONOUS_CONTROLS|B_WILL_ACCEPT_FIRST_CLICK) { BRect the_rect; BMenu* tempMenu; the_rect = Bounds(); menuBar = new BMenuBar(the_rect, "GraphMenuBar"); AddChild(menuBar); tempMenu = new BMenu("File"); tempMenu->AddItem(new BMenuItem("About", new BMessage(MENU_FILE_ABOUT) )); tempMenu->AddSeparatorItem(); tempMenu->AddItem(new BMenuItem("Save", new BMessage(MENU_FILE_SAVE), 'S')); tempMenu->AddSeparatorItem(); tempMenu->AddItem(new BMenuItem("Quit", new BMessage(MENU_FILE_QUIT) , 'Q') ); menuBar->AddItem(tempMenu); tempMenu = new BMenu("Edit"); tempMenu->AddItem(new BMenuItem("Copy", new BMessage(MENU_EDIT_COPY), 'C' ) ); menuBar->AddItem(tempMenu); tempMenu = new BMenu("Window"); settingsWindowItem = new BMenuItem("Window Settings", new BMessage(MENU_WINDOW_SETTINGS), '1'); settingsWindowItem->SetMarked(true); tempMenu->AddItem(settingsWindowItem); functionWindowItem = new BMenuItem("Function List", new BMessage(MENU_WINDOW_FUNCTION), '2'); functionWindowItem->SetMarked(true); tempMenu->AddItem(functionWindowItem); menuBar->AddItem(tempMenu); menuBar->ResizeToPreferred(); the_rect.top = menuBar->Frame().bottom +1; AddChild(the_graph = new GraphView( the_rect )); savePanel = new BFilePanel(B_SAVE_PANEL, new BMessenger(this) ,NULL,B_FILE_NODE,false); BRect windowRect; windowRect.Set(frame.right,frame.top, frame.right+250, frame.top+110); windowRect.OffsetBy(10,0); settingsWindow = new SettingsWindow(windowRect); windowRect.OffsetBy(0,settingsWindow->Frame().Height()+20); windowRect.right=windowRect.left+250; windowRect.bottom=windowRect.top+300; functionWindow = new FunctionListWindow(windowRect); settingsWindow->AddToSubset(this); functionWindow->AddToSubset(this); }
GDWindow::GDWindow(BRect frame) : BWindow(frame, "GrafDemo 4.6", B_DOCUMENT_WINDOW,0) { Lock(); // Add the graph to the window BRect grafRect = Bounds(); grafRect.top += mb_height + 2; mGraphView= new GDView(grafRect); AddChild(mGraphView); SetSizeLimits(frame.right - frame.left,9999,frame.bottom - frame.top,9999); // Add the main menu bar and menus BRect menuRect(0,0,1000,mb_height); BMenuBar* menuBar = new BMenuBar(menuRect,"MB"); BMenu* fileMenu = new BMenu("File"); BMenuItem* aboutItem = new BMenuItem("About...",new BMessage(B_ABOUT_REQUESTED)); aboutItem->SetTarget(be_app); fileMenu->AddItem(aboutItem); fileMenu->AddSeparatorItem(); fileMenu->AddItem(new BMenuItem("Quit",new BMessage(B_QUIT_REQUESTED))); menuBar->AddItem(fileMenu); BMenu* editMenu = new BMenu("Edit"); editMenu->AddItem(new BMenuItem("Erase",new BMessage(G_erase_data))); editMenu->AddItem(new BMenuItem("Reset Axes",new BMessage(G_reset_axes))); editMenu->SetTargetForItems(mGraphView); menuBar->AddItem(editMenu); BMenu* paramsMenu = new BMenu("Params"); BMessage* cFitMesg = new BMessage(G_set_params); cFitMesg->AddInt16(pName,0); BMessage* p2Mesg = new BMessage(G_set_params); p2Mesg->AddInt16(pName,2); BMessage* p3Mesg = new BMessage(G_set_params); p3Mesg->AddInt16(pName,3); BMessage* p4Mesg = new BMessage(G_set_params); p4Mesg->AddInt16(pName,4); paramsMenu->AddItem(new BMenuItem("Cubic Spline",cFitMesg)); paramsMenu->AddSeparatorItem(); paramsMenu->AddItem(new BMenuItem("1st Order",p2Mesg)); paramsMenu->AddItem(new BMenuItem("2nd Order",p3Mesg)); paramsMenu->AddItem(new BMenuItem("3rd Order",p4Mesg)); paramsMenu->SetRadioMode(true); paramsMenu->FindItem("2nd Order")->SetMarked(true); paramsMenu->SetTargetForItems(mGraphView); menuBar->AddItem(paramsMenu); BMenu* axisMenu = new BMenu("Axes"); axisMenu->AddItem(new BMenuItem("Set Axes"B_UTF8_ELLIPSIS,new BMessage(G_change_axis))); axisMenu->SetTargetForItems(mGraphView); menuBar->AddItem(axisMenu); AddChild(menuBar); Unlock(); }
BMenuBar* KeymapWindow::_CreateMenu() { BMenuBar* menuBar = new BMenuBar(Bounds(), "menubar"); BMenuItem* item; // Create the File menu BMenu* menu = new BMenu(TR("File")); menu->AddItem(new BMenuItem(TR("Open" B_UTF8_ELLIPSIS), new BMessage(kMsgMenuFileOpen), 'O')); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem(TR("Save as" B_UTF8_ELLIPSIS), new BMessage(kMsgMenuFileSaveAs))); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem(TR("Quit"), new BMessage(B_QUIT_REQUESTED), 'Q')); menuBar->AddItem(menu); // Create keyboard layout menu fLayoutMenu = new BMenu(TR("Layout")); fLayoutMenu->SetRadioMode(true); fLayoutMenu->AddItem(item = new BMenuItem( fKeyboardLayoutView->GetKeyboardLayout()->Name(), new BMessage(kChangeKeyboardLayout))); item->SetMarked(true); _AddKeyboardLayouts(fLayoutMenu); menuBar->AddItem(fLayoutMenu); // Create the Font menu fFontMenu = new BMenu(TR("Font")); fFontMenu->SetRadioMode(true); int32 numFamilies = count_font_families(); font_family family, currentFamily; font_style currentStyle; uint32 flags; be_plain_font->GetFamilyAndStyle(¤tFamily, ¤tStyle); for (int32 i = 0; i < numFamilies; i++) { if (get_font_family(i, &family, &flags) == B_OK) { BMenuItem *item = new BMenuItem(family, new BMessage(kMsgMenuFontChanged)); fFontMenu->AddItem(item); if (!strcmp(family, currentFamily)) item->SetMarked(true); } } menuBar->AddItem(fFontMenu); return menuBar; }
TSignatureWindow::TSignatureWindow(BRect rect) : BWindow (rect, MDR_DIALECT_CHOICE ("Signatures","署名の編集"), B_TITLED_WINDOW, 0), fFile(NULL) { BMenu *menu; BMenuBar *menu_bar; BMenuItem *item; BRect r = Bounds(); /*** Set up the menus ****/ menu_bar = new BMenuBar(r, "MenuBar"); menu = new BMenu(MDR_DIALECT_CHOICE ("Signature","S) 署名")); menu->AddItem(fNew = new BMenuItem(MDR_DIALECT_CHOICE ("New","N) 新規"), new BMessage(M_NEW), 'N')); fSignature = new TMenu(MDR_DIALECT_CHOICE ("Open","O) 開く"), INDEX_SIGNATURE, M_SIGNATURE); menu->AddItem(new BMenuItem(fSignature)); menu->AddSeparatorItem(); menu->AddItem(fSave = new BMenuItem(MDR_DIALECT_CHOICE ("Save","S) 保存"), new BMessage(M_SAVE), 'S')); menu->AddItem(fDelete = new BMenuItem(MDR_DIALECT_CHOICE ("Delete","T) 削除"), new BMessage(M_DELETE), 'T')); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem(MDR_DIALECT_CHOICE ("Close","W) 閉じる"), new BMessage(B_QUIT_REQUESTED), 'W')); menu_bar->AddItem(menu); menu = new BMenu(MDR_DIALECT_CHOICE ("Edit","E) 編集")); menu->AddItem(fUndo = new BMenuItem(MDR_DIALECT_CHOICE ("Undo","Z) やり直し"), new BMessage(B_UNDO), 'Z')); fUndo->SetTarget(NULL, this); menu->AddSeparatorItem(); menu->AddItem(fCut = new BMenuItem(MDR_DIALECT_CHOICE ("Cut","X) 切り取り"), new BMessage(B_CUT), 'X')); fCut->SetTarget(NULL, this); menu->AddItem(fCopy = new BMenuItem(MDR_DIALECT_CHOICE ("Copy","C) コピー"), new BMessage(B_COPY), 'C')); fCopy->SetTarget(NULL, this); menu->AddItem(fPaste = new BMenuItem(MDR_DIALECT_CHOICE ("Paste","V) 貼り付け"), new BMessage(B_PASTE), 'V')); fPaste->SetTarget(NULL, this); menu->AddItem(item = new BMenuItem(MDR_DIALECT_CHOICE ("Select All","A) 全文選択"), new BMessage(M_SELECT), 'A')); item->SetTarget(NULL, this); menu_bar->AddItem(menu); AddChild(menu_bar); /**** Done with the menu set up *****/ /**** Add on the panel, giving it the width and at least one vertical pixel *****/ fSigView = new TSignatureView(BRect(0, menu_bar->Frame().bottom+1, rect.Width(), menu_bar->Frame().bottom+2)); AddChild(fSigView); /* resize the window to the correct height */ fSigView->SetResizingMode(B_FOLLOW_NONE); ResizeTo(rect.Width()-2, fSigView->Frame().bottom-2); fSigView->SetResizingMode(B_FOLLOW_ALL); SetSizeLimits(kSigWidth, RIGHT_BOUNDARY, r.top + 100, RIGHT_BOUNDARY); }
/* static */ BMenu* TermWindow::_MakeWindowSizeMenu() { BMenu* menu = new (std::nothrow) BMenu(B_TRANSLATE("Window size")); if (menu == NULL) return NULL; const int32 windowSizes[4][2] = { { 80, 25 }, { 80, 40 }, { 132, 25 }, { 132, 40 } }; const int32 sizeNum = sizeof(windowSizes) / sizeof(windowSizes[0]); for (int32 i = 0; i < sizeNum; i++) { char label[32]; int32 columns = windowSizes[i][0]; int32 rows = windowSizes[i][1]; snprintf(label, sizeof(label), "%" B_PRId32 "x%" B_PRId32, columns, rows); BMessage* message = new BMessage(MSG_COLS_CHANGED); message->AddInt32("columns", columns); message->AddInt32("rows", rows); menu->AddItem(new BMenuItem(label, message)); } menu->AddSeparatorItem(); menu->AddItem(new BMenuItem(B_TRANSLATE("Full screen"), new BMessage(FULLSCREEN), B_ENTER)); return menu; }
BMenu* TPrefsWindow::_BuildReplyPreambleMenu() { const char *substitutes[] = { /* To do: Not yet working, leave out for 2.0.0 beta 4: "%f - First name", "%l - Last name", */ B_TRANSLATE("%n - Full name"), B_TRANSLATE("%e - E-mail address"), B_TRANSLATE("%d - Date"), "", B_TRANSLATE("\\n - Newline"), NULL }; BMenu *menu = new BMenu(B_EMPTY_STRING); for (int32 i = 0; substitutes[i]; i++) { if (*substitutes[i] == '\0') { menu->AddSeparatorItem(); } else { menu->AddItem(new BMenuItem(substitutes[i], new BMessage(P_REPLY_PREAMBLE))); } } return menu; }
BMenu* PoorManWindow::BuildControlsMenu() const { BMenu* ptrControlMenu = new BMenu(STR_MNU_CTRL); BMenuItem* RunServerMenuItem = new BMenuItem(STR_MNU_CTRL_RUN_SERVER, new BMessage(MSG_MENU_CTRL_RUN)); RunServerMenuItem->SetMarked(false); ptrControlMenu->AddItem(RunServerMenuItem); BMenuItem* ClearHitCounterMenuItem = new BMenuItem(STR_MNU_CTRL_CLEAR_HIT_COUNTER, new BMessage(MSG_MENU_CTRL_CLEAR_HIT)); ptrControlMenu->AddItem(ClearHitCounterMenuItem); ptrControlMenu->AddSeparatorItem(); BMenuItem* ClearConsoleLogMenuItem = new BMenuItem(STR_MNU_CTRL_CLEAR_CONSOLE, new BMessage(MSG_MENU_CTRL_CLEAR_CONSOLE)); ptrControlMenu->AddItem(ClearConsoleLogMenuItem); BMenuItem* ClearLogFileMenuItem = new BMenuItem(STR_MNU_CTRL_CLEAR_LOG_FILE, new BMessage(MSG_MENU_CTRL_CLEAR_LOG)); ptrControlMenu->AddItem(ClearLogFileMenuItem); return ptrControlMenu; }
void ChatWindow::BuildProtocolMenu(void) { BMessage getStatus(IM::GET_CONTACT_STATUS); getStatus.AddRef("contact", &fEntry); BMessage statusMsg; BMenu *menu = fProtocolMenu->Menu(); if (menu == NULL) { LOG("im_emoclient", liHigh, "BuildProtocolMenu(): fProtocolMenu is NULL."); return; } // You have to do this twice... buggered if I know why... for (int32 i = 0; i < menu->CountItems(); i++) delete menu->RemoveItem(0L); for (int32 i = 0; i < menu->CountItems(); i++) delete menu->RemoveItem(0L); menu->AddItem(new IconMenuItem(NULL, _T("Any Protocol"), NULL, new BMessage(PROTOCOL_SELECTED))); if (fMan->SendMessage(&getStatus, &statusMsg) != B_OK) { LOG("im_emoclient", liHigh, "Failed to get contact statues"); return; }; BPath iconDir; find_directory(B_USER_ADDONS_DIRECTORY, &iconDir, true); iconDir.Append("im_kit/protocols"); menu->AddSeparatorItem(); for (int32 i = 0; statusMsg.FindString("connection", i); i++) { BString status = statusMsg.FindString("status", i); IM::Connection connection( statusMsg.FindString("connection", i) ); BString iconPath = iconDir.Path(); iconPath << "/" << connection.Protocol(); BBitmap *icon = ReadNodeIcon(iconPath.String(), kSmallIcon, true); BString label = connection.String(); label << " (" << _T(status.String()) << ")"; menu->AddItem( new IconMenuItem( icon, label.String(), connection.String(), new BMessage(PROTOCOL_SELECTED) ) ); }; // TODO: Is this call needed or not? //menu->SetFont(be_plain_font); fStatusBar->PositionViews(); fInfoView->ResizeTo(fStatusBar->Bounds().Width() - fInfoView->Frame().left, fInfoView->Bounds().Height()); };
void ResView::BuildMenus(BMenuBar *menuBar) { BMenu *menu = new BMenu("File"); menu->AddItem(new BMenuItem("New" B_UTF8_ELLIPSIS, new BMessage(M_NEW_FILE), 'N')); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem("Open" B_UTF8_ELLIPSIS, new BMessage(M_OPEN_FILE), 'O')); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem("Save", new BMessage(M_SAVE_FILE), 'S')); menu->AddItem(new BMenuItem("Save As" B_UTF8_ELLIPSIS, new BMessage(M_SHOW_SAVE_PANEL), 'S', B_COMMAND_KEY | B_SHIFT_KEY)); menuBar->AddItem(menu); menu = new BMenu("Resource"); menu->AddItem(new BMenuItem("Add" B_UTF8_ELLIPSIS, new BMessage(M_SELECT_FILE), 'F')); menu->AddItem(new BMenuItem("Delete", new BMessage(M_DELETE_RESOURCE), 'D')); menuBar->AddItem(menu); }
Fenster::Fenster() : BWindow( BRect( 20, 40, 620, 460), "PecoRename", B_TITLED_WINDOW, 0){ // Menü BMenuBar* MenuBar = new BMenuBar( BRect( 0, 0, 0, 0 ), "MenuBar" ); BMenu* Menu; Menu = new BMenu(STR_MENU_FILE); MenuBar->AddItem(Menu); Menu->AddItem(new BMenuItem(STR_MENU_NEW, new BMessage(MSG_MENU_NEW), 'N')); Menu->AddItem(new BMenuItem(STR_MENU_OPEN, new BMessage(MSG_SELECT_FILES), 'O')); Menu->AddSeparatorItem(); Menu->AddItem(new BMenuItem(STR_MENU_ABOUT, new BMessage(B_ABOUT_REQUESTED))); Menu->AddSeparatorItem(); Menu->AddItem(new BMenuItem(STR_MENU_QUIT, new BMessage(B_QUIT_REQUESTED), 'Q')); Menu = new BMenu(STR_MENU_TOOLS); MenuBar->AddItem(Menu); Menu->AddItem(new BMenuItem(STR_MENU_CREATE_SCRIPT, new BMessage(MSG_MENU_SCRIPT))); Menu = new BMenu(STR_MENU_HELP); MenuBar->AddItem(Menu); Menu->AddItem(new BMenuItem(STR_MENU_DOCU, new BMessage(MSG_MENU_DOCU))); AddChild( MenuBar ); // Größe bestimmen + Fenster anpassen float BarWidth, BarHeight; MenuBar->GetPreferredSize ( &BarWidth, &BarHeight ); SetSizeLimits( 600, 600, 10000, 155 + BarHeight + 5 * be_plain_font->Size() + 2 * be_bold_font->Size()); // Main Frame BRect MainFrame = Bounds(); MainFrame.top += BarHeight; MainView* mainView = new MainView( MainFrame ); AddChild( mainView ); BTextControl* TextControl = (BTextControl *)FindView("pfadView"); TextControl->TextView()->MakeEditable(false); };
void HWindow::_InitGUI() { fEventList = new HEventList(); fEventList->SetType(BMediaFiles::B_SOUNDS); fEventList->SetSelectionMode(B_SINGLE_SELECTION_LIST); BMenu* menu = new BMenu("file"); menu->SetRadioMode(true); menu->SetLabelFromMarked(true); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem(B_TRANSLATE("<none>"), new BMessage(M_NONE_MESSAGE))); menu->AddItem(new BMenuItem(B_TRANSLATE("Other" B_UTF8_ELLIPSIS), new BMessage(M_OTHER_MESSAGE))); BString label(B_TRANSLATE("Sound file:")); BMenuField* menuField = new BMenuField("filemenu", label, menu); menuField->SetDivider(menuField->StringWidth(label) + 10); BSize buttonsSize(be_plain_font->Size() * 2.5, be_plain_font->Size() * 2.5); BButton* stopbutton = new BButton("stop", "\xE2\x96\xA0", new BMessage(M_STOP_MESSAGE)); stopbutton->SetEnabled(false); stopbutton->SetExplicitSize(buttonsSize); // We need at least one view to trigger B_PULSE_NEEDED events which we will // intercept in DispatchMessage to trigger the buttons enabling or disabling. stopbutton->SetFlags(stopbutton->Flags() | B_PULSE_NEEDED); BButton* playbutton = new BButton("play", "\xE2\x96\xB6", new BMessage(M_PLAY_MESSAGE)); playbutton->SetEnabled(false); playbutton->SetExplicitSize(buttonsSize); BLayoutBuilder::Group<>(this, B_VERTICAL) .SetInsets(B_USE_WINDOW_SPACING) .Add(fEventList) .AddGroup(B_HORIZONTAL) .Add(menuField) .AddGroup(B_HORIZONTAL, 0) .Add(playbutton) .Add(stopbutton) .End() .End(); // setup file menu _SetupMenuField(); BMenuItem* noneItem = menu->FindItem(B_TRANSLATE("<none>")); if (noneItem != NULL) noneItem->SetMarked(true); _UpdateZoomLimits(); }
void MainWindow::_BuildMenu(BMenuBar* menuBar) { BMenu* menu = new BMenu(B_TRANSLATE("Tools")); menu->AddItem(new BMenuItem(B_TRANSLATE("Refresh depots"), new BMessage(MSG_REFRESH_DEPOTS))); menuBar->AddItem(menu); menu = new BMenu(B_TRANSLATE("Show")); fShowFeaturedPackagesItem = new BMenuItem( B_TRANSLATE("Only featured packages"), new BMessage(MSG_SHOW_FEATURED_PACKAGES)); menu->AddItem(fShowFeaturedPackagesItem); menu->AddSeparatorItem(); fShowAvailablePackagesItem = new BMenuItem( B_TRANSLATE("Available packages"), new BMessage(MSG_SHOW_AVAILABLE_PACKAGES)); menu->AddItem(fShowAvailablePackagesItem); fShowInstalledPackagesItem = new BMenuItem( B_TRANSLATE("Installed packages"), new BMessage(MSG_SHOW_INSTALLED_PACKAGES)); menu->AddItem(fShowInstalledPackagesItem); menu->AddSeparatorItem(); fShowDevelopPackagesItem = new BMenuItem( B_TRANSLATE("Develop packages"), new BMessage(MSG_SHOW_DEVELOP_PACKAGES)); menu->AddItem(fShowDevelopPackagesItem); fShowSourcePackagesItem = new BMenuItem( B_TRANSLATE("Source packages"), new BMessage(MSG_SHOW_SOURCE_PACKAGES)); menu->AddItem(fShowSourcePackagesItem); menuBar->AddItem(menu); }
static BMenu* new_icon_editor_menu() { BMenu* menu = new BMenu("Icon"); if (!menu) return NULL; BMenuItem* item = new BMenuItem("New", new BMessage(NEW_ICON_MSG), 0, 0); if (item) menu->AddItem(item); menu->AddSeparatorItem(); item = new BMenuItem("Copy", new BMessage(COPY_ICON_MSG), 0, 0); if (item) menu->AddItem(item); item = new BMenuItem("Paste", new BMessage(PASTE_ICON_MSG), 0, 0); if (item) menu->AddItem(item); menu->AddSeparatorItem(); item = new BMenuItem("Flip Vertically", new BMessage(FLIP_VERTICALLY_ICON_MSG), 0, 0); if (item) menu->AddItem(item); item = new BMenuItem("Flip Horizontally", new BMessage(FLIP_HORIZONTALLY_ICON_MSG), 0, 0); if (item) menu->AddItem(item); menu->AddSeparatorItem(); item = new BMenuItem("Fill with Alpha", new BMessage(FILL_WITH_ALPHA_MSG), 0, 0); if (item) menu->AddItem(item); return menu; }
MainWindow::MainWindow(BRect frame) : BWindow(frame, B_TRANSLATE_SYSTEM_NAME("PecoRename"), B_TITLED_WINDOW, B_AUTO_UPDATE_SIZE_LIMITS) { BMenuBar* MenuBar = new BMenuBar("MenuBar"); BMenu* Menu; Menu = new BMenu(B_TRANSLATE("File")); MenuBar->AddItem(Menu); // Maybe in the future...Multi directories support // Menu->AddItem(new BMenuItem(B_TRANSLATE("New"), // new BMessage(MSG_MENU_NEW), 'N')); Menu->AddItem(new BMenuItem(B_TRANSLATE("Select files" B_UTF8_ELLIPSIS), new BMessage(MSG_SELECT_FILES), 'O')); Menu->AddSeparatorItem(); Menu->AddItem(new BMenuItem(B_TRANSLATE("Show documentation"), new BMessage(MSG_MENU_DOCU))); Menu->AddItem(new BMenuItem(B_TRANSLATE("About PecoRename"), new BMessage(B_ABOUT_REQUESTED))); // Menu = new BMenu(B_TRANSLATE("Help")); // MenuBar->AddItem(Menu); Menu->AddSeparatorItem(); Menu->AddItem(new BMenuItem(B_TRANSLATE("Quit"), new BMessage(B_QUIT_REQUESTED), 'Q')); MainView* mainView = new MainView(); BLayoutBuilder::Group<>(this, B_VERTICAL, 0) .Add(MenuBar) .Add(mainView); }
BMenu* MenuWindow::BuildFileMenu(void) const { BMenu* pMenu = new BMenu(STR_MNU_FILE); BMenuItem* pAboutItem = new BMenuItem(STR_MNU_FILE_ABOUT, new BMessage(B_ABOUT_REQUESTED)); pAboutItem->SetTarget(NULL, be_app); pMenu->AddItem(pAboutItem); pMenu->AddSeparatorItem(); pMenu->AddItem(new BMenuItem(STR_MNU_FILE_CLOSE, new BMessage(B_QUIT_REQUESTED), CMD_FILE_CLOSE)); return pMenu; }
void MediaConverterWindow::_CreateMenu() { BMenu* menu; BMenuItem* item; menu = new BMenu(B_TRANSLATE_CONTEXT("File", "Menu")); item = new BMenuItem(B_TRANSLATE_CONTEXT("Open" B_UTF8_ELLIPSIS, "Menu"), new BMessage(OPEN_FILE_MESSAGE), 'O'); menu->AddItem(item); menu->AddSeparatorItem(); item = new BMenuItem(B_TRANSLATE_CONTEXT("Quit", "Menu"), new BMessage(QUIT_MESSAGE), 'Q'); menu->AddItem(item); fMenuBar->AddItem(menu); }
OpenGLView::OpenGLView() : BGroupView("OpenGLView", B_VERTICAL) { BGLView* glView = new BGLView(BRect(0, 0, 1, 1), "gl info", B_FOLLOW_NONE, 0, BGL_RGB | BGL_DOUBLE); glView->Hide(); AddChild(glView); glView->LockGL(); BMenu* menu = new BMenu(B_TRANSLATE("Automatic")); menu->SetRadioMode(true); menu->SetLabelFromMarked(true); menu->AddItem(new BMenuItem(B_TRANSLATE("Automatic"), new BMessage(MENU_AUTO_MESSAGE))); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem(B_TRANSLATE("Software Rasterizer"), new BMessage(MENU_SWRAST_MESSAGE))); menu->AddItem(new BMenuItem(B_TRANSLATE("Gallium Software Pipe"), new BMessage(MENU_SWPIPE_MESSAGE))); menu->AddItem(new BMenuItem(B_TRANSLATE("Gallium LLVM Pipe"), new BMessage(MENU_SWLLVM_MESSAGE))); BMenuField* menuField = new BMenuField("renderer", B_TRANSLATE("3D Rendering Engine:"), menu); // TODO: Set current Renderer menuField->SetEnabled(false); BTabView *tabView = new BTabView("tab view", B_WIDTH_FROM_LABEL); tabView->AddTab(new InfoView()); tabView->AddTab(new CapabilitiesView()); tabView->AddTab(new ExtensionsView()); glView->UnlockGL(); GroupLayout()->SetSpacing(0); BLayoutBuilder::Group<>(this) .SetInsets(B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) .Add(menuField) .AddGroup(B_HORIZONTAL) .Add(tabView) .SetInsets(0, B_USE_DEFAULT_SPACING, 0, 0); }
BMenu* PoorManWindow::BuildFileMenu() const { BMenu* ptrFileMenu = new BMenu(STR_MNU_FILE); ptrFileMenu->AddItem(new BMenuItem(STR_MNU_FILE_SAVE_AS, new BMessage(MSG_MENU_FILE_SAVE_AS), CMD_FILE_SAVE_AS)); ptrFileMenu->AddItem(new BMenuItem(STR_MNU_FILE_SAVE_SELECTION, new BMessage(MSG_MENU_FILE_SAVE_SELECTION))); ptrFileMenu->AddSeparatorItem(); ptrFileMenu->AddItem(new BMenuItem(STR_MNU_FILE_QUIT, new BMessage(B_QUIT_REQUESTED), CMD_FILE_QUIT)); return ptrFileMenu; }
BMenu* HResources::GetMenu(int16 id, bool popup) { size_t size; const char *m = (char *)GetResource(rtyp_Menu, id, size); if (!m) throw HErr("Could not find resource!"); BMemoryIO buf(m, size); BPositionIO& data = buf; char s[256]; data >> s; BMenu *menu = popup ? new BPopUpMenu(s) : new BMenu(s); char type, key; int32 l; short modifiers; buf >> type; while (type) { switch (type) { case 1: data >> s >> l >> modifiers >> key; menu->AddItem(new BMenuItem(s, new BMessage(l), key, modifiers)); break; // case 2: // break; case 3: menu->AddSeparatorItem(); break; case 4: buf >> l; menu->AddItem(GetMenu(l)); break; default: break; } buf >> type; } return menu; } /* GetMenu */
BMenu* KlondikeView::GetOptionMenu() { BMenu* mOptions = new BMenu(B_TRANSLATE("Options")); BMenuItem* menuItem; fAutoPlayEnabledItem = new BMenuItem(B_TRANSLATE("Auto-play"), NewSolitareOptionMessage(kAutoPlayEnableMessage)); fAutoPlayEnabledItem->SetMarked(true); mOptions->AddItem(fAutoPlayEnabledItem); fAutoPlayEnabled = true; fQuickAutoPlayItem = new BMenuItem(B_TRANSLATE("Quick auto-play"), NewSolitareOptionMessage(kQuickAutoPlayMessage)); mOptions->AddItem(fQuickAutoPlayItem); mOptions->AddSeparatorItem(); fQuickAutoPlay = false; menuItem = new BMenuItem(B_TRANSLATE("Cheat!"), NewSolitareOptionMessage(kCheatMessage)); menuItem->SetShortcut('C', B_COMMAND_KEY); mOptions->AddItem(menuItem); return mOptions; }
BMenu* TPrefsWindow::_BuildReplyPreambleMenu() { BMenu *menu = new BMenu(B_EMPTY_STRING); menu->AddItem(new BMenuItem(B_TRANSLATE("%n - Full name"), new BMessage(P_REPLY_PREAMBLE))); menu->AddItem(new BMenuItem(B_TRANSLATE("%e - E-mail address"), new BMessage(P_REPLY_PREAMBLE))); menu->AddItem(new BMenuItem(B_TRANSLATE("%d - Date"), new BMessage(P_REPLY_PREAMBLE))); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem(B_TRANSLATE("\\n - Newline"), new BMessage(P_REPLY_PREAMBLE))); return menu; }
MainWindow::MainWindow(BRect frame) : BWindow(frame,B_TRANSLATE_SYSTEM_NAME("BeMines"),B_TITLED_WINDOW, B_NOT_RESIZABLE), fSmileyState(FACE_NORMAL) { LoadSettings(); BView *top = new BView(Bounds(),"back",B_FOLLOW_ALL,B_WILL_DRAW); top->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); AddChild(top); BRect r(Bounds()); r.bottom = 20; fMenuBar = new BMenuBar(r, "menubar"); BMenu *menu = new BMenu(B_TRANSLATE("Game")); menu->AddItem(new BMenuItem(B_TRANSLATE("New"),new BMessage(M_NEW_GAME),'N')); BMenu *submenu = NULL; menu->AddItem(new BMenuItem(B_TRANSLATE("Pause"),new BMessage(M_PAUSE_GAME),'P', B_COMMAND_KEY)); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem(B_TRANSLATE("High scores"),new BMessage(M_SHOW_SCORES))); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem(B_TRANSLATE("Help"),new BMessage(M_SHOW_HELP))); menu->AddItem(new BMenuItem(B_TRANSLATE("About BeMines"),new BMessage(B_ABOUT_REQUESTED))); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem(B_TRANSLATE("Quit"), new BMessage(B_QUIT_REQUESTED), 'Q')); fMenuBar->AddItem(menu); menu = new BMenu(B_TRANSLATE("Settings")); submenu = new BMenu(B_TRANSLATE("Difficulty")); BMessage *menumsg = new BMessage(M_SET_DIFFICULTY); menumsg->AddInt32("level",DIFFICULTY_BEGINNER); submenu->AddItem(new BMenuItem(B_TRANSLATE("Beginner"),menumsg)); menumsg = new BMessage(M_SET_DIFFICULTY); menumsg->AddInt32("level",DIFFICULTY_INTERMEDIATE); submenu->AddItem(new BMenuItem(B_TRANSLATE("Intermediate"),menumsg)); menumsg = new BMessage(M_SET_DIFFICULTY); menumsg->AddInt32("level",DIFFICULTY_EXPERT); submenu->AddItem(new BMenuItem(B_TRANSLATE("Expert"),menumsg)); menumsg = new BMessage(M_SHOW_CUSTOM); submenu->AddItem(new BMenuItem(B_TRANSLATE("Custom" B_UTF8_ELLIPSIS),menumsg)); menu->AddItem(submenu); BMenuItem *item = submenu->ItemAt(gDifficulty); if (item) item->SetMarked(true); submenu = new BMenu(B_TRANSLATE("Theme")); for (int32 i = 0; i < gGameStyle->CountStyles(); i++) { menumsg = new BMessage(M_SET_THEME); menumsg->AddString("name",gGameStyle->StyleAt(i)); submenu->AddItem(new BMenuItem(TranslateWellKnownThemes(gGameStyle->StyleAt(i)),menumsg)); } menu->AddItem(submenu); submenu->SetRadioMode(true); item = submenu->FindItem(TranslateWellKnownThemes(gGameStyle->StyleName())); if (item) item->SetMarked(true); menu->AddSeparatorItem(); item = new BMenuItem(B_TRANSLATE("Sound effects"),new BMessage(M_TOGGLE_SOUNDS)); menu->AddItem(item); item->SetMarked(gPlaySounds); fMenuBar->AddItem(menu); top->AddChild(fMenuBar); fCounterView = new CounterView(); fCounterView->MoveTo(10,fMenuBar->Frame().bottom + 10); top->AddChild(fCounterView); r = gGameStyle->SmileyUp()->Bounds(); fSmileyButton = new BitmapButton(r,"smiley",gGameStyle->SmileyUp(), gGameStyle->SmileyDown(), new BMessage(M_NEW_GAME),false, B_FOLLOW_TOP | B_FOLLOW_H_CENTER); top->AddChild(fSmileyButton); fTimerView = new TimerView(); fTimerView->SetResizingMode(B_FOLLOW_RIGHT | B_FOLLOW_TOP); top->AddChild(fTimerView); fFieldView = new FieldView(gDifficulty); top->AddChild(fFieldView); fFieldView->MakeFocus(true); fCounterView->SetCount(fFieldView->MineCount()); ResetLayout(); AddCommonFilter(new SpaceBarFilter(M_NEW_GAME)); }
void SeqMeasureControl::ShowTimeSignatureMenu(BPoint pt) const { AmSignature sig; if (SignatureForPt(pt, sig) != B_OK) return; BPopUpMenu* menu = new BPopUpMenu("menu"); if (!menu) return; menu->SetFontSize(10); menu->SetAsyncAutoDestruct(true); BMessage signatureChoices; if (seq_get_message_preference(SIGNATURE_CHOICES_PREF, &signatureChoices) == B_OK) { int32 beats; for(int32 k = 0; signatureChoices.FindInt32("beats", k, &beats) == B_OK; k++) { int32 beatvalue; if (signatureChoices.FindInt32("beat value", k, &beatvalue) == B_OK) { BString label; label << beats << " / " << beatvalue; BMessage* msg = new BMessage(CHANGE_SIGNATURE_MSG); BMenuItem* item; if (msg && (item = new BMenuItem(label.String(), msg)) ) { msg->AddInt32("measure", sig.Measure() ); msg->AddInt32("beats", beats); msg->AddInt32("beat value", beatvalue); menu->AddItem(item); item->SetTarget(this); } } } } BMessage* msg = new BMessage(CHANGE_SIGNATURE_MSG); BMenuItem* item; if ( msg && (item = new BMenuItem("Other...", msg)) ) { msg->AddInt32("measure", sig.Measure() ); msg->AddInt32("beats", sig.Beats() ); msg->AddInt32("beat value", sig.BeatValue() ); menu->AddItem(item); item->SetTarget( Window() ); } /* If I'm a track measure control, add in my motion list. */ BMenu* motionMenu = NULL; if (mTrackWinProps && (motionMenu = new BMenu("Motion")) ) { BMessage* msg = new BMessage(CHANGE_MOTION_MSG); BMenuItem* item; if (msg && (item = new BMenuItem(NONE_STR, msg)) ) { msg->AddInt32("code", MOTION_NONE); msg->AddInt32("measure", sig.Measure() ); motionMenu->AddItem(item); item->SetTarget(this); } msg = new BMessage(CHANGE_MOTION_MSG); if (msg && (item = new BMenuItem(CLEAR_STR, msg)) ) { msg->AddInt32("code", MOTION_CLEAR); msg->AddInt32("measure", sig.Measure() ); motionMenu->AddItem(item); item->SetTarget(this); } BString label, key; for (uint32 k = 0; AmGlobals().GetMotionInfo(k, label, key) == B_OK; k++) { msg = new BMessage(CHANGE_MOTION_MSG); if (msg && (item = new BMenuItem(label.String(), msg)) ) { if (k == 0) motionMenu->AddSeparatorItem(); msg->AddString(MOTION_KEY_STR, key); msg->AddInt32("measure", sig.Measure() ); motionMenu->AddItem(item); item->SetTarget(this); } } if (motionMenu) { menu->AddSeparatorItem(); BMenuItem* i = new BMenuItem(motionMenu); if (i) menu->AddItem(i); } } BRect frame(pt, pt); menu->Go( ConvertToScreen(pt), true, false, ConvertToScreen(frame), true); }
BMenuBar* MainWindow::_CreateMenuBar() { BMenuBar* menuBar = new BMenuBar("main menu"); #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "Icon-O-Matic-Menus" BMenu* fileMenu = new BMenu(B_TRANSLATE("File")); BMenu* editMenu = new BMenu(B_TRANSLATE("Edit")); BMenu* settingsMenu = new BMenu(B_TRANSLATE("Settings")); fPathMenu = new BMenu(B_TRANSLATE("Path")); fStyleMenu = new BMenu(B_TRANSLATE("Style")); fShapeMenu = new BMenu(B_TRANSLATE("Shape")); fTransformerMenu = new BMenu(B_TRANSLATE("Transformer")); fPropertyMenu = new BMenu(B_TRANSLATE("Properties")); fSwatchMenu = new BMenu(B_TRANSLATE("Swatches")); menuBar->AddItem(fileMenu); menuBar->AddItem(editMenu); menuBar->AddItem(settingsMenu); // File #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "Icon-O-Matic-Menu-File" BMenuItem* item = new BMenuItem(B_TRANSLATE("New"), new BMessage(MSG_NEW), 'N'); fileMenu->AddItem(item); item->SetTarget(be_app); item = new BMenuItem(B_TRANSLATE("Open" B_UTF8_ELLIPSIS), new BMessage(MSG_OPEN), 'O'); fileMenu->AddItem(item); BMessage* appendMessage = new BMessage(MSG_APPEND); appendMessage->AddPointer("window", this); item = new BMenuItem(B_TRANSLATE("Append" B_UTF8_ELLIPSIS), appendMessage, 'O', B_SHIFT_KEY); fileMenu->AddItem(item); item->SetTarget(be_app); fileMenu->AddSeparatorItem(); fileMenu->AddItem(new BMenuItem(B_TRANSLATE("Save"), new BMessage(MSG_SAVE), 'S')); fileMenu->AddItem(new BMenuItem(B_TRANSLATE("Save as" B_UTF8_ELLIPSIS), new BMessage(MSG_SAVE_AS), 'S', B_SHIFT_KEY)); fileMenu->AddSeparatorItem(); fileMenu->AddItem(new BMenuItem(B_TRANSLATE("Export"), new BMessage(MSG_EXPORT), 'P')); fileMenu->AddItem(new BMenuItem(B_TRANSLATE("Export as" B_UTF8_ELLIPSIS), new BMessage(MSG_EXPORT_AS), 'P', B_SHIFT_KEY)); fileMenu->AddSeparatorItem(); fileMenu->AddItem(new BMenuItem(B_TRANSLATE("Close"), new BMessage(B_QUIT_REQUESTED), 'W')); item = new BMenuItem(B_TRANSLATE("Quit"), new BMessage(B_QUIT_REQUESTED), 'Q'); fileMenu->AddItem(item); item->SetTarget(be_app); // Edit #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "Icon-O-Matic-Menu-Edit" fUndoMI = new BMenuItem(B_TRANSLATE("<nothing to undo>"), new BMessage(MSG_UNDO), 'Z'); fRedoMI = new BMenuItem(B_TRANSLATE("<nothing to redo>"), new BMessage(MSG_REDO), 'Z', B_SHIFT_KEY); fUndoMI->SetEnabled(false); fRedoMI->SetEnabled(false); editMenu->AddItem(fUndoMI); editMenu->AddItem(fRedoMI); // Settings #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "Icon-O-Matic-Menu-Settings" BMenu* filterModeMenu = new BMenu(B_TRANSLATE("Snap to grid")); BMessage* message = new BMessage(MSG_MOUSE_FILTER_MODE); message->AddInt32("mode", SNAPPING_OFF); fMouseFilterOffMI = new BMenuItem(B_TRANSLATE("Off"), message, '4'); filterModeMenu->AddItem(fMouseFilterOffMI); message = new BMessage(MSG_MOUSE_FILTER_MODE); message->AddInt32("mode", SNAPPING_64); fMouseFilter64MI = new BMenuItem("64 x 64", message, '3'); filterModeMenu->AddItem(fMouseFilter64MI); message = new BMessage(MSG_MOUSE_FILTER_MODE); message->AddInt32("mode", SNAPPING_32); fMouseFilter32MI = new BMenuItem("32 x 32", message, '2'); filterModeMenu->AddItem(fMouseFilter32MI); message = new BMessage(MSG_MOUSE_FILTER_MODE); message->AddInt32("mode", SNAPPING_16); fMouseFilter16MI = new BMenuItem("16 x 16", message, '1'); filterModeMenu->AddItem(fMouseFilter16MI); filterModeMenu->SetRadioMode(true); settingsMenu->AddItem(filterModeMenu); return menuBar; }
void DevicesView::CreateLayout() { BMenuBar* menuBar = new BMenuBar("menu"); BMenu* menu = new BMenu(B_TRANSLATE("Devices")); BMenuItem* item; menu->AddItem(new BMenuItem(B_TRANSLATE("Refresh devices"), new BMessage(kMsgRefresh), 'R')); menu->AddItem(item = new BMenuItem(B_TRANSLATE("Report compatibility"), new BMessage(kMsgReportCompatibility))); item->SetEnabled(false); menu->AddItem(item = new BMenuItem(B_TRANSLATE( "Generate system information"), new BMessage(kMsgGenerateSysInfo))); item->SetEnabled(false); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem(B_TRANSLATE("Quit"), new BMessage(B_QUIT_REQUESTED), 'Q')); menu->SetTargetForItems(this); item->SetTarget(be_app); menuBar->AddItem(menu); fDevicesOutline = new BOutlineListView("devices_list"); fDevicesOutline->SetTarget(this); fDevicesOutline->SetSelectionMessage(new BMessage(kMsgSelectionChanged)); BScrollView *scrollView = new BScrollView("devicesScrollView", fDevicesOutline, B_WILL_DRAW | B_FRAME_EVENTS, true, true); // Horizontal scrollbar doesn't behave properly like the vertical // scrollbar... If you make the view bigger (exposing a larger percentage // of the view), it does not adjust the width of the scroll 'dragger' // why? Bug? In scrollview or in outlinelistview? BPopUpMenu* orderByPopupMenu = new BPopUpMenu("orderByMenu"); BMenuItem* byCategory = new BMenuItem(B_TRANSLATE("Category"), new BMessage(kMsgOrderCategory)); BMenuItem* byConnection = new BMenuItem(B_TRANSLATE("Connection"), new BMessage(kMsgOrderConnection)); byCategory->SetMarked(true); fOrderBy = byCategory->IsMarked() ? ORDER_BY_CATEGORY : ORDER_BY_CONNECTION; orderByPopupMenu->AddItem(byCategory); orderByPopupMenu->AddItem(byConnection); fOrderByMenu = new BMenuField(B_TRANSLATE("Order by:"), orderByPopupMenu); fTabView = new BTabView("fTabView", B_WIDTH_FROM_LABEL); fBasicTab = new BTab(); fBasicView = new PropertyListPlain("basicView"); fTabView->AddTab(fBasicView, fBasicTab); fBasicTab->SetLabel(B_TRANSLATE("Basic information")); fDeviceTypeTab = new BTab(); fBusView = new PropertyListPlain("busView"); fTabView->AddTab(fBusView, fDeviceTypeTab); fDeviceTypeTab->SetLabel(B_TRANSLATE("Bus")); fDetailedTab = new BTab(); fAttributesView = new PropertyList("attributesView"); fTabView->AddTab(fAttributesView, fDetailedTab); fDetailedTab->SetLabel(B_TRANSLATE("Detailed")); BLayoutBuilder::Group<>(this, B_VERTICAL, 0) .Add(menuBar) .AddSplit(B_HORIZONTAL) .SetInsets(B_USE_ITEM_INSETS) .AddGroup(B_VERTICAL) .Add(fOrderByMenu, 1) .Add(scrollView, 2) .End() .Add(fTabView, 2); }
void MediaNodePanel::showContextMenu( BPoint point) { D_METHOD(("MediaNodePanel::showContextMenu()\n")); BPopUpMenu *menu = new BPopUpMenu("MediaNodePanel PopUp", false, false, B_ITEMS_IN_COLUMN); menu->SetFont(be_plain_font); BMenuItem *item; BMessage *message; // add the "Tweak Parameters" item message = new BMessage(MediaRoutingView::M_NODE_TWEAK_PARAMETERS); menu->AddItem(item = new BMenuItem("Tweak parameters", message, 'P')); if (!(ref->kind() & B_CONTROLLABLE)) { item->SetEnabled(false); } message = new BMessage(InfoWindowManager::M_INFO_WINDOW_REQUESTED); message->AddInt32("nodeID", ref->id()); menu->AddItem(new BMenuItem("Get info", message, 'I')); menu->AddSeparatorItem(); menu->AddItem(item = new BMenuItem("Release", new BMessage(MediaRoutingView::M_DELETE_SELECTION), 'T')); if (!ref->isInternal()) { item->SetEnabled(false); } menu->AddSeparatorItem(); // add the "Cycle" item message = new BMessage(MediaRoutingView::M_NODE_CHANGE_CYCLING); message->AddBool("cycle", !ref->isCycling()); menu->AddItem(item = new BMenuItem("Cycle", message)); item->SetMarked(ref->isCycling()); if (ref->flags() & NodeRef::NO_SEEK) { item->SetEnabled(false); } // add the "Run Mode" sub menu BMenu *subMenu = new BMenu("Run mode"); subMenu->SetFont(be_plain_font); for (uint32 runMode = 1; runMode <= BMediaNode::B_RECORDING; runMode++) { BString itemName = MediaString::getStringFor(static_cast<BMediaNode::run_mode> (runMode)); message = new BMessage(MediaRoutingView::M_NODE_CHANGE_RUN_MODE); message->AddInt32("run_mode", runMode); subMenu->AddItem(item = new BMenuItem(itemName.String(), message)); if (ref->runMode() == runMode) { item->SetMarked(true); } else if ((ref->runMode() == 0) && (ref->group()) && (ref->group()->runMode() == BMediaNode::run_mode(runMode))) { item->SetMarked(true); } } subMenu->AddSeparatorItem(); message = new BMessage(MediaRoutingView::M_NODE_CHANGE_RUN_MODE); message->AddInt32("run_mode", 0); subMenu->AddItem(item = new BMenuItem("(same as group)", message)); if (ref->group() == 0) { item->SetEnabled(false); } else if ((ref->runMode() < 1) && (ref->group()->runMode() > 0)) { item->SetMarked(true); } menu->AddItem(subMenu); subMenu->SetTargetForItems(view()); // [c.lenz 24dec99] hide rarely used commands in a 'Advanced' submenu subMenu = new BMenu("Advanced"); subMenu->SetFont(be_plain_font); // [e.moon 5dec99] ad-hoc timesource support if(ref->kind() & B_TIME_SOURCE) { message = new BMessage(MediaRoutingView::M_NODE_START_TIME_SOURCE); message->AddInt32("nodeID", ref->id()); subMenu->AddItem(new BMenuItem( "Start time source", message)); message = new BMessage(MediaRoutingView::M_NODE_START_TIME_SOURCE); message->AddInt32("nodeID", ref->id()); subMenu->AddItem(new BMenuItem( "Stop time source", message)); } // [c.lenz 24dec99] support for BControllable::StartControlPanel() if(ref->kind() & B_CONTROLLABLE) { if (subMenu->CountItems() > 0) subMenu->AddSeparatorItem(); message = new BMessage(MediaRoutingView::M_NODE_START_CONTROL_PANEL); subMenu->AddItem(new BMenuItem("Start Control Panel", message, 'P', B_COMMAND_KEY | B_SHIFT_KEY)); } // [em 1feb00] group tweaks if(ref->group()) { message = new BMessage(MediaRoutingView::M_GROUP_SET_LOCKED); message->AddInt32("groupID", ref->group()->id()); bool isLocked = (ref->group()->groupFlags() & NodeGroup::GROUP_LOCKED); message->AddBool("locked", !isLocked); if (subMenu->CountItems() > 0) subMenu->AddSeparatorItem(); subMenu->AddItem( new BMenuItem( isLocked ? "Unlock group" : "Lock group", message)); } if (subMenu->CountItems() > 0) { menu->AddItem(subMenu); subMenu->SetTargetForItems(view()); } menu->SetTargetForItems(view()); view()->ConvertToScreen(&point); point -= BPoint(1.0, 1.0); menu->Go(point, true, true, true); }
CharacterWindow::CharacterWindow() : BWindow(BRect(100, 100, 700, 550), "CharacterMap", B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS | B_QUIT_ON_WINDOW_CLOSE | B_AUTO_UPDATE_SIZE_LIMITS) { BMessage settings; _LoadSettings(settings); BRect frame; if (settings.FindRect("window frame", &frame) == B_OK) { MoveTo(frame.LeftTop()); ResizeTo(frame.Width(), frame.Height()); } // create GUI SetLayout(new BGroupLayout(B_VERTICAL)); BMenuBar* menuBar = new BMenuBar("menu"); fFilterControl = new BTextControl("Filter:", NULL, NULL); fFilterControl->SetModificationMessage(new BMessage(kMsgFilterChanged)); BButton* clearButton = new BButton("clear", "Clear", new BMessage(kMsgClearFilter)); fUnicodeBlockView = new UnicodeBlockView("unicodeBlocks"); fUnicodeBlockView->SetSelectionMessage( new BMessage(kMsgUnicodeBlockSelected)); BScrollView* unicodeScroller = new BScrollView("unicodeScroller", fUnicodeBlockView, 0, false, true); fCharacterView = new CharacterView("characters"); fCharacterView->SetTarget(this, kMsgCharacterChanged); // TODO: have a context object shared by CharacterView/UnicodeBlockView bool show; if (settings.FindBool("show private blocks", &show) == B_OK) { fCharacterView->ShowPrivateBlocks(show); fUnicodeBlockView->ShowPrivateBlocks(show); } if (settings.FindBool("show contained blocks only", &show) == B_OK) { fCharacterView->ShowContainedBlocksOnly(show); fUnicodeBlockView->ShowPrivateBlocks(show); } const char* family; const char* style; if (settings.FindString("font family", &family) == B_OK && settings.FindString("font style", &style) == B_OK) { _SetFont(family, style); } int32 fontSize; if (settings.FindInt32("font size", &fontSize) == B_OK) { BFont font = fCharacterView->CharacterFont(); if (fontSize < kMinFontSize) fontSize = kMinFontSize; else if (fontSize > kMaxFontSize) fontSize = kMaxFontSize; font.SetSize(fontSize); fCharacterView->SetCharacterFont(font); } else fontSize = (int32)fCharacterView->CharacterFont().Size(); BScrollView* characterScroller = new BScrollView("characterScroller", fCharacterView, 0, false, true); fFontSizeSlider = new FontSizeSlider("fontSizeSlider", "Font size:", new BMessage(kMsgFontSizeChanged), kMinFontSize, kMaxFontSize); fFontSizeSlider->SetValue(fontSize); fCodeView = new BStringView("code", "-"); fCodeView->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, fCodeView->PreferredSize().Height())); AddChild(BGroupLayoutBuilder(B_VERTICAL) .Add(menuBar) .Add(BGroupLayoutBuilder(B_HORIZONTAL, 10)//BSplitLayoutBuilder() .Add(BGroupLayoutBuilder(B_VERTICAL, 10) .Add(BGroupLayoutBuilder(B_HORIZONTAL, 10) .Add(fFilterControl) .Add(clearButton)) .Add(unicodeScroller)) .Add(BGroupLayoutBuilder(B_VERTICAL, 10) .Add(characterScroller) .Add(fFontSizeSlider) .Add(fCodeView)) .SetInsets(10, 10, 10, 10))); // Add menu // "File" menu BMenu* menu = new BMenu("File"); BMenuItem* item; menu->AddItem(item = new BMenuItem("About CharacterMap" B_UTF8_ELLIPSIS, new BMessage(B_ABOUT_REQUESTED))); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q')); menu->SetTargetForItems(this); item->SetTarget(be_app); menuBar->AddItem(menu); menu = new BMenu("View"); menu->AddItem(item = new BMenuItem("Show private blocks", new BMessage(kMsgPrivateBlocks))); item->SetMarked(fCharacterView->IsShowingPrivateBlocks()); // TODO: this feature is not yet supported by Haiku! #if 0 menu->AddItem(item = new BMenuItem("Only show blocks contained in font", new BMessage(kMsgContainedBlocks))); item->SetMarked(fCharacterView->IsShowingContainedBlocksOnly()); #endif menuBar->AddItem(menu); menuBar->AddItem(_CreateFontMenu()); AddCommonFilter(new EscapeMessageFilter(kMsgClearFilter)); AddCommonFilter(new RedirectUpAndDownFilter(fUnicodeBlockView)); // TODO: why is this needed? fUnicodeBlockView->SetTarget(this); fFilterControl->MakeFocus(); }