From 6eb37bdef7e1cfdb94a7aca824ef1301a5a9c585 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Wed, 26 Aug 2009 12:22:10 +0000 Subject: [PATCH] * Copyright fixed * Indentation updated. * Better grouping of methods. +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32702 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/os/interface/MenuBar.h | 154 +++++++++---------- src/kits/interface/MenuBar.cpp | 260 ++++++++++++++++++--------------- 2 files changed, 222 insertions(+), 192 deletions(-) diff --git a/headers/os/interface/MenuBar.h b/headers/os/interface/MenuBar.h index cab4b01dc8..bf6f21a73c 100644 --- a/headers/os/interface/MenuBar.h +++ b/headers/os/interface/MenuBar.h @@ -1,10 +1,11 @@ /* - * Copyright 2003-2007, Haiku, Inc. All Rights Reserved. - * Distributed under the terms of the MIT License. + * Copyright 2003-2009, Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT license. */ #ifndef _MENU_BAR_H #define _MENU_BAR_H + #include #include #include @@ -24,87 +25,92 @@ class BMenuField; 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(); +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* archive); + virtual ~BMenuBar(); - static BArchivable* Instantiate(BMessage *data); - virtual status_t Archive(BMessage *data, bool deep = true) const; + static BArchivable* Instantiate(BMessage* archive); + virtual status_t Archive(BMessage* archive, + 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 *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 AttachedToWindow(); + virtual void DetachedFromWindow(); + virtual void AllAttached(); + virtual void AllDetached(); + + virtual void WindowActivated(bool state); + virtual void MakeFocus(bool state = true); + + virtual void ResizeToPreferred(); + virtual void GetPreferredSize(float* _width, + float* _height); + virtual BSize MinSize(); + virtual BSize MaxSize(); + virtual BSize PreferredSize(); + virtual void FrameMoved(BPoint newPosition); + virtual void FrameResized(float newWidth, float newHeight); + + virtual void Show(); + virtual void Hide(); + + virtual void Draw(BRect updateRect); + + virtual void MessageReceived(BMessage *message); + virtual void MouseDown(BPoint where); + virtual void MouseUp(BPoint where); + + virtual BHandler* ResolveSpecifier(BMessage* message, + int32 index, BMessage* specifier, + int32 form, const char* property); + virtual status_t GetSupportedSuites(BMessage* data); + + virtual void SetBorder(menu_bar_border border); + menu_bar_border Border() const; - virtual void Show(); - virtual void Hide(); + virtual status_t Perform(perform_code code, void* data); - virtual BHandler* ResolveSpecifier(BMessage *message, int32 index, - BMessage *specifier, int32 form, - const char *property); - virtual status_t GetSupportedSuites(BMessage *data); +private: + friend class BWindow; + friend class BMenuField; + friend class BMenu; - virtual void ResizeToPreferred(); - virtual void GetPreferredSize(float *width, float *height); - virtual void MakeFocus(bool state = true); - virtual void AllAttached(); - virtual void AllDetached(); - + virtual void _ReservedMenuBar1(); + virtual void _ReservedMenuBar2(); + virtual void _ReservedMenuBar3(); + virtual void _ReservedMenuBar4(); - // layout related - virtual BSize MinSize(); - virtual BSize MaxSize(); - virtual BSize PreferredSize(); + BMenuBar &operator=(const BMenuBar &); - virtual status_t Perform(perform_code code, void *arg); + // 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); - private: - friend class BWindow; - friend class BMenuField; - friend class BMenu; + menu_bar_border fBorder; + thread_id fTrackingPID; + int32 fPrevFocusToken; + sem_id fMenuSem; + BRect* fLastBounds; + uint32 _reserved[2]; - virtual void _ReservedMenuBar1(); - virtual void _ReservedMenuBar2(); - virtual void _ReservedMenuBar3(); - virtual void _ReservedMenuBar4(); - - BMenuBar &operator=(const BMenuBar &); - - // 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); - - menu_bar_border fBorder; - thread_id fTrackingPID; - int32 fPrevFocusToken; - sem_id fMenuSem; - BRect* fLastBounds; - uint32 _reserved[2]; // was 3 - - bool fTracking; + bool fTracking; }; diff --git a/src/kits/interface/MenuBar.cpp b/src/kits/interface/MenuBar.cpp index 2926acb7ac..51e6563803 100644 --- a/src/kits/interface/MenuBar.cpp +++ b/src/kits/interface/MenuBar.cpp @@ -1,6 +1,6 @@ /* - * Copyright 2001-2009, Haiku, Inc. - * Distributed under the terms of the MIT License. + * Copyright 2001-2009, Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT license. * * Authors: * Marc Flerackers (mflerackers@androme.be) @@ -133,17 +133,140 @@ BMenuBar::Archive(BMessage* data, bool deep) const } +// #pragma mark - + + void -BMenuBar::SetBorder(menu_bar_border border) +BMenuBar::AttachedToWindow() { - fBorder = border; + _Install(Window()); + Window()->SetKeyMenuBar(this); + + BMenu::AttachedToWindow(); + + *fLastBounds = Bounds(); } -menu_bar_border -BMenuBar::Border() const +void +BMenuBar::DetachedFromWindow() { - return fBorder; + BMenu::DetachedFromWindow(); +} + + +void +BMenuBar::AllAttached() +{ + BMenu::AllAttached(); +} + + +void +BMenuBar::AllDetached() +{ + BMenu::AllDetached(); +} + + +void +BMenuBar::WindowActivated(bool state) +{ + BView::WindowActivated(state); +} + + +void +BMenuBar::MakeFocus(bool state) +{ + BMenu::MakeFocus(state); +} + + +// #pragma mark - + + +void +BMenuBar::ResizeToPreferred() +{ + BMenu::ResizeToPreferred(); +} + + +void +BMenuBar::GetPreferredSize(float* width, float* height) +{ + BMenu::GetPreferredSize(width, height); +} + + +BSize +BMenuBar::MinSize() +{ + return BMenu::MinSize(); +} + + +BSize +BMenuBar::MaxSize() +{ + BSize size = BMenu::MaxSize(); + return BLayoutUtils::ComposeSize(ExplicitMaxSize(), + BSize(B_SIZE_UNLIMITED, size.height)); +} + + +BSize +BMenuBar::PreferredSize() +{ + return BMenu::PreferredSize(); +} + + +void +BMenuBar::FrameMoved(BPoint newPosition) +{ + BMenu::FrameMoved(newPosition); +} + + +void +BMenuBar::FrameResized(float newWidth, float newHeight) +{ + // invalidate right border + if (newWidth != fLastBounds->Width()) { + BRect rect(min_c(fLastBounds->right, newWidth), 0, + max_c(fLastBounds->right, newWidth), newHeight); + Invalidate(rect); + } + + // invalidate bottom border + if (newHeight != fLastBounds->Height()) { + BRect rect(0, min_c(fLastBounds->bottom, newHeight) - 1, + newWidth, max_c(fLastBounds->bottom, newHeight)); + Invalidate(rect); + } + + fLastBounds->Set(0, 0, newWidth, newHeight); + + BMenu::FrameResized(newWidth, newHeight); +} + + +// #pragma mark - + + +void +BMenuBar::Show() +{ + BView::Show(); +} + + +void +BMenuBar::Hide() +{ + BView::Hide(); } @@ -198,23 +321,7 @@ BMenuBar::Draw(BRect updateRect) } -void -BMenuBar::AttachedToWindow() -{ - _Install(Window()); - Window()->SetKeyMenuBar(this); - - BMenu::AttachedToWindow(); - - *fLastBounds = Bounds(); -} - - -void -BMenuBar::DetachedFromWindow() -{ - BMenu::DetachedFromWindow(); -} +// #pragma mark - void @@ -240,13 +347,6 @@ BMenuBar::MouseDown(BPoint where) } -void -BMenuBar::WindowActivated(bool state) -{ - BView::WindowActivated(state); -} - - void BMenuBar::MouseUp(BPoint where) { @@ -254,48 +354,7 @@ BMenuBar::MouseUp(BPoint where) } -void -BMenuBar::FrameMoved(BPoint newPosition) -{ - BMenu::FrameMoved(newPosition); -} - - -void -BMenuBar::FrameResized(float newWidth, float newHeight) -{ - // invalidate right border - if (newWidth != fLastBounds->Width()) { - BRect rect(min_c(fLastBounds->right, newWidth), 0, - max_c(fLastBounds->right, newWidth), newHeight); - Invalidate(rect); - } - - // invalidate bottom border - if (newHeight != fLastBounds->Height()) { - BRect rect(0, min_c(fLastBounds->bottom, newHeight) - 1, - newWidth, max_c(fLastBounds->bottom, newHeight)); - Invalidate(rect); - } - - fLastBounds->Set(0, 0, newWidth, newHeight); - - BMenu::FrameResized(newWidth, newHeight); -} - - -void -BMenuBar::Show() -{ - BView::Show(); -} - - -void -BMenuBar::Hide() -{ - BView::Hide(); -} +// #pragma mark - BHandler* @@ -313,39 +372,24 @@ BMenuBar::GetSupportedSuites(BMessage* data) } -void -BMenuBar::ResizeToPreferred() -{ - BMenu::ResizeToPreferred(); -} +// #pragma mark - void -BMenuBar::GetPreferredSize(float* width, float* height) +BMenuBar::SetBorder(menu_bar_border border) { - BMenu::GetPreferredSize(width, height); + fBorder = border; } -void -BMenuBar::MakeFocus(bool state) +menu_bar_border +BMenuBar::Border() const { - BMenu::MakeFocus(state); + return fBorder; } -void -BMenuBar::AllAttached() -{ - BMenu::AllAttached(); -} - - -void -BMenuBar::AllDetached() -{ - BMenu::AllDetached(); -} +// #pragma mark - status_t @@ -404,29 +448,6 @@ BMenuBar::Perform(perform_code code, void* _data) } -BSize -BMenuBar::MinSize() -{ - return BMenu::MinSize(); -} - - -BSize -BMenuBar::MaxSize() -{ - BSize size = BMenu::MaxSize(); - return BLayoutUtils::ComposeSize(ExplicitMaxSize(), - BSize(B_SIZE_UNLIMITED, size.height)); -} - - -BSize -BMenuBar::PreferredSize() -{ - return BMenu::PreferredSize(); -} - - // #pragma mark - @@ -443,6 +464,9 @@ BMenuBar::operator=(const BMenuBar &) } +// #pragma mark - + + void BMenuBar::StartMenuBar(int32 menuIndex, bool sticky, bool showMenu, BRect* specialRect)