void RouteWindow::Zoom(BPoint origin, float width, float height) { D_HOOK(("RouteWindow::Zoom()\n")); m_zooming = true; BScreen screen(this); if (!screen.Frame().Contains(Frame())) { m_zoomed = false; } if (!m_zoomed) { // resize to the ideal size m_manualSize = Bounds(); float width, height; m_routingView->GetPreferredSize(&width, &height); width += B_V_SCROLL_BAR_WIDTH; height += B_H_SCROLL_BAR_HEIGHT; if (KeyMenuBar()) { height += KeyMenuBar()->Frame().Height(); } ResizeTo(width, height); _constrainToScreen(); m_zoomed = true; } else { // resize to the most recent manual size ResizeTo(m_manualSize.Width(), m_manualSize.Height()); m_zoomed = false; } }
void TBarWindow::ShowTeamMenu() { int32 index = 0; if (fBarView->BarMenuBar() == NULL) index = 2; if (KeyMenuBar() == NULL) return; BMenuBar_StartMenuBar_Hack(KeyMenuBar(), index, true, true, NULL); }
void TBarWindow::ShowBeMenu() { BMenuBar* menuBar = fBarView->BarMenuBar(); if (menuBar == NULL) menuBar = KeyMenuBar(); if (menuBar == NULL) return; BMenuBar_StartMenuBar_Hack(menuBar, 0, true, true, NULL); }
void ParameterWindow::_updateParameterView( BMediaTheme *theme) { D_INTERNAL(("ParameterWindow::_updateParameterView()\n")); // clear the old version if (m_parameters) { ParameterContainerView *view = dynamic_cast<ParameterContainerView *>(FindView("ParameterContainerView")); RemoveChild(view); delete m_parameters; m_parameters = 0; delete view; } // fetch ParameterWeb from the MediaRoster BMediaRoster *roster = BMediaRoster::CurrentRoster(); if (roster) { BParameterWeb *web; status_t error = roster->GetParameterWebFor(m_node, &web); if (!error && (web->CountParameters() || web->CountGroups())) { // if no theme was specified, use the preferred theme if (!theme) { theme = BMediaTheme::PreferredTheme(); } // acquire the view m_parameters = BMediaTheme::ViewFor(web, 0, theme); if (m_parameters) { BMenuBar *menuBar = KeyMenuBar(); m_idealSize = m_parameters->Bounds(); m_idealSize.right += B_V_SCROLL_BAR_WIDTH; m_idealSize.bottom += B_H_SCROLL_BAR_HEIGHT; if (menuBar) { m_parameters->MoveTo(0.0, menuBar->Bounds().bottom + 1.0); m_idealSize.bottom += menuBar->Bounds().bottom + 1.0; } } } } // limit min size to avoid funny-looking scrollbars float hMin = B_V_SCROLL_BAR_WIDTH*6, vMin = B_H_SCROLL_BAR_HEIGHT*3; // limit max size to full extents of the parameter view float hMax = m_idealSize.Width(), vMax = m_idealSize.Height(); SetSizeLimits(hMin, hMax, vMin, vMax); // adapt the window to the new dimensions ResizeTo(m_idealSize.Width(), m_idealSize.Height()); m_zoomed = true; if (m_parameters) { BRect paramRect = m_parameters->Bounds(); AddChild(new ParameterContainerView(paramRect, m_parameters)); } }
void SeqManageRosterWindow::MenusBeginning() { inherited::MenusBeginning(); BMenuBar* bar = KeyMenuBar(); if (!bar) return; BColumnListView* table = dynamic_cast<BColumnListView*>( FindView(TABLE_STR) ); if (!table) return; BMenu* menu; BMenuItem* item; // Entry menu bool canEdit = false, canDuplicate = false; BString key, filePath; bool readOnly; if (GetSelectionInfo(key, filePath, &readOnly) == B_OK) { canEdit = !readOnly; canDuplicate = true; } if ( (menu = bar->SubmenuAt(ENTRY_MENU_INDEX)) != NULL) { if ( (item = menu->FindItem(EDIT_ENTRY_MSG)) != NULL) item->SetEnabled(canEdit); if ( (item = menu->FindItem(DUPLICATE_ENTRY_MSG)) != NULL) item->SetEnabled(canDuplicate); if ( (item = menu->FindItem(DELETE_ENTRY_MSG)) != NULL) item->SetEnabled(canEdit); } // Attributes menu if ( (menu = bar->SubmenuAt(ATTRIBUTES_MENU_INDEX)) != NULL) { for (int32 k = 0; (item = menu->ItemAt(k)) != NULL; k++) { const char* n; if (item->Message() && item->Message()->FindString(COLUMN_NAME_STR, &n) == B_OK) { BColumn* col = column_named(n, table); if (col && col->IsVisible() ) { if (!item->IsMarked() ) item->SetMarked(true); } else { if (item->IsMarked() ) item->SetMarked(false); } } } } }
void SeqStudioWindow::MenusBeginning() { inherited::MenusBeginning(); BMenuBar* bar = KeyMenuBar(); if (!bar) return; BColumnListView* table = dynamic_cast<BColumnListView*>( FindView(ENDPOINT_LIST_STR) ); if (!table) return; if (mDeviceCtrl && mDeviceCtrl->Menu() ) add_device_menu_items(mDeviceCtrl->Menu() ); // MIDI Port menu if (mPortMenu) { bool deleteEnabled = false; _EndpointRow* r = dynamic_cast<_EndpointRow*>(table->CurrentSelection() ); if (r && !r->mIsValid && r->mEndpoint.channel < 0) deleteEnabled = true; BMenuItem* deleteItem = mPortMenu->FindItem(DELETE_STR); if (deleteItem && deleteItem->IsEnabled() != deleteEnabled) deleteItem->SetEnabled(deleteEnabled); } // Attributes menu BMenu* menu; BMenuItem* item; if ( (menu = bar->SubmenuAt(ATTRIBUTES_MENU_INDEX)) != NULL) { for (int32 k = 0; (item = menu->ItemAt(k)) != NULL; k++) { const char* n; if (item->Message() && item->Message()->FindString(COLUMN_NAME_STR, &n) == B_OK) { BColumn* col = column_named(n, table); if (col && col->IsVisible() ) { if (!item->IsMarked() ) item->SetMarked(true); } else { if (item->IsMarked() ) item->SetMarked(false); } } } } }
void BafxWindow::ReplaceContent(BView* inContent) { Lock(); if (contentView != NULL) { RemoveChild(contentView); contentView = NULL; } BMenuBar* menuBar = KeyMenuBar(); BRect menuFrame = menuBar->Frame(); BRect rect = Bounds(); rect.top += menuFrame.Height()+1; rect.bottom -= B_H_SCROLL_BAR_HEIGHT; inContent->ResizeTo(rect.Width(), rect.Height()); inContent->MoveTo(rect.left, rect.top); AddChild(inContent); contentView = inContent; Unlock(); }
void CAssemblyWindow::AddToolBar() { BMessage *message; // make the pop up menu for 'Select' tool BPopUpMenu *selectMenu = new BPopUpMenu("", false, false); selectMenu->SetFont(be_plain_font); message = new BMessage(SELECT_MODE_CHANGED); message->AddInt32("mev:mode", CEventEditor::RECTANGLE_SELECTION); selectMenu->AddItem(new CIconMenuItem("Rectangle", message, ResourceUtils::LoadImage("ArrowTool"))); message = new BMessage(*message); message->ReplaceInt32("mev:mode", CEventEditor::LASSO_SELECTION); selectMenu->AddItem(new CIconMenuItem("Lasso", message, ResourceUtils::LoadImage("LassoTool"))); selectMenu->SetTargetForItems(this); // make the pop up menu for 'Create' tool BPopUpMenu *createMenu = new BPopUpMenu("", false, false); createMenu->SetFont(be_plain_font); message = new BMessage(NEW_EVENT_TYPE_CHANGED); message->AddInt32("type", EvtType_Count); createMenu->AddItem(new CIconMenuItem("Default", message, ResourceUtils::LoadImage("PencilTool"))); createMenu->AddSeparatorItem(); message = new BMessage(*message); message->ReplaceInt32("type", EvtType_Tempo); createMenu->AddItem(new CIconMenuItem("Tempo", message, ResourceUtils::LoadImage("MetroTool"))); message = new BMessage(*message); message->ReplaceInt32("type", EvtType_TimeSig); createMenu->AddItem(new CIconMenuItem("Time Signature", message, ResourceUtils::LoadImage("TimeSigTool"))); message = new BMessage(*message); message->ReplaceInt32("type", EvtType_Repeat); createMenu->AddItem(new CIconMenuItem("Repeat", message, ResourceUtils::LoadImage("RepeatTool"))); message = new BMessage(*message); message->ReplaceInt32("type", EvtType_End); createMenu->AddItem(new CIconMenuItem("Part End", message, ResourceUtils::LoadImage("EndTool"))); createMenu->SetTargetForItems(this); BRect rect(Bounds()); if (KeyMenuBar()) rect.top = KeyMenuBar()->Frame().bottom + 1.0; rect.right += 1.0; // add the tool bar CToolBar *toolBar = new CToolBar(rect, "General"); CTool *tool; toolBar->AddTool(tool = new CBitmapTool("Snap To Grid", ResourceUtils::LoadImage("GridTool"), new BMessage(CEventEditor::TOOL_GRID))); tool->SetValue(B_CONTROL_ON); toolBar->AddSeparator(); toolBar->AddTool(tool = new CMenuTool("Select", ResourceUtils::LoadImage("ArrowTool"), selectMenu, new BMessage(CEventEditor::TOOL_SELECT))); tool->SetValue(B_CONTROL_ON); toolBar->AddTool(new CMenuTool("Create", ResourceUtils::LoadImage("PencilTool"), createMenu, new BMessage(CEventEditor::TOOL_CREATE))); toolBar->AddTool(tool = new CBitmapTool("Eraser", ResourceUtils::LoadImage("EraserTool"), new BMessage(CEventEditor::TOOL_ERASE))); toolBar->MakeRadioGroup("Select", "Eraser", true); SetToolBar(toolBar); }