BMenuBar::SetBorders() added.
* This allows you to only draw some of the borders.
This commit is contained in:
parent
f74aab0a2e
commit
14cc5b4c44
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue