void BMenuField::_InitMenuBar(const BMessage* archive) { bool fixed; if (archive->FindBool("be:fixeds", &fixed) == B_OK) fFixedSizeMB = fixed; fMenuBar = (BMenuBar*)FindView("_mc_mb_"); if (!fMenuBar) { _InitMenuBar(new BMenu(""), BRect(0, 0, 100, 15), fFixedSizeMB); InitObject2(); } else { fMenuBar->AddFilter(new _BMCFilter_(this, B_MOUSE_DOWN)); // this is normally done in InitObject2() } fMenu = fMenuBar->SubmenuAt(0); bool disable; if (archive->FindBool("_disable", &disable) == B_OK) SetEnabled(!disable); bool dmark = false; archive->FindBool("be:dmark", &dmark); if (_BMCMenuBar_* menuBar = dynamic_cast<_BMCMenuBar_*>(fMenuBar)) menuBar->TogglePopUpMarker(dmark); }
//! Copy&Paste error, should be removed at some point (already private) BMenuField::BMenuField(const char* label, BMenu* menu, BMessage* message) : BView(NULL, B_WILL_DRAW | B_NAVIGABLE | B_FRAME_EVENTS) { InitObject(label); _InitMenuBar(menu, BRect(0, 0, 100, 15), true); InitObject2(); }
BMenuField::BMenuField(const char* label, BMenu* menu, uint32 flags) : BView(NULL, flags | B_FRAME_EVENTS) { InitObject(label); _InitMenuBar(menu, BRect(0, 0, 100, 15), true); InitObject2(); }
BMenuField::BMenuField(BRect frame, const char* name, const char* label, BMenu* menu, bool fixedSize, uint32 resize, uint32 flags) : BView(frame, name, resize, flags) { InitObject(label); fFixedSizeMB = fixedSize; frame.OffsetTo(B_ORIGIN); _InitMenuBar(menu, frame, fixedSize); InitObject2(); }
BMenuField::BMenuField(BRect frame, const char* name, const char* label, BMenu* menu, uint32 resize, uint32 flags) : BView(frame, name, resize, flags) { CALLED(); TRACE("frame.width: %.2f, height: %.2f\n", frame.Width(), frame.Height()); InitObject(label); frame.OffsetTo(B_ORIGIN); _InitMenuBar(menu, frame, false); InitObject2(); }
//------------------------------------------------------------------------------ BMenuField::BMenuField(BMessage *data) : BView(data) { const char *label = NULL; data->FindString("_label", &label); InitObject(label); fMenuBar = (BMenuBar*)FindView("_mc_mb_"); fMenu = fMenuBar->SubmenuAt(0); InitObject2(); bool disable; if (data->FindBool("_disable", &disable) == B_OK) SetEnabled(!disable); int32 align; data->FindInt32("_align", &align); SetAlignment((alignment)align); data->FindFloat("_divide", &fDivider); bool fixed; if (data->FindBool("be:fixeds", &fixed) == B_OK) fFixedSizeMB = fixed; BMenuItem *item = fMenuBar->ItemAt(0); if (!item) return; _BMCItem_ *bmcitem = dynamic_cast<_BMCItem_*>(item); if (!bmcitem) return; bool dmark; if (data->FindBool("be:dmark", &dmark)) bmcitem->fShowPopUpMarker = dmark; }
//------------------------------------------------------------------------------ BMenuField::BMenuField(BRect frame, const char *name, const char *label, BMenu *menu, uint32 resize, uint32 flags) : BView(frame, name, resize, flags) { InitObject(label); SetFont(be_plain_font); fMenu = menu; InitMenu(menu); frame.OffsetTo(0.0f, 0.0f); fMenuBar = new _BMCMenuBar_(BRect(frame.left + fDivider + 2.0f, frame.top + kVMargin, frame.right - 2.0f, frame.bottom - kVMargin), false, this); AddChild(fMenuBar); fMenuBar->AddItem(menu); fMenuBar->SetFont(be_plain_font); InitObject2(); }