diff --git a/headers/os/interface/MenuBar.h b/headers/os/interface/MenuBar.h
index 26e904ec01..cab4b01dc8 100644
--- a/headers/os/interface/MenuBar.h
+++ b/headers/os/interface/MenuBar.h
@@ -1,13 +1,7 @@
-/*******************************************************************************
-/
-/ File: Menubar.h
-/
-/ Description: BMenuBar is a menu that's at the root of a menu hierarchy.
-/
-/ Copyright 1994-98, Be Incorporated, All Rights Reserved
-/
-*******************************************************************************/
-
+/*
+ * Copyright 2003-2007, Haiku, Inc. All Rights Reserved.
+ * Distributed under the terms of the MIT License.
+ */
#ifndef _MENU_BAR_H
#define _MENU_BAR_H
@@ -16,8 +10,6 @@
#include
#include
-/*----------------------------------------------------------------*/
-/*----- BmenuBar declarations ------------------------------------*/
enum menu_bar_border {
B_BORDER_FRAME,
@@ -30,100 +22,90 @@ class BWindow;
class BMenuItem;
class BMenuField;
-/*----------------------------------------------------------------*/
-/*----- BMenuBar class -------------------------------------------*/
-class BMenuBar : public BMenu
-{
-public:
- BMenuBar(BRect frame,
- const char *title,
- uint32 resizeMask =
- B_FOLLOW_LEFT_RIGHT | B_FOLLOW_TOP,
- menu_layout layout = B_ITEMS_IN_ROW,
- bool resizeToFit = true);
- BMenuBar(const char *title,
- menu_layout layout = B_ITEMS_IN_ROW,
- uint32 flags = B_WILL_DRAW | B_FRAME_EVENTS);
- BMenuBar(BMessage *data);
- virtual ~BMenuBar();
- static BArchivable *Instantiate(BMessage *data);
- virtual status_t Archive(BMessage *data, bool deep = true) const;
+class BMenuBar : public BMenu {
+ public:
+ BMenuBar(BRect frame, const char *title,
+ uint32 resizeMask = B_FOLLOW_LEFT_RIGHT | B_FOLLOW_TOP,
+ menu_layout layout = B_ITEMS_IN_ROW,
+ bool resizeToFit = true);
+ BMenuBar(const char *title, menu_layout layout = B_ITEMS_IN_ROW,
+ uint32 flags = B_WILL_DRAW | B_FRAME_EVENTS);
+ BMenuBar(BMessage *data);
+ virtual ~BMenuBar();
+
+ static BArchivable* Instantiate(BMessage *data);
+ virtual status_t Archive(BMessage *data, bool deep = true) const;
- virtual void SetBorder(menu_bar_border border);
- menu_bar_border Border() const;
- virtual void Draw(BRect updateRect);
- virtual void AttachedToWindow();
- virtual void DetachedFromWindow();
- virtual void MessageReceived(BMessage *msg);
- virtual void MouseDown(BPoint where);
- virtual void WindowActivated(bool state);
- virtual void MouseUp(BPoint where);
- virtual void FrameMoved(BPoint new_position);
- virtual void FrameResized(float new_width, float new_height);
+ virtual void SetBorder(menu_bar_border border);
+ menu_bar_border Border() const;
+
+ virtual void Draw(BRect updateRect);
+ virtual void AttachedToWindow();
+ virtual void DetachedFromWindow();
+ virtual void MessageReceived(BMessage *message);
+ virtual void MouseDown(BPoint where);
+ virtual void WindowActivated(bool state);
+ virtual void MouseUp(BPoint where);
+ virtual void FrameMoved(BPoint newPosition);
+ virtual void FrameResized(float newWidth, float newHeight);
+
+ virtual void Show();
+ virtual void Hide();
- virtual void Show();
- virtual void Hide();
+ virtual BHandler* ResolveSpecifier(BMessage *message, int32 index,
+ BMessage *specifier, int32 form,
+ const char *property);
+ virtual status_t GetSupportedSuites(BMessage *data);
- virtual BHandler *ResolveSpecifier(BMessage *msg,
- int32 index,
- BMessage *specifier,
- int32 form,
- const char *property);
- virtual status_t GetSupportedSuites(BMessage *data);
+ virtual void ResizeToPreferred();
+ virtual void GetPreferredSize(float *width, float *height);
+ virtual void MakeFocus(bool state = true);
+ virtual void AllAttached();
+ virtual void AllDetached();
+
- virtual void ResizeToPreferred();
- virtual void GetPreferredSize(float *width, float *height);
- virtual void MakeFocus(bool state = true);
- virtual void AllAttached();
- virtual void AllDetached();
+ // layout related
+ virtual BSize MinSize();
+ virtual BSize MaxSize();
+ virtual BSize PreferredSize();
+ virtual status_t Perform(perform_code code, void *arg);
+ private:
+ friend class BWindow;
+ friend class BMenuField;
+ friend class BMenu;
- // layout related
- virtual BSize MinSize();
- virtual BSize MaxSize();
- virtual BSize PreferredSize();
+ virtual void _ReservedMenuBar1();
+ virtual void _ReservedMenuBar2();
+ virtual void _ReservedMenuBar3();
+ virtual void _ReservedMenuBar4();
-/*----- Private or reserved -----------------------------------------*/
- virtual status_t Perform(perform_code d, void *arg);
+ BMenuBar &operator=(const BMenuBar &);
-private:
- friend class BWindow;
- friend class BMenuItem;
- friend class BMenuField;
- friend class BMenu;
+ // TODO: Tracker uses this function so we can't change
+ // its signature without breaking it
+ 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);
+ void _StealFocus();
+ void _RestoreFocus();
+ void _InitData(menu_layout layout);
- virtual void _ReservedMenuBar1();
- virtual void _ReservedMenuBar2();
- virtual void _ReservedMenuBar3();
- virtual void _ReservedMenuBar4();
+ menu_bar_border fBorder;
+ thread_id fTrackingPID;
+ int32 fPrevFocusToken;
+ sem_id fMenuSem;
+ BRect* fLastBounds;
+ uint32 _reserved[2]; // was 3
- BMenuBar &operator=(const BMenuBar &);
-
- void StartMenuBar( int32 menuIndex,
- bool sticky = true,
- bool show_menu = false,
- BRect *special_rect = NULL);
- static long TrackTask(void *arg);
- BMenuItem *Track( int32 *action,
- int32 startIndex = -1,
- bool showMenu = false);
- void StealFocus();
- void RestoreFocus();
- void InitData(menu_layout layout);
-
- menu_bar_border fBorder;
- thread_id fTrackingPID;
- int32 fPrevFocusToken;
- sem_id fMenuSem;
- BRect* fLastBounds;
- uint32 _reserved[2]; // was 3
-
- bool fTracking;
+ bool fTracking;
};
-/*-------------------------------------------------------------*/
-/*-------------------------------------------------------------*/
#endif /* _MENU_BAR_H */
diff --git a/headers/os/interface/PopUpMenu.h b/headers/os/interface/PopUpMenu.h
index cb48ca31a7..87d12f547c 100644
--- a/headers/os/interface/PopUpMenu.h
+++ b/headers/os/interface/PopUpMenu.h
@@ -1,90 +1,75 @@
-/*******************************************************************************
-/
-/ File: PopUpMenu.h
-/
-/ Description: BPopUpMenu represents a menu that pops up when you
-/ activate it.
-/
-/ Copyright 1994-98, Be Incorporated, All Rights Reserved
-/
-*******************************************************************************/
-
+/*
+ * Copyright 2007, Haiku, Inc. All Rights Reserved.
+ * Distributed under the terms of the MIT License.
+ */
#ifndef _POP_UP_MENU_H
#define _POP_UP_MENU_H
#include
#include
-/*----------------------------------------------------------------*/
-/*----- BPopUpMenu class -----------------------------------------*/
+class BPopUpMenu : public BMenu {
+ public:
+ BPopUpMenu(const char *title, bool radioMode = true,
+ bool autoRename = true,
+ menu_layout layout = B_ITEMS_IN_COLUMN);
+ BPopUpMenu(BMessage *data);
+ virtual ~BPopUpMenu();
+
+ virtual status_t Archive(BMessage *data, bool deep = true) const;
+ static BArchivable* Instantiate(BMessage *data);
-class BPopUpMenu : public BMenu
-{
-public:
- BPopUpMenu( const char *title,
- bool radioMode = true,
- bool autoRename = true,
- menu_layout layout = B_ITEMS_IN_COLUMN
- );
- BPopUpMenu(BMessage *data);
-virtual ~BPopUpMenu();
-virtual status_t Archive(BMessage *data, bool deep = true) const;
-static BArchivable *Instantiate(BMessage *data);
-
- BMenuItem *Go(BPoint where,
- bool delivers_message = false,
- bool open_anyway = false,
+ BMenuItem* Go(BPoint where, bool autoInvoke = false,
+ bool keepOpen = false,
bool async = false);
- BMenuItem *Go(BPoint where,
- bool delivers_message,
- bool open_anyway,
- BRect click_to_open,
+ BMenuItem* Go(BPoint where, bool autoInvoke,
+ bool keepOpen,
+ BRect openRect,
bool async = false);
-virtual void MessageReceived(BMessage *msg);
-virtual void MouseDown(BPoint pt);
-virtual void MouseUp(BPoint pt);
-virtual void MouseMoved(BPoint pt, uint32 code, const BMessage *msg);
-virtual void AttachedToWindow();
-virtual void DetachedFromWindow();
-virtual void FrameMoved(BPoint new_position);
-virtual void FrameResized(float new_width, float new_height);
+ virtual void MessageReceived(BMessage *message);
+ virtual void MouseDown(BPoint point);
+ virtual void MouseUp(BPoint point);
+ virtual void MouseMoved(BPoint point, uint32 code,
+ const BMessage *message);
+ virtual void AttachedToWindow();
+ virtual void DetachedFromWindow();
+ virtual void FrameMoved(BPoint newPosition);
+ virtual void FrameResized(float newWidth, float newHeight);
-virtual BHandler *ResolveSpecifier(BMessage *msg,
- int32 index,
- BMessage *specifier,
- int32 form,
- const char *property);
-virtual status_t GetSupportedSuites(BMessage *data);
+ virtual BHandler* ResolveSpecifier(BMessage *message, int32 index,
+ BMessage *specifier, int32 form,
+ const char *property);
+ virtual status_t GetSupportedSuites(BMessage *data);
-virtual status_t Perform(perform_code d, void *arg);
+ virtual status_t Perform(perform_code code, void *arg);
-virtual void ResizeToPreferred();
-virtual void GetPreferredSize(float *width, float *height);
-virtual void MakeFocus(bool state = true);
-virtual void AllAttached();
-virtual void AllDetached();
+ virtual void ResizeToPreferred();
+ virtual void GetPreferredSize(float *width, float *height);
+ virtual void MakeFocus(bool state = true);
+ virtual void AllAttached();
+ virtual void AllDetached();
- void SetAsyncAutoDestruct(bool state);
- bool AsyncAutoDestruct() const;
+ void SetAsyncAutoDestruct(bool state);
+ bool AsyncAutoDestruct() const;
-protected:
-virtual BPoint ScreenLocation();
+ protected:
+ virtual BPoint ScreenLocation();
-virtual void _ReservedPopUpMenu1();
-virtual void _ReservedPopUpMenu2();
-virtual void _ReservedPopUpMenu3();
+ virtual void _ReservedPopUpMenu1();
+ virtual void _ReservedPopUpMenu2();
+ virtual void _ReservedPopUpMenu3();
BPopUpMenu &operator=(const BPopUpMenu &);
-/*----- Private or reserved -----------------------------------------*/
-private:
+ private:
BMenuItem *_Go(BPoint where, bool autoInvoke, bool startOpened,
BRect *specialRect, bool async);
- BMenuItem *_StartTrack(BPoint where, bool autoInvoke, bool startOpened, BRect *specialRect);
+ BMenuItem *_StartTrack(BPoint where, bool autoInvoke,
+ bool startOpened, BRect *specialRect);
BMenuItem *_WaitMenu(void *data);
-static int32 _thread_entry(void *);
+ static int32 _thread_entry(void *);
BPoint fWhere;
bool fUseWhere;
@@ -95,7 +80,5 @@ static int32 _thread_entry(void *);
uint32 _reserved[3];
};
-/*-------------------------------------------------------------*/
-/*-------------------------------------------------------------*/
#endif /* _POP_UP_MENU_H */
diff --git a/headers/os/interface/SeparatorItem.h b/headers/os/interface/SeparatorItem.h
index 636492a54d..da9b609b35 100644
--- a/headers/os/interface/SeparatorItem.h
+++ b/headers/os/interface/SeparatorItem.h
@@ -1,3 +1,8 @@
+/*
+ * Copyright 2001-2007, Haiku, Inc.
+ * Distributed under the terms of the MIT License.
+ *
+ */
#ifndef _SEPARATOR_ITEM_H
#define _SEPARATOR_ITEM_H
diff --git a/src/kits/interface/Menu.cpp b/src/kits/interface/Menu.cpp
index 500247b25e..076aa8a7ba 100644
--- a/src/kits/interface/Menu.cpp
+++ b/src/kits/interface/Menu.cpp
@@ -2162,7 +2162,7 @@ BMenu::_SetStickyMode(bool on)
if (on && menuBar != NULL && menuBar->LockLooper()) {
// Steal the focus from the current focus view
// (needed to handle keyboard navigation)
- menuBar->StealFocus();
+ menuBar->_StealFocus();
menuBar->UnlockLooper();
}
@@ -2332,7 +2332,7 @@ BMenu::QuitTracking()
{
_SelectItem(NULL);
if (BMenuBar *menuBar = dynamic_cast(this))
- menuBar->RestoreFocus();
+ menuBar->_RestoreFocus();
fChosenItem = NULL;
fState = MENU_STATE_CLOSED;
diff --git a/src/kits/interface/MenuBar.cpp b/src/kits/interface/MenuBar.cpp
index 2b4b36cc7d..b729968adf 100644
--- a/src/kits/interface/MenuBar.cpp
+++ b/src/kits/interface/MenuBar.cpp
@@ -47,7 +47,7 @@ BMenuBar::BMenuBar(BRect frame, const char *title, uint32 resizeMask,
fLastBounds(NULL),
fTracking(false)
{
- InitData(layout);
+ _InitData(layout);
}
@@ -62,7 +62,7 @@ BMenuBar::BMenuBar(const char *title, menu_layout layout, uint32 flags)
fLastBounds(NULL),
fTracking(false)
{
- InitData(layout);
+ _InitData(layout);
}
@@ -83,7 +83,7 @@ BMenuBar::BMenuBar(BMessage *data)
menu_layout layout = B_ITEMS_IN_COLUMN;
data->FindInt32("_layout", (int32 *)&layout);
- InitData(layout);
+ _InitData(layout);
}
@@ -390,7 +390,7 @@ BMenuBar::StartMenuBar(int32 menuIndex, bool sticky, bool showMenu, BRect *speci
fMenuSem = create_sem(0, "window close sem");
_set_menu_sem_(window, fMenuSem);
- fTrackingPID = spawn_thread(TrackTask, "menu_tracking", B_DISPLAY_PRIORITY, NULL);
+ fTrackingPID = spawn_thread(_TrackTask, "menu_tracking", B_DISPLAY_PRIORITY, NULL);
if (fTrackingPID >= 0) {
menubar_data data;
data.menuBar = this;
@@ -412,21 +412,21 @@ BMenuBar::StartMenuBar(int32 menuIndex, bool sticky, bool showMenu, BRect *speci
}
-long
-BMenuBar::TrackTask(void *arg)
+/* static */
+int32
+BMenuBar::_TrackTask(void *arg)
{
menubar_data data;
thread_id id;
-
receive_data(&id, &data, sizeof(data));
-
+
BMenuBar *menuBar = data.menuBar;
if (data.useRect)
menuBar->fExtraRect = &data.rect;
menuBar->_SetStickyMode(data.sticky);
int32 action;
- menuBar->Track(&action, data.menuIndex, data.showMenu);
+ menuBar->_Track(&action, data.menuIndex, data.showMenu);
menuBar->fTracking = false;
menuBar->fExtraRect = NULL;
@@ -458,7 +458,7 @@ point_distance(const BPoint &pointA, const BPoint &pointB)
BMenuItem *
-BMenuBar::Track(int32 *action, int32 startIndex, bool showMenu)
+BMenuBar::_Track(int32 *action, int32 startIndex, bool showMenu)
{
// TODO: Cleanup, merge some "if" blocks if possible
fChosenItem = NULL;
@@ -588,7 +588,7 @@ BMenuBar::Track(int32 *action, int32 startIndex, bool showMenu)
if (fChosenItem != NULL)
fChosenItem->Invoke();
- RestoreFocus();
+ _RestoreFocus();
window->Unlock();
}
@@ -605,7 +605,7 @@ BMenuBar::Track(int32 *action, int32 startIndex, bool showMenu)
void
-BMenuBar::StealFocus()
+BMenuBar::_StealFocus()
{
// We already stole the focus, don't do anything
if (fPrevFocusToken != -1)
@@ -623,7 +623,7 @@ BMenuBar::StealFocus()
void
-BMenuBar::RestoreFocus()
+BMenuBar::_RestoreFocus()
{
BWindow *window = Window();
if (window != NULL && window->Lock()) {
@@ -644,7 +644,7 @@ BMenuBar::RestoreFocus()
void
-BMenuBar::InitData(menu_layout layout)
+BMenuBar::_InitData(menu_layout layout)
{
fLastBounds = new BRect(Bounds());
SetItemMargins(8, 2, 8, 2);