diff --git a/headers/os/interface/MenuBar.h b/headers/os/interface/MenuBar.h index 3a4a563e46..14e464df10 100644 --- a/headers/os/interface/MenuBar.h +++ b/headers/os/interface/MenuBar.h @@ -1,5 +1,5 @@ /* - * Copyright 2003-2009, Haiku, Inc. All rights reserved. + * Copyright 2003-2015, Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT License. */ #ifndef _MENU_BAR_H @@ -36,7 +36,7 @@ public: | B_FRAME_EVENTS); BMenuBar(BMessage* archive); virtual ~BMenuBar(); - + static BArchivable* Instantiate(BMessage* archive); virtual status_t Archive(BMessage* archive, bool deep = true) const; @@ -74,7 +74,9 @@ public: virtual void SetBorder(menu_bar_border border); menu_bar_border Border() const; - + void SetBorders(uint32 borders); + uint32 Borders() const; + virtual status_t Perform(perform_code code, void* data); private: @@ -94,7 +96,7 @@ private: void StartMenuBar(int32 menuIndex, bool sticky = true, bool showMenu = false, BRect* special_rect = NULL); - + static int32 _TrackTask(void *arg); BMenuItem* _Track(int32 *action, int32 startIndex = -1, bool showMenu = false); @@ -107,7 +109,8 @@ private: int32 fPrevFocusToken; sem_id fMenuSem; BRect* fLastBounds; - uint32 _reserved[2]; + uint32 fBorders; + uint32 _reserved[1]; bool fTracking; }; diff --git a/src/kits/interface/MenuBar.cpp b/src/kits/interface/MenuBar.cpp index 194cfcf19c..4351e73a3f 100644 --- a/src/kits/interface/MenuBar.cpp +++ b/src/kits/interface/MenuBar.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2009, Haiku Inc. All rights reserved. + * Copyright 2001-2015, Haiku Inc. All rights reserved. * Distributed under the terms of the MIT license. * * Authors: @@ -286,7 +286,8 @@ BMenuBar::Draw(BRect updateRect) be_control_look->DrawBorder(this, rect, updateRect, base, B_PLAIN_BORDER, flags, BControlLook::B_BOTTOM_BORDER); - be_control_look->DrawMenuBarBackground(this, rect, updateRect, base); + be_control_look->DrawMenuBarBackground(this, rect, updateRect, base, + 0, fBorders); _DrawItems(updateRect); } @@ -369,6 +370,20 @@ BMenuBar::Border() const } +void +BMenuBar::SetBorders(uint32 borders) +{ + fBorders = borders; +} + + +uint32 +BMenuBar::Borders() const +{ + return fBorders; +} + + // #pragma mark - @@ -726,6 +741,7 @@ BMenuBar::_RestoreFocus() void BMenuBar::_InitData(menu_layout layout) { + fBorders = BControlLook::B_ALL_BORDERS; fLastBounds = new BRect(Bounds()); SetItemMargins(8, 2, 8, 2); _SetIgnoreHidden(true);