ReloadedWin::ReloadedWin() : BWindow(BRect(80,80,847,619),"Reloaded", B_TITLED_WINDOW, B_NOT_ZOOMABLE|B_NOT_RESIZABLE|B_QUIT_ON_WINDOW_CLOSE) { // TODO - compute the size instead of hardcoding it SetSizeLimits(847-80,847-80,619-61,619-61); BMenuBar* menu = new BMenuBar(BRect(0,0,Bounds().Width() - 16,16), "mainmenu", B_FOLLOW_LEFT | B_FOLLOW_TOP); BMenu* file = new BMenu("File"); menu->AddItem(file); BMenuItem* insertdsk = new BMenuItem("Insert Disc", new BMessage('dins')); file->AddItem(insertdsk); BMenu* settings = new BMenu("Settings"); menu->AddItem(settings); BMenuItem* keymap = new BMenuItem("Keymap", new BMessage('kymp')); settings->AddItem(keymap); AddChild(menu); fStatusLed = new BView(BRect(Bounds().Width() - 16, 0, Bounds().Width(), 16), "fdcLed", B_FOLLOW_RIGHT | B_FOLLOW_TOP, B_WILL_DRAW); fStatusLed->SetViewColor(0x77,00,00); AddChild(fStatusLed); fBitmapView = new RBitmapView(this, false); fBitmapView->MoveTo(0, menu->Bounds().bottom + 1); Show(); }
void SeqStudioWindow::AddMainMenu(BRect f) { BMenuBar* menuBar; BMenu* menu; BMenuItem* item; menuBar = new BMenuBar( f, NULL, B_FOLLOW_TOP | B_FOLLOW_LEFT_RIGHT, B_ITEMS_IN_ROW, FALSE); /* Entry Menu */ mPortMenu = new BMenu("MIDI Port", B_ITEMS_IN_COLUMN); add_menu_item(mPortMenu, DELETE_STR, DELETE_PORT_MSG, 'T'); item = new BMenuItem(mPortMenu); menuBar->AddItem(mPortMenu, ENTRY_MENU_INDEX); /* Attributes Menu */ menu = new BMenu("Attributes", B_ITEMS_IN_COLUMN); item = new BMenuItem(menu); menuBar->AddItem(item, ATTRIBUTES_MENU_INDEX); add_attribute_item(menu, MIDI_PORT_STR); add_attribute_item(menu, TYPE_STR); add_attribute_item(menu, DEVICE_STR); add_attribute_item(menu, LABEL_STR); AddChild(menuBar); SetKeyMenuBar(menuBar); }
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(); }
MainWindow::MainWindow(void) : BWindow(BRect(5,25,250,350),"PDesigner",B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS), fProject(NULL) { BRect r(Bounds()); r.bottom = 20; BMenuBar *bar = new BMenuBar(r,"menubar"); AddChild(bar); r = Bounds(); r.top = 21; BView *top = new BView(r, "top", B_FOLLOW_ALL, B_WILL_DRAW); AddChild(top); top->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); r = top->Bounds(); r.right -= B_V_SCROLL_BAR_WIDTH; r.bottom -= B_H_SCROLL_BAR_HEIGHT; fListView = new BOutlineListView(r,"listview",B_SINGLE_SELECTION_LIST,B_FOLLOW_ALL); BScrollView *scroll = new BScrollView("listscroll",fListView,B_FOLLOW_ALL,0,true,true); top->AddChild(scroll); fListView->SetSelectionMessage(new BMessage(M_OBJECT_SELECTED)); BMenu *menu = new BMenu("File"); menu->AddItem(new BMenuItem("New Project",new BMessage(M_NEW_PROJECT),'N', B_COMMAND_KEY)); bar->AddItem(menu); menu = new BMenu("Project"); menu->AddItem(new BMenuItem("Add Window",new BMessage(M_ADD_WINDOW),'A')); BMessage *menumsg = new BMessage(M_ADD_CONTROL); menumsg->AddString("type","PView"); menu->AddItem(new BMenuItem("Add View",menumsg,'V')); menumsg = new BMessage(M_ADD_CONTROL); menumsg->AddString("type","PButton"); menu->AddItem(new BMenuItem("Add Button",menumsg)); menumsg = new BMessage(M_ADD_CONTROL); menumsg->AddString("type","PCheckBox"); menu->AddItem(new BMenuItem("Add Check Box",menumsg)); menu->AddItem(new BMenuItem("Delete Item",new BMessage(M_REMOVE_SELECTED),'D')); bar->AddItem(menu); menu = new BMenu("Window"); menu->AddItem(new BMenuItem("Toggle Properties",new BMessage(M_TOGGLE_PROPERTY_WIN))); bar->AddItem(menu); fPropertyWin = new PropertyWindow(); fPropertyWin->Show(); fObjectWin = new ObjectWindow(BMessenger(this)); fObjectWin->Show(); }
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; }
BMenuBar* FaberView::BuildMainMenuBar() { BMenuBar* menuBar = new BMenuBar("MainMenuBar"); RecentsMenuBuilder builder; fFileMenu = MenuBuilder::BuildMenu(kFileMenu, NULL, &builder); menuBar->AddItem(fFileMenu); fEditMenu = MenuBuilder::BuildMenu(kEditMenu); menuBar->AddItem(fEditMenu); fProjectMenu = MenuBuilder::BuildMenu(kProjectMenu); menuBar->AddItem(fProjectMenu); fTracksMenu = MenuBuilder::BuildMenu(kTracksMenu); menuBar->AddItem(fTracksMenu); fEffectsMenu = BuildEffectsMenu(); menuBar->AddItem(fEffectsMenu); fGenerateMenu = BuildGenerateMenu(); menuBar->AddItem(fGenerateMenu); fEngineMenu = MenuBuilder::BuildMenu(kEngineMenu); menuBar->AddItem(fEngineMenu); menuBar->AddItem(MenuBuilder::BuildMenu(kHelpMenu)); return menuBar; }
SketchApp::SketchApp() : BApplication("application/x-vnd.Prok-Sketch") { // most of this function was ripped out of Be's old HelloWorld Example SketchWindow *mainWindow = NULL; SketchView *aView = NULL; BMenuBar *myMenubar = NULL; BMenu *firstMenu = NULL, *secondMenu = NULL; BRect aRect; menu_info m_info; int32 menubarheight=0; // the price we pay to be font sensitive... get_menu_info(&m_info); menubarheight = (int32)m_info.font_size + 8; aRect.Set(100, 100, 449, 349 + menubarheight); mainWindow = new SketchWindow(aRect); // a pretty standard set of menus aRect.Set(0,0, mainWindow->Bounds().Width(), menubarheight); myMenubar = new BMenuBar(aRect, "menubar"); // main menu firstMenu = new BMenu("Sketch"); firstMenu->AddItem(new BMenuItem("About Sketch", new BMessage(B_ABOUT_REQUESTED), 'A', B_COMMAND_KEY)); firstMenu->AddItem(new BMenuItem("Save", new BMessage(SAVE_BITMAP), 'S', B_COMMAND_KEY)); firstMenu->AddItem(new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q', B_COMMAND_KEY)); ((BMenuItem *)firstMenu->ItemAt(0))->SetTarget(be_app); ((BMenuItem *)firstMenu->ItemAt(1))->SetTarget(be_app); #if __INTEL__ // only cuz the translation kit is busted in R3, will undo in R3.1 //((BMenuItem *)firstMenu->ItemAt(1))->SetEnabled(false); #endif // edit menu secondMenu = new BMenu("Edit"); secondMenu->AddItem(new BMenuItem("Erase", new BMessage(ANIMATED_ERASE), 'E', B_COMMAND_KEY)); myMenubar->AddItem(firstMenu); myMenubar->AddItem(secondMenu); // SketchView aRect.Set(0,menubarheight -1, mainWindow->Bounds().Width(), mainWindow->Bounds().Height()); aView = new SketchView(aRect, "SketchView"); // add views to window mainWindow->AddChild(aView); mainWindow->AddChild(myMenubar); // make window visible mainWindow->Show(); }
void CAssemblyWindow::AddMenuBar() { BMenu *menu, *subMenu; BMenuItem *item; BMenuBar *menuBar = new BMenuBar(Bounds(), "General"); // Create the 'File' menu CreateFileMenu(menuBar); // Create the edit menu menu = new BMenu("Edit"); menu->AddItem(new BMenuItem("Undo", new BMessage(MENU_UNDO), 'Z')); menu->AddItem(new BMenuItem("Redo", new BMessage(MENU_REDO), 'Z', B_SHIFT_KEY)); menu->AddSeparatorItem(); menu->AddItem(item = new BMenuItem("Cut", new BMessage(B_CUT), 'X')); item->SetEnabled(false); menu->AddItem(item = new BMenuItem("Copy", new BMessage(B_COPY), 'C')); item->SetEnabled(false); menu->AddItem(item = new BMenuItem("Paste", new BMessage(B_PASTE), 'V')); item->SetEnabled(false); menu->AddItem(new CQuickKeyMenuItem("Clear", new BMessage(MENU_CLEAR), B_DELETE, "Del")); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem("Select All", new BMessage(B_SELECT_ALL), 'A')); menuBar->AddItem(menu); // Create the 'Play' menu menu = new BMenu("Play"); menu->AddItem(new CQuickKeyMenuItem("Pause", new BMessage(MENU_PAUSE), B_SPACE, "Space")); menu->AddSeparatorItem(); menu->AddItem(new CQuickKeyMenuItem("Start", new BMessage(MENU_PLAY), B_ENTER, "Enter")); menu->AddItem(new CQuickKeyMenuItem("Play Section", new BMessage(MENU_PLAY_SECTION ), 'p', "p")); menu->AddSeparatorItem(); menu->AddItem(new BMenuItem("Set Section", new BMessage(MENU_SET_SECTION), 'S', B_SHIFT_KEY)); menuBar->AddItem(menu); // Create the 'View' menu menu = new BMenu("View"); subMenu = new BMenu("Add Strip"); menu->AddItem(subMenu); menuBar->AddItem(menu); // Create the 'Window' menu CreateWindowMenu(menuBar); // Add the menus AddChild(menuBar); }
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(); }
CGraphWindow::CGraphWindow(CCellWindow *inOwner, BRect inRect, image_id inAddOn) : BWindow(inRect, "Graph", B_DOCUMENT_WINDOW, 0) { fOwner = inOwner; fAddOnImage = inAddOn; inOwner->GetCellView()->GetSelection(&fSelection); fContainer = inOwner->GetCellView()->GetContainer(); CGraphPlugIn* (*createGraph)(BRect frame, range selection, CContainer *container); if (get_image_symbol(fAddOnImage, "NewGraphPlugIn__F5BRect5rangeP10CContainer", B_SYMBOL_TYPE_TEXT, &createGraph) != B_NO_ERROR) THROW((errCreatingGraph)); BRect r(Bounds()); r.bottom = GetMBarHeight(); BMenuBar *mbar = new BMenuBar(r, "mbar"); AddChild(mbar); BMenu *file = new BMenu("File"); file->AddItem(new BMenuItem("Close", new BMessage(B_QUIT_REQUESTED), 'W')); mbar->AddItem(file); BMenu *edit = new BMenu("Edit"); edit->AddItem(new BMenuItem("Copy", new BMessage(B_COPY), 'C')); mbar->AddItem(edit); r = Bounds(); r.top += GetMBarHeight(); BView *background = new BView(r, "background", B_FOLLOW_ALL_SIDES, B_WILL_DRAW | B_FULL_UPDATE_ON_RESIZE); AddChild(background); r.OffsetTo(0, 0); r.InsetBy(B_V_SCROLL_BAR_WIDTH, B_H_SCROLL_BAR_HEIGHT); fMainView = (*createGraph)(r, fSelection, fContainer); if (fMainView == NULL) THROW((errCreatingGraphView)); background->AddChild(fMainView); fMainView->DataChanged(); Show(); } /* CGraphWindow::CGraphWindow */
StyledEditApp::StyledEditApp() : BApplication(APP_SIGNATURE), fOpenPanel(NULL) { B_TRANSLATE_MARK_SYSTEM_NAME_VOID("StyledEdit"); fOpenPanel = new BFilePanel(); fOpenAsEncoding = 0; BMenuBar* menuBar = dynamic_cast<BMenuBar*>(fOpenPanel->Window()->FindView("MenuBar")); if (menuBar != NULL) { fOpenPanelEncodingMenu = new BMenu(B_TRANSLATE("Encoding")); fOpenPanelEncodingMenu->SetRadioMode(true); menuBar->AddItem(fOpenPanelEncodingMenu); BCharacterSetRoster roster; BCharacterSet charset; while (roster.GetNextCharacterSet(&charset) == B_NO_ERROR) { BString name; if (charset.GetFontID() == B_UNICODE_UTF8) name = B_TRANSLATE("Default"); else name = charset.GetPrintName(); const char* mime = charset.GetMIMEName(); if (mime != NULL) { name.Append(" ("); name.Append(mime); name.Append(")"); } BMenuItem* item = new BMenuItem(name.String(), new BMessage(OPEN_AS_ENCODING)); item->SetTarget(this); fOpenPanelEncodingMenu->AddItem(item); if (charset.GetFontID() == fOpenAsEncoding) item->SetMarked(true); } } else fOpenPanelEncodingMenu = NULL; fWindowCount = 0; fNextUntitledWindow = 1; fBadArguments = false; float factor = be_plain_font->Size() / 12.0f; sCascadeOffset *= factor; sTopLeft.x *= factor; sTopLeft.y *= factor; sWindowRect.left *= factor; sWindowRect.top *= factor; sWindowRect.right *= factor; sWindowRect.bottom *= factor; sWindowRect.PrintToStream(); }
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 show_window(BWindow *window) { BMenuBar *bar = new BMenuBar(BRect(0, 0, 10, 10), "menuBar"); BMenu *menu = new BMenu("menu ONE"); menu->AddItem(new BMenuItem("ONE", new BMessage('1ONE'))); menu->AddItem(new BMenuItem("TWO", new BMessage('2TWO'))); bar->AddItem(menu); menu = new BMenu("menu TWO"); menu->AddItem(new BMenuItem("ONE", new BMessage('1ONE'))); menu->AddItem(new BMenuItem("TWO", new BMessage('2TWO'))); bar->AddItem(menu); window->AddChild(bar); window->Show(); }
void PictureTestWindow::BuildGUI() { BView* backdrop = new BView(Bounds(), "backdrop", B_FOLLOW_ALL, B_WILL_DRAW); backdrop->SetViewColor(::ui_color(B_PANEL_BACKGROUND_COLOR)); AddChild(backdrop); BMenuBar* mb = new BMenuBar(Bounds(), "menubar"); BMenu* m = new BMenu("File"); m->AddItem(new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q')); m->SetTargetForItems(be_app_messenger); mb->AddItem(m); m = new BMenu("Tests"); m->AddItem(new BMenuItem("Run", new BMessage(kMsgRunTests), 'R')); m->AddItem(new BMenuItem("Run Color Space B_RGB32", new BMessage(kMsgRunTests1), 'S')); mb->AddItem(m); backdrop->AddChild(mb); BRect b = Bounds(); b.top = mb->Bounds().bottom + 1; fHeader = new BStringView(b, "header", "X", B_FOLLOW_LEFT | B_FOLLOW_RIGHT | B_FOLLOW_TOP); float width, height; fHeader->GetPreferredSize(&width, &height); fHeader->ResizeTo(b.Width(), height); backdrop->AddChild(fHeader); b.top = fHeader->Frame().bottom + 1; b.right -= B_V_SCROLL_BAR_WIDTH; b.bottom -= B_H_SCROLL_BAR_HEIGHT; fListView = new BListView(b, "Results", B_SINGLE_SELECTION_LIST, B_FOLLOW_ALL_SIDES, B_WILL_DRAW | B_FRAME_EVENTS | B_FULL_UPDATE_ON_RESIZE); backdrop->AddChild(new BScrollView("scroll_results", fListView, B_FOLLOW_ALL_SIDES, 0, true, true)); UpdateHeader(); }
ApplicationWindow::ApplicationWindow(BRect frame, bool visible) : BWindow(frame, B_TRANSLATE_SYSTEM_NAME("PackageManager"), B_TITLED_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL, B_AUTO_UPDATE_SIZE_LIMITS | B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE), fMinimizeOnClose(false) { SetPulseRate(1000000); SetLayout(new BGroupLayout(B_VERTICAL, 0.0)); ApplicationsContainerView* downloadsGroupView = new ApplicationsContainerView(); fApplicationViewsLayout = downloadsGroupView->GroupLayout(); BMenuBar* menuBar = new BMenuBar("Menu bar"); BMenu* menu = new BMenu("Actions"); menu->AddItem(new BMenuItem("Apply changes", new BMessage('NADA'))); menu->AddItem(new BMenuItem("Exit", new BMessage(B_QUIT_REQUESTED))); menuBar->AddItem(menu); fApplicationsScrollView = new ApplicationContainerScrollView(downloadsGroupView); fDiscardButton = new BButton("Revert", new BMessage('NADA')); fDiscardButton->SetEnabled(false); fApplyChangesButton = new BButton("Apply", new BMessage('NADA')); fApplyChangesButton->SetEnabled(false); const float spacing = be_control_look->DefaultItemSpacing(); AddChild(BGroupLayoutBuilder(B_VERTICAL, 0.0) .Add(menuBar) .Add(fApplicationsScrollView) .Add(new BSeparatorView(B_HORIZONTAL, B_PLAIN_BORDER)) .Add(BGroupLayoutBuilder(B_HORIZONTAL, spacing) .AddGlue() .Add(fApplyChangesButton) .Add(fDiscardButton) .SetInsets(12, 5, 12, 5) ) ); PostMessage(INIT); if (!visible) Hide(); Show(); }
BMenuBar* HResources::GetMenuBar(BRect r, int id) { BMenuBar *mbar = new BMenuBar(r, "mbar"); FailNil(mbar); size_t size; const int16 *lst = (int16 *)GetResource(rtyp_Mbar, id, size); FailNilRes(lst); for (uint32 i = 0; i < (size / 2); i++) mbar->AddItem(GetMenu(lst[i])); return mbar; } /* GetMenuBar */
BMenuBar* MenuBuilder::BuildMainMenuBar() { BMenuBar* menuBar = new BMenuBar("MainMenuBar"); menuBar->AddItem(BuildFileMenu()); menuBar->AddItem(BuildEditMenu()); menuBar->AddItem(BuildProjectMenu()); menuBar->AddItem(BuildTracksMenu()); menuBar->AddItem(BuildEffectsMenu()); menuBar->AddItem(BuildGenerateMenu()); menuBar->AddItem(BuildEngineMenu()); menuBar->AddItem(BuildHelpMenu()); return menuBar; }
StyledEditApp::StyledEditApp() : BApplication(APP_SIGNATURE), fOpenPanel(NULL) { be_locale->GetAppCatalog(&fCatalog); fOpenPanel = new BFilePanel(); BMenuBar* menuBar = dynamic_cast<BMenuBar*>(fOpenPanel->Window()->FindView("MenuBar")); fOpenAsEncoding = 0; fOpenPanelEncodingMenu= new BMenu(TR("Encoding")); menuBar->AddItem(fOpenPanelEncodingMenu); fOpenPanelEncodingMenu->SetRadioMode(true); BCharacterSetRoster roster; BCharacterSet charset; while (roster.GetNextCharacterSet(&charset) == B_NO_ERROR) { BString name; if (charset.GetFontID() == B_UNICODE_UTF8) name = TR("Default"); else name = charset.GetPrintName(); const char* mime = charset.GetMIMEName(); if (mime) { name.Append(" ("); name.Append(mime); name.Append(")"); } BMenuItem* item = new BMenuItem(name.String(), new BMessage(OPEN_AS_ENCODING)); item->SetTarget(this); fOpenPanelEncodingMenu->AddItem(item); if (charset.GetFontID() == fOpenAsEncoding) item->SetMarked(true); } fWindowCount = 0; fNextUntitledWindow = 1; fBadArguments = false; styled_edit_app = this; }
App::App() : BApplication("application/glyphaiii") { BRect frame(0, 0, 640, 460); BWindow *win = new BWindow(frame, "Glypha III", B_TITLED_WINDOW, B_NOT_ZOOMABLE); BMenuBar *menuBar = new BMenuBar(BRect(0,0,0,0), NULL); BMenu *menu = new BMenu("File"); BMenuItem *item = new BMenuItem("Quit", NULL, 'Q'); menu->AddItem(item); menuBar->AddItem(menu); win->AddChild(menuBar); win->ResizeBy(0, menuBar->Frame().Height()); GameGLView *glview = new GameGLView(BRect(0, menuBar->Frame().Height() + 1, 640, 480)); win->AddChild(glview); win->CenterOnScreen(); win->Show(); }
ScribbleWindow::ScribbleWindow() : BWindow(BRect(100,100,300,400), "Scribble", B_TITLED_WINDOW, 0) { BMenuBar *pMenuBar = new BMenuBar(BRect(), "Mainmenu"); BMenu *pMenu = new BMenu("File"); BMenuItem *pCloseItem = new BMenuItem("Close", new BMessage(B_QUIT_REQUESTED), 'q'); pMenu->AddItem(pCloseItem); pMenuBar->AddItem(pMenu); AddChild(pMenuBar); float menuHeight = pMenuBar->Bounds().Height(); ScribbleView *aView; // set up a rectangle and instantiate a new view BRect aRect( Bounds() ); aRect.top = aRect.top+menuHeight+1; aView = new ScribbleView(aRect); // add view to window AddChild(aView); }
TabManager::TabManager(const BMessenger& target, BMessage* newTabMessage) : fController(new TabManagerController(this)), fTarget(target) { fController->SetDoubleClickOutsideTabsMessage(*newTabMessage, be_app_messenger); fContainerView = new BView("web view container", 0); fCardLayout = new BCardLayout(); fContainerView->SetLayout(fCardLayout); fTabContainerView = new TabContainerView(fController); fTabContainerGroup = new TabContainerGroup(fTabContainerView); fTabContainerGroup->GroupLayout()->SetInsets(0, 3, 0, 0); fController->SetTabContainerGroup(fTabContainerGroup); #if INTEGRATE_MENU_INTO_TAB_BAR fMenu = new BMenu("Menu"); BMenuBar* menuBar = new BMenuBar("Menu bar"); menuBar->AddItem(fMenu); TabButtonContainer* menuBarContainer = new TabButtonContainer(); menuBarContainer->GroupLayout()->AddView(menuBar); fTabContainerGroup->GroupLayout()->AddView(menuBarContainer, 0.0f); #endif fTabContainerGroup->GroupLayout()->AddView(fTabContainerView); fTabContainerGroup->AddScrollLeftButton(new ScrollLeftTabButton( new BMessage(MSG_SCROLL_TABS_LEFT))); fTabContainerGroup->AddScrollRightButton(new ScrollRightTabButton( new BMessage(MSG_SCROLL_TABS_RIGHT))); NewTabButton* newTabButton = new NewTabButton(newTabMessage); newTabButton->SetTarget(be_app); fTabContainerGroup->GroupLayout()->AddView(newTabButton, 0.0f); fTabContainerGroup->AddTabMenuButton(new TabMenuTabButton( new BMessage(MSG_OPEN_TAB_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); }
/*! \brief Build the menubar */ BMenuBar* EventEditorMainWindow::CreateMenuBar() { BMenuBar* toReturn = new BMenuBar( "Main menu bar" ); if ( !toReturn ) { /* Panic! */ global_toReturn = B_NO_MEMORY; be_app->PostMessage( B_QUIT_REQUESTED ); } fileMenu = new BMenu( "File" ); if ( !fileMenu ) { /* Panic! */ global_toReturn = B_NO_MEMORY; be_app->PostMessage( B_QUIT_REQUESTED ); } BMenuItem* item; item = new BMenuItem( "New" B_UTF8_ELLIPSIS, new BMessage( kFileNew ), 'N' ); fileMenu->AddItem( item ); item = new BMenuItem( "Open" B_UTF8_ELLIPSIS, new BMessage( kFileOpen ), 'O' ); fileMenu->AddItem( item ); item = new BMenuItem( "Close", new BMessage( B_QUIT_REQUESTED ), 'W' ); fileMenu->AddItem( item ); fileMenu->AddSeparatorItem(); item = new BMenuItem( "Save", new BMessage( kFileSave ), 'S' ); fileMenu->AddItem( item ); item = new BMenuItem( "Save as" B_UTF8_ELLIPSIS, new BMessage( kFileSaveAs ), 'S', B_SHIFT_KEY ); fileMenu->AddItem( item ); item = new BMenuItem( "Revert", new BMessage( kFileRevert ), 'R' ); fileMenu->AddItem( item ); fileMenu->AddSeparatorItem(); item = new BMenuItem( "Quit", new BMessage( B_QUIT_REQUESTED ), 'Q' ); fileMenu->AddItem( item ); toReturn->AddItem( fileMenu ); editMenu = new BMenu( "Edit" ); item = new BMenuItem( "Undo", new BMessage( B_UNDO ), 'Z' ); editMenu->AddItem( item ); item = new BMenuItem( "Select all", new BMessage( B_SELECT_ALL ), 'X' ); editMenu->AddItem( item ); item = new BMenuItem( "Cut", new BMessage( B_CUT ), 'X' ); editMenu->AddItem( item ); item = new BMenuItem( "Copy", new BMessage( B_COPY ), 'C' ); editMenu->AddItem( item ); item = new BMenuItem( "Paste", new BMessage( B_PASTE ), 'V' ); editMenu->AddItem( item ); toReturn->AddItem( editMenu ); item = new BMenuItem( "About" B_UTF8_ELLIPSIS, new BMessage( B_ABOUT_REQUESTED ) ); toReturn->AddItem( item ); return toReturn; } // <-- end of EventEditorMainWindow::CreateMenuBar
VideoWindow::VideoWindow(const char* title, window_type type, uint32 flags, port_id* consumerPort) : BWindow(BRect(50, 50, 50, 50), title, type, flags), fPortPtr(consumerPort), fVideoView(NULL) { fFtpInfo.port = 0; fFtpInfo.rate = 0x7fffffff; fFtpInfo.imageFormat = 0; fFtpInfo.translator = 0; fFtpInfo.passiveFtp = true; fFtpInfo.uploadClient = 0; strcpy(fFtpInfo.fileNameText, "filename"); strcpy(fFtpInfo.serverText, "server"); strcpy(fFtpInfo.loginText, "login"); strcpy(fFtpInfo.passwordText, "password"); strcpy(fFtpInfo.directoryText, "directory"); _SetUpSettings("codycam", ""); BMenuBar* menuBar = new BMenuBar("menu bar"); BMenuItem* menuItem; fMenu = new BMenu(B_TRANSLATE("File")); menuItem = new BMenuItem(B_TRANSLATE("Video settings"), new BMessage(msg_video), 'P'); menuItem->SetTarget(be_app); fMenu->AddItem(menuItem); fMenu->AddSeparatorItem(); menuItem = new BMenuItem(B_TRANSLATE("Start video"), new BMessage(msg_start), 'A'); menuItem->SetTarget(be_app); fMenu->AddItem(menuItem); menuItem = new BMenuItem(B_TRANSLATE("Stop video"), new BMessage(msg_stop), 'O'); menuItem->SetTarget(be_app); fMenu->AddItem(menuItem); fMenu->AddSeparatorItem(); menuItem = new BMenuItem(B_TRANSLATE("Quit"), new BMessage(B_QUIT_REQUESTED), 'Q'); menuItem->SetTarget(be_app); fMenu->AddItem(menuItem); menuBar->AddItem(fMenu); /* add some controls */ _BuildCaptureControls(); BBox* box = new BBox("box"); box->AddChild(fVideoView); BLayoutBuilder::Group<>(this, B_VERTICAL, 0) .Add(menuBar) .AddGroup(B_VERTICAL) .SetInsets(B_USE_WINDOW_SPACING) .Add(box) .AddGroup(B_HORIZONTAL, B_USE_DEFAULT_SPACING) .Add(fCaptureSetupBox) .Add(fFtpSetupBox) .End() .Add(fStatusLine) .End() .AddGlue(); Show(); }
void MainWindow::_CreateGUI() { SetLayout(new BGroupLayout(B_HORIZONTAL)); BGridLayout* layout = new BGridLayout(); layout->SetSpacing(0, 0); BView* rootView = new BView("root view", 0, layout); AddChild(rootView); rootView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); BGroupView* leftTopView = new BGroupView(B_VERTICAL, 0); layout->AddView(leftTopView, 0, 0); // views along the left side leftTopView->AddChild(_CreateMenuBar()); float splitWidth = 13 * be_plain_font->Size(); BSize minSize = leftTopView->MinSize(); splitWidth = std::max(splitWidth, minSize.width); leftTopView->SetExplicitMaxSize(BSize(splitWidth, B_SIZE_UNSET)); leftTopView->SetExplicitMinSize(BSize(splitWidth, B_SIZE_UNSET)); BGroupView* iconPreviews = new BGroupView(B_HORIZONTAL); iconPreviews->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); iconPreviews->GroupLayout()->SetSpacing(5); // icon previews fIconPreview16Folder = new IconView(BRect(0, 0, 15, 15), "icon preview 16 folder"); fIconPreview16Menu = new IconView(BRect(0, 0, 15, 15), "icon preview 16 menu"); fIconPreview16Menu->SetLowColor(ui_color(B_MENU_BACKGROUND_COLOR)); fIconPreview32Folder = new IconView(BRect(0, 0, 31, 31), "icon preview 32 folder"); fIconPreview32Desktop = new IconView(BRect(0, 0, 31, 31), "icon preview 32 desktop"); fIconPreview32Desktop->SetLowColor(ui_color(B_DESKTOP_COLOR)); fIconPreview64 = new IconView(BRect(0, 0, 63, 63), "icon preview 64"); fIconPreview64->SetLowColor(ui_color(B_DESKTOP_COLOR)); BGroupView* smallPreviews = new BGroupView(B_VERTICAL); smallPreviews->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); smallPreviews->GroupLayout()->SetSpacing(5); smallPreviews->AddChild(fIconPreview16Folder); smallPreviews->AddChild(fIconPreview16Menu); BGroupView* mediumPreviews = new BGroupView(B_VERTICAL); mediumPreviews->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); mediumPreviews->GroupLayout()->SetSpacing(5); mediumPreviews->AddChild(fIconPreview32Folder); mediumPreviews->AddChild(fIconPreview32Desktop); // iconPreviews->AddChild(fIconPreview48); iconPreviews->AddChild(smallPreviews); iconPreviews->AddChild(mediumPreviews); iconPreviews->AddChild(fIconPreview64); iconPreviews->SetExplicitMaxSize(BSize(B_SIZE_UNSET, B_SIZE_UNLIMITED)); leftTopView->AddChild(iconPreviews); BGroupView* leftSideView = new BGroupView(B_VERTICAL, 0); layout->AddView(leftSideView, 0, 1); leftSideView->SetExplicitMaxSize(BSize(splitWidth, B_SIZE_UNSET)); // path menu and list view BMenuBar* menuBar = new BMenuBar("path menu bar"); menuBar->AddItem(fPathMenu); leftSideView->AddChild(menuBar); fPathListView = new PathListView(BRect(0, 0, splitWidth, 100), "path list view", new BMessage(MSG_PATH_SELECTED), this); BView* scrollView = new BScrollView("path list scroll view", fPathListView, B_FOLLOW_NONE, 0, false, true, B_NO_BORDER); leftSideView->AddChild(scrollView); // shape list view menuBar = new BMenuBar("shape menu bar"); menuBar->AddItem(fShapeMenu); leftSideView->AddChild(menuBar); fShapeListView = new ShapeListView(BRect(0, 0, splitWidth, 100), "shape list view", new BMessage(MSG_SHAPE_SELECTED), this); scrollView = new BScrollView("shape list scroll view", fShapeListView, B_FOLLOW_NONE, 0, false, true, B_NO_BORDER); leftSideView->AddChild(scrollView); // transformer list view menuBar = new BMenuBar("transformer menu bar"); menuBar->AddItem(fTransformerMenu); leftSideView->AddChild(menuBar); fTransformerListView = new TransformerListView(BRect(0, 0, splitWidth, 100), "transformer list view"); scrollView = new BScrollView("transformer list scroll view", fTransformerListView, B_FOLLOW_NONE, 0, false, true, B_NO_BORDER); leftSideView->AddChild(scrollView); // property list view menuBar = new BMenuBar("property menu bar"); menuBar->AddItem(fPropertyMenu); leftSideView->AddChild(menuBar); fPropertyListView = new IconObjectListView(); // scroll view around property list view ScrollView* propScrollView = new ScrollView(fPropertyListView, SCROLL_VERTICAL, BRect(0, 0, splitWidth, 100), "property scroll view", B_FOLLOW_NONE, B_WILL_DRAW | B_FRAME_EVENTS, B_PLAIN_BORDER, BORDER_RIGHT); leftSideView->AddChild(propScrollView); BGroupLayout* topSide = new BGroupLayout(B_HORIZONTAL); topSide->SetSpacing(0); BView* topSideView = new BView("top side view", 0, topSide); layout->AddView(topSideView, 1, 0); // canvas view BRect canvasBounds = BRect(0, 0, 200, 200); fCanvasView = new CanvasView(canvasBounds); // scroll view around canvas view canvasBounds.bottom += B_H_SCROLL_BAR_HEIGHT; canvasBounds.right += B_V_SCROLL_BAR_WIDTH; ScrollView* canvasScrollView = new ScrollView(fCanvasView, SCROLL_VERTICAL | SCROLL_HORIZONTAL | SCROLL_VISIBLE_RECT_IS_CHILD_BOUNDS, canvasBounds, "canvas scroll view", B_FOLLOW_NONE, B_WILL_DRAW | B_FRAME_EVENTS, B_NO_BORDER); layout->AddView(canvasScrollView, 1, 1); // views along the top BGroupLayout* styleGroup = new BGroupLayout(B_VERTICAL, 0); BView* styleGroupView = new BView("style group", 0, styleGroup); topSide->AddView(styleGroupView); // style list view menuBar = new BMenuBar("style menu bar"); menuBar->AddItem(fStyleMenu); styleGroup->AddView(menuBar); fStyleListView = new StyleListView(BRect(0, 0, splitWidth, 100), "style list view", new BMessage(MSG_STYLE_SELECTED), this); scrollView = new BScrollView("style list scroll view", fStyleListView, B_FOLLOW_NONE, 0, false, true, B_NO_BORDER); scrollView->SetExplicitMaxSize(BSize(splitWidth, B_SIZE_UNLIMITED)); styleGroup->AddView(scrollView); // style view fStyleView = new StyleView(BRect(0, 0, 200, 100)); topSide->AddView(fStyleView); // swatch group BGroupLayout* swatchGroup = new BGroupLayout(B_VERTICAL); swatchGroup->SetSpacing(0); BView* swatchGroupView = new BView("swatch group", 0, swatchGroup); topSide->AddView(swatchGroupView); menuBar = new BMenuBar("swatches menu bar"); menuBar->AddItem(fSwatchMenu); swatchGroup->AddView(menuBar); fSwatchGroup = new SwatchGroup(BRect(0, 0, 100, 100)); swatchGroup->AddView(fSwatchGroup); swatchGroupView->SetExplicitMaxSize(swatchGroupView->MinSize()); // make sure the top side has fixed height topSideView->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, swatchGroupView->MinSize().height)); }
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; }
ShortcutsWindow::ShortcutsWindow() : BWindow(BRect(WINDOW_START_X, WINDOW_START_Y, WINDOW_START_X + MIN_WIDTH, WINDOW_START_Y + MIN_HEIGHT * 2), "Shortcuts", B_DOCUMENT_WINDOW, 0L), fSavePanel(NULL), fOpenPanel(NULL), fSelectPanel(NULL), fKeySetModified(false), fLastOpenWasAppend(false) { InitializeMetaMaps(); SetSizeLimits(MIN_WIDTH, MAX_WIDTH, MIN_HEIGHT, MAX_HEIGHT); BMenuBar* menuBar = new BMenuBar(BRect(0, 0, 0, 0), "Menu Bar"); BMenu* fileMenu = new BMenu("File"); fileMenu->AddItem(new BMenuItem("Open KeySet...", new BMessage(OPEN_KEYSET), 'O')); fileMenu->AddItem(new BMenuItem("Append KeySet...", new BMessage(APPEND_KEYSET), 'A')); fileMenu->AddItem(new BMenuItem("Revert to saved", new BMessage(REVERT_KEYSET), 'A')); fileMenu->AddItem(new BSeparatorItem); fileMenu->AddItem(new BMenuItem("Save KeySet as...", new BMessage(SAVE_KEYSET_AS), 'S')); fileMenu->AddItem(new BSeparatorItem); fileMenu->AddItem(new BMenuItem("About Shortcuts", new BMessage(B_ABOUT_REQUESTED))); fileMenu->AddItem(new BSeparatorItem); fileMenu->AddItem(new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q')); menuBar->AddItem(fileMenu); AddChild(menuBar); font_height fh; be_plain_font->GetHeight(&fh); float vButtonHeight = ceil(fh.ascent) + ceil(fh.descent) + 5.0f; BRect tableBounds = Bounds(); tableBounds.top = menuBar->Bounds().bottom + 1; tableBounds.right -= B_V_SCROLL_BAR_WIDTH; tableBounds.bottom -= (B_H_SCROLL_BAR_HEIGHT + V_SPACING + vButtonHeight + V_SPACING * 2); BScrollView* containerView; fColumnListView = new ColumnListView(tableBounds, &containerView, NULL, B_FOLLOW_ALL_SIDES, B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE, B_SINGLE_SELECTION_LIST, true, true, true, B_NO_BORDER); fColumnListView->SetEditMessage(new BMessage(HOTKEY_ITEM_MODIFIED), BMessenger(this)); const float metaWidth = 50.0f; for (int i = 0; i < ShortcutsSpec::NUM_META_COLUMNS; i++) fColumnListView->AddColumn( new CLVColumn(ShortcutsSpec::GetColumnName(i), CreateMetaPopUp(i), metaWidth, CLV_SORT_KEYABLE)); fColumnListView->AddColumn(new CLVColumn("Key", CreateKeysPopUp(), 60, CLV_SORT_KEYABLE)); BPopUpMenu* popup = new BPopUpMenu(NULL, false); popup->AddItem(new BMenuItem("(Choose application with file requester)", NULL)); popup->AddItem(new BMenuItem("*InsertString \"Your Text Here\"", NULL)); popup->AddItem(new BMenuItem("*MoveMouse +20 +0", NULL)); popup->AddItem(new BMenuItem("*MoveMouseTo 50% 50%", NULL)); popup->AddItem(new BMenuItem("*MouseButton 1", NULL)); popup->AddItem(new BMenuItem("*LaunchHandler text/html", NULL)); popup->AddItem(new BMenuItem( "*Multi \"*MoveMouseTo 100% 0\" \"*MouseButton 1\"", NULL)); popup->AddItem(new BMenuItem("*MouseDown", NULL)); popup->AddItem(new BMenuItem("*MouseUp", NULL)); popup->AddItem(new BMenuItem( "*SendMessage application/x-vnd.Be-TRAK 'Tfnd'", NULL)); popup->AddItem(new BMenuItem("*Beep", NULL)); fColumnListView->AddColumn(new CLVColumn("Application", popup, 323.0, CLV_SORT_KEYABLE)); fColumnListView->SetSortFunction(ShortcutsSpec::MyCompare); AddChild(containerView); fColumnListView->SetSelectionMessage(new BMessage(HOTKEY_ITEM_SELECTED)); fColumnListView->SetTarget(this); BRect buttonBounds = Bounds(); buttonBounds.left += V_SPACING; buttonBounds.right = ((buttonBounds.right - buttonBounds.left) / 2.0f) + buttonBounds.left; buttonBounds.bottom -= V_SPACING * 2; buttonBounds.top = buttonBounds.bottom - vButtonHeight; buttonBounds.right -= B_V_SCROLL_BAR_WIDTH; float origRight = buttonBounds.right; buttonBounds.right = (buttonBounds.left + origRight) * 0.40f - (V_SPACING / 2); AddChild(fAddButton = new ResizableButton(Bounds(), buttonBounds, "add", "Add new shortcut", new BMessage(ADD_HOTKEY_ITEM))); buttonBounds.left = buttonBounds.right + V_SPACING; buttonBounds.right = origRight; AddChild(fRemoveButton = new ResizableButton(Bounds(), buttonBounds, "remove", "Remove selected shortcut", new BMessage(REMOVE_HOTKEY_ITEM))); fRemoveButton->SetEnabled(false); float offset = (buttonBounds.right - buttonBounds.left) / 2.0f; BRect saveButtonBounds = buttonBounds; saveButtonBounds.right = Bounds().right - B_V_SCROLL_BAR_WIDTH - offset; saveButtonBounds.left = buttonBounds.right + V_SPACING + offset; AddChild(fSaveButton = new ResizableButton(Bounds(), saveButtonBounds, "save", "Save & apply", new BMessage(SAVE_KEYSET))); fSaveButton->SetEnabled(false); entry_ref ref; if (_GetSettingsFile(&ref)) { BMessage msg(B_REFS_RECEIVED); msg.AddRef("refs", &ref); msg.AddString("startupRef", "please"); PostMessage(&msg); // Tell ourself to load this file if it exists. } Show(); }
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); }
ImageWindow::ImageWindow(BRect rect, const char *name) : BWindow(rect, name, B_DOCUMENT_WINDOW, 0) { // Setup menu bar BRect rctbar(0, 0, 100, 10); BMenuBar *pbar = new BMenuBar(rctbar, "MenuBar"); BMenu *pmnufile = new BMenu(B_TRANSLATE("File")); BMenuItem *pitmopen = new BMenuItem(B_TRANSLATE("Open..."), new BMessage(M_OPEN_IMAGE), 'O', 0); BMenuItem *pitmsave = new BMenuItem(B_TRANSLATE("Save..."), new BMessage(M_SAVE_IMAGE), 'S', 0); BMenuItem *pitmquit = new BMenuItem(B_TRANSLATE("Quit"), new BMessage(B_QUIT_REQUESTED), 'Q', 0); pmnufile->AddItem(pitmopen); pmnufile->AddItem(pitmsave); pmnufile->AddSeparatorItem(); pmnufile->AddItem(pitmquit); pbar->AddItem(pmnufile); BMenu *pmnuview = new BMenu(B_TRANSLATE("View")); BMenuItem *pitmfirst = new BMenuItem(B_TRANSLATE("First Page"), new BMessage(M_VIEW_FIRST_PAGE), 'F', 0); BMenuItem *pitmlast = new BMenuItem(B_TRANSLATE("Last Page"), new BMessage(M_VIEW_LAST_PAGE), 'L', 0); BMenuItem *pitmnext = new BMenuItem(B_TRANSLATE("Next Page"), new BMessage(M_VIEW_NEXT_PAGE), 'N', 0); BMenuItem *pitmprev = new BMenuItem(B_TRANSLATE("Previous Page"), new BMessage(M_VIEW_PREV_PAGE), 'P', 0); pmnuview->AddItem(pitmfirst); pmnuview->AddItem(pitmlast); pmnuview->AddItem(pitmnext); pmnuview->AddItem(pitmprev); pbar->AddItem(pmnuview); BMenu *pmnuwindow = new BMenu(B_TRANSLATE("Window")); BMenuItem *pitmactives = new BMenuItem(B_TRANSLATE("Active Translators"), new BMessage(M_ACTIVE_TRANSLATORS_WINDOW), 'T', 0); pitmactives->SetTarget(be_app); BMenuItem *pitminfo = new BMenuItem(B_TRANSLATE("Info"), new BMessage(M_INFO_WINDOW), 'I', 0); pitminfo->SetTarget(be_app); pmnuwindow->AddItem(pitmactives); pmnuwindow->AddItem(pitminfo); pbar->AddItem(pmnuwindow); AddChild(pbar); // Setup image view BRect rctview = Bounds(); rctview.top = pbar->Frame().bottom + 1; rctview.right -= B_V_SCROLL_BAR_WIDTH; rctview.bottom -= B_H_SCROLL_BAR_HEIGHT; fpimageView = new ImageView(rctview, "ImageView"); AddChild(new BScrollView("ImageScroll", fpimageView, B_FOLLOW_ALL_SIDES, 0, true, true)); // Setup file open panel BMessenger messenger(this); BMessage message(M_OPEN_FILE_PANEL); fpopenPanel = new BFilePanel(B_OPEN_PANEL, &messenger, NULL, 0L, false, &message, NULL, false, true); SetSizeLimits(200, 10000, 150, 10000); }
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(); }