diff --git a/headers/os/interface/OptionControl.h b/headers/os/interface/OptionControl.h index 65966bd6f5..29a883e76a 100644 --- a/headers/os/interface/OptionControl.h +++ b/headers/os/interface/OptionControl.h @@ -1,19 +1,11 @@ -/******************************************************************************* -/ -/ File: OptionControl.h -/ -/ Description: A BOptionControl is an abstract interface for BControls that select -/ between a set of named values; the names are displayed to the user, but the -/ corresponding values are returned in Value(). -/ -/ Copyright 1997-99, Be Incorporated, All Rights Reserved -/ -*******************************************************************************/ +/* + * Copyright 2001-2007, Haiku, Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ -#if !defined(_OPTION_CONTROL_H) +#ifndef _OPTION_CONTROL_H #define _OPTION_CONTROL_H -#include #include enum { @@ -21,75 +13,54 @@ enum { }; -class BOptionControl : - public BControl -{ -public: +class BOptionControl : public BControl { + public: + BOptionControl(BRect frame, const char *name, const char *label, + BMessage *message, + uint32 resizeMask = B_FOLLOW_LEFT | B_FOLLOW_TOP, + uint32 flags = B_WILL_DRAW); + virtual ~BOptionControl(); - BOptionControl( - BRect frame, - const char * name, - const char * label, - BMessage * message, - uint32 resize = B_FOLLOW_LEFT | B_FOLLOW_TOP, - uint32 flags = B_WILL_DRAW); -virtual ~BOptionControl(); + virtual void MessageReceived(BMessage *message); -virtual void MessageReceived( - BMessage * message); + status_t AddOption(const char *name, int32 value); + virtual bool GetOptionAt(int32 index, const char **outName, + int32 *outValue) = 0; + virtual void RemoveOptionAt(int32 index) = 0; + virtual int32 CountOptions() const = 0; + virtual status_t AddOptionAt(const char *name, int32 value, + int32 index) = 0; + virtual int32 SelectedOption(const char **name = 0, + int32 *outValue = 0) const = 0; - status_t AddOption( - const char * name, - int32 value); -virtual bool GetOptionAt( - int32 index, - const char ** out_name, - int32 * out_value) = 0; -virtual void RemoveOptionAt( - int32 index) = 0; -virtual int32 CountOptions() const = 0; -virtual status_t AddOptionAt( - const char * name, - int32 value, - int32 index) = 0; -virtual int32 SelectedOption( // index >= 0 returned directly - const char ** name = 0, - int32 * value = 0) const = 0; + virtual status_t SelectOptionFor(int32 value); + virtual status_t SelectOptionFor(const char *name); -virtual status_t SelectOptionFor( - int32 value); -virtual status_t SelectOptionFor( - const char *name); -protected: + protected: + BMessage* MakeValueMessage(int32 value); - BMessage * MakeValueMessage( - int32 value); + private: + BOptionControl(); + BOptionControl(const BOptionControl &clone); + BOptionControl &operator=(const BOptionControl &clone); -private: - - BOptionControl(); /* private unimplemented */ - BOptionControl( - const BOptionControl & clone); - BOptionControl & operator=( - const BOptionControl & clone); - - /* Mmmh, stuffing! */ -virtual status_t _Reserved_OptionControl_0(void *, ...); -virtual status_t _Reserved_OptionControl_1(void *, ...); -virtual status_t _Reserved_OptionControl_2(void *, ...); -virtual status_t _Reserved_OptionControl_3(void *, ...); -virtual status_t _Reserved_OptionControl_4(void *, ...); -virtual status_t _Reserved_OptionControl_5(void *, ...); -virtual status_t _Reserved_OptionControl_6(void *, ...); -virtual status_t _Reserved_OptionControl_7(void *, ...); -virtual status_t _Reserved_OptionControl_8(void *, ...); -virtual status_t _Reserved_OptionControl_9(void *, ...); -virtual status_t _Reserved_OptionControl_10(void *, ...); -virtual status_t _Reserved_OptionControl_11(void *, ...); - - uint32 _reserved_selection_control_[8]; + virtual status_t _Reserved_OptionControl_0(void *, ...); + virtual status_t _Reserved_OptionControl_1(void *, ...); + virtual status_t _Reserved_OptionControl_2(void *, ...); + virtual status_t _Reserved_OptionControl_3(void *, ...); + virtual status_t _Reserved_OptionControl_4(void *, ...); + virtual status_t _Reserved_OptionControl_5(void *, ...); + virtual status_t _Reserved_OptionControl_6(void *, ...); + virtual status_t _Reserved_OptionControl_7(void *, ...); + virtual status_t _Reserved_OptionControl_8(void *, ...); + virtual status_t _Reserved_OptionControl_9(void *, ...); + virtual status_t _Reserved_OptionControl_10(void *, ...); + virtual status_t _Reserved_OptionControl_11(void *, ...); + + uint32 _reserved_selection_control_[8]; }; #endif /* _OPTION_CONTROL_H */ + diff --git a/headers/os/interface/OptionPopUp.h b/headers/os/interface/OptionPopUp.h index d9497e3925..987db3b0b0 100644 --- a/headers/os/interface/OptionPopUp.h +++ b/headers/os/interface/OptionPopUp.h @@ -1,105 +1,70 @@ -/******************************************************************************* -/ -/ File: OptionPopUp.h -/ -/ Description: A BOptionPopUp is a BControl that has a popup menu. -/ -/ Copyright 1997-99, Be Incorporated, All Rights Reserved -/ -*******************************************************************************/ +/* + * Copyright 2001-2007, Haiku, Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ - -#if !defined(_OPTION_POP_UP_H) +#ifndef _OPTION_POP_UP_H #define _OPTION_POP_UP_H #include class BMenuField; +class BOptionPopUp : public BOptionControl { + public: + BOptionPopUp(BRect frame, const char *name, const char *label, + BMessage *message, uint32 resizeMask = B_FOLLOW_LEFT | B_FOLLOW_TOP, + uint32 flags = B_WILL_DRAW); + BOptionPopUp(BRect frame, const char *name, const char *label, + BMessage *message, bool fixed, + uint32 resizeMask = B_FOLLOW_LEFT | B_FOLLOW_TOP, + uint32 flags = B_WILL_DRAW); + ~BOptionPopUp(); + + BMenuField* MenuField(); + + virtual bool GetOptionAt(int32 index, const char **outName, + int32 *outValue); + virtual void RemoveOptionAt(int32 index); + virtual int32 CountOptions() const; + virtual status_t AddOptionAt(const char *name, int32 value, + int32 index); + + virtual void AllAttached(); + virtual void MessageReceived(BMessage *message); + virtual void SetLabel(const char *text); + virtual void SetValue(int32 value); + virtual void SetEnabled(bool enabled); + virtual void GetPreferredSize(float *width, float *height); + virtual void ResizeToPreferred(); + + virtual int32 SelectedOption(const char **outName = 0, + int32 * outValue = 0) const; + private: + + BOptionPopUp(); + BOptionPopUp(const BOptionPopUp &clone); + BOptionPopUp &operator=(const BOptionPopUp &clone); + virtual status_t _Reserved_OptionControl_0(void *, ...); + virtual status_t _Reserved_OptionControl_1(void *, ...); + virtual status_t _Reserved_OptionControl_2(void *, ...); + virtual status_t _Reserved_OptionControl_3(void *, ...); -class BOptionPopUp : - public BOptionControl -{ -public: - BOptionPopUp( - BRect frame, - const char * name, - const char * label, - BMessage * message, - uint32 resize = B_FOLLOW_LEFT | B_FOLLOW_TOP, - uint32 flags = B_WILL_DRAW); - BOptionPopUp( - BRect frame, - const char * name, - const char * label, - BMessage * message, - bool fixed, - uint32 resize = B_FOLLOW_LEFT | B_FOLLOW_TOP, - uint32 flags = B_WILL_DRAW); - ~BOptionPopUp(); - - BMenuField * MenuField(); - -virtual bool GetOptionAt( - int32 index, - const char ** out_name, - int32 * out_value); -virtual void RemoveOptionAt( - int32 index); -virtual int32 CountOptions() const; -virtual status_t AddOptionAt( - const char * name, - int32 value, - int32 index); - -virtual void AllAttached(); -virtual void MessageReceived( - BMessage * message); -virtual void SetLabel( - const char *text); -virtual void SetValue( - int32 value); -virtual void SetEnabled( - bool on); -virtual void GetPreferredSize( - float *width, - float *height); -virtual void ResizeToPreferred(); -virtual int32 SelectedOption( - const char ** outName = 0, - int32 * outValue = 0) const; -private: - - BOptionPopUp(); /* private unimplemented */ - BOptionPopUp( - const BOptionPopUp & clone); - BOptionPopUp & operator=( - const BOptionPopUp & clone); - - /* Mmmh, stuffing! */ -virtual status_t _Reserved_OptionControl_0(void *, ...); -virtual status_t _Reserved_OptionControl_1(void *, ...); -virtual status_t _Reserved_OptionControl_2(void *, ...); -virtual status_t _Reserved_OptionControl_3(void *, ...); - /* Mmmh, stuffing! */ -virtual status_t _Reserved_OptionPopUp_0(void *, ...); -virtual status_t _Reserved_OptionPopUp_1(void *, ...); -virtual status_t _Reserved_OptionPopUp_2(void *, ...); -virtual status_t _Reserved_OptionPopUp_3(void *, ...); -virtual status_t _Reserved_OptionPopUp_4(void *, ...); -virtual status_t _Reserved_OptionPopUp_5(void *, ...); -virtual status_t _Reserved_OptionPopUp_6(void *, ...); -virtual status_t _Reserved_OptionPopUp_7(void *, ...); + virtual status_t _Reserved_OptionPopUp_0(void *, ...); + virtual status_t _Reserved_OptionPopUp_1(void *, ...); + virtual status_t _Reserved_OptionPopUp_2(void *, ...); + virtual status_t _Reserved_OptionPopUp_3(void *, ...); + virtual status_t _Reserved_OptionPopUp_4(void *, ...); + virtual status_t _Reserved_OptionPopUp_5(void *, ...); + virtual status_t _Reserved_OptionPopUp_6(void *, ...); + virtual status_t _Reserved_OptionPopUp_7(void *, ...); - BMenuField * _mField; - uint32 _reserved_menu_control_[8]; - + BMenuField* fMenuField; + uint32 _reserved_menu_control_[8]; }; - - - #endif /* _OPTION_POP_UP_H */ + diff --git a/src/kits/interface/OptionPopUp.cpp b/src/kits/interface/OptionPopUp.cpp index 837776a7e9..60bb8e1eca 100644 --- a/src/kits/interface/OptionPopUp.cpp +++ b/src/kits/interface/OptionPopUp.cpp @@ -1,9 +1,9 @@ /* - * Copyright 2003-2005, Haiku, Inc. + * Copyright 2003-2007, Haiku, Inc. * Distributed under the terms of the MIT license. * * Authors: - * Stefano Ceccherini (burton666@libero.it) + * Stefano Ceccherini */ @@ -38,8 +38,8 @@ BOptionPopUp::BOptionPopUp(BRect frame, const char *name, const char *label, : BOptionControl(frame, name, label, message, resize, flags) { BPopUpMenu *popUp = new BPopUpMenu(label, true, true); - _mField = new BMenuField(Bounds(), "_menu", label, popUp); - AddChild(_mField); + fMenuField = new BMenuField(Bounds(), "_menu", label, popUp); + AddChild(fMenuField); } @@ -58,8 +58,8 @@ BOptionPopUp::BOptionPopUp(BRect frame, const char *name, const char *label, : BOptionControl(frame, name, label, message, resize, flags) { BPopUpMenu *popUp = new BPopUpMenu(label, true, true); - _mField = new BMenuField(Bounds(), "_menu", label, popUp, fixed); - AddChild(_mField); + fMenuField = new BMenuField(Bounds(), "_menu", label, popUp, fixed); + AddChild(fMenuField); } @@ -74,7 +74,7 @@ BOptionPopUp::~BOptionPopUp() BMenuField * BOptionPopUp::MenuField() { - return _mField; + return fMenuField; } @@ -91,7 +91,7 @@ bool BOptionPopUp::GetOptionAt(int32 index, const char **outName, int32 *outValue) { bool result = false; - BMenu *menu = _mField->Menu(); + BMenu *menu = fMenuField->Menu(); if (menu != NULL) { BMenuItem *item = menu->ItemAt(index); @@ -115,7 +115,7 @@ BOptionPopUp::GetOptionAt(int32 index, const char **outName, int32 *outValue) void BOptionPopUp::RemoveOptionAt(int32 index) { - BMenu *menu = _mField->Menu(); + BMenu *menu = fMenuField->Menu(); if (menu != NULL) { BMenuItem *item = menu->ItemAt(index); if (item != NULL) { @@ -131,7 +131,7 @@ BOptionPopUp::RemoveOptionAt(int32 index) int32 BOptionPopUp::CountOptions() const { - BMenu *menu = _mField->Menu(); + BMenu *menu = fMenuField->Menu(); return (menu != NULL) ? menu->CountItems() : 0; } @@ -147,7 +147,7 @@ BOptionPopUp::CountOptions() const status_t BOptionPopUp::AddOptionAt(const char *name, int32 value, int32 index) { - BMenu *menu = _mField->Menu(); + BMenu *menu = fMenuField->Menu(); if (menu == NULL) return B_ERROR; @@ -182,10 +182,10 @@ BOptionPopUp::AddOptionAt(const char *name, int32 value, int32 index) void BOptionPopUp::AllAttached() { - BMenu *menu = _mField->Menu(); + BMenu *menu = fMenuField->Menu(); if (menu != NULL) { - float labelWidth = _mField->StringWidth(_mField->Label()); - _mField->SetDivider(labelWidth + kLabelSpace); + float labelWidth = fMenuField->StringWidth(fMenuField->Label()); + fMenuField->SetDivider(labelWidth + kLabelSpace); menu->SetTargetForItems(this); } } @@ -205,11 +205,11 @@ void BOptionPopUp::SetLabel(const char *text) { BControl::SetLabel(text); - _mField->SetLabel(text); + fMenuField->SetLabel(text); // We are not sure the menu can keep the whole // string as label, so we ask it what label it's got - float newWidth = _mField->StringWidth(_mField->Label()); - _mField->SetDivider(newWidth + kLabelSpace); + float newWidth = fMenuField->StringWidth(fMenuField->Label()); + fMenuField->SetDivider(newWidth + kLabelSpace); } @@ -221,7 +221,7 @@ void BOptionPopUp::SetValue(int32 value) { BControl::SetValue(value); - BMenu *menu = _mField->Menu(); + BMenu *menu = fMenuField->Menu(); if (menu == NULL) return; @@ -267,7 +267,7 @@ BOptionPopUp::GetPreferredSize(float* _width, float* _height) // Calculate control's height, looking at the BMenuField font's height if (_height != NULL) { font_height fontHeight; - _mField->GetFontHeight(&fontHeight); + fMenuField->GetFontHeight(&fontHeight); *_height = fontHeight.ascent + fontHeight.descent + fontHeight.leading + kHeightModifier; @@ -275,7 +275,7 @@ BOptionPopUp::GetPreferredSize(float* _width, float* _height) if (_width != NULL) { float maxWidth = 0; - BMenu *menu = _mField->Menu(); + BMenu *menu = fMenuField->Menu(); if (menu == NULL) return; @@ -291,7 +291,7 @@ BOptionPopUp::GetPreferredSize(float* _width, float* _height) } } - maxWidth += _mField->StringWidth(BControl::Label()) + kLabelSpace + kWidthModifier; + maxWidth += fMenuField->StringWidth(BControl::Label()) + kLabelSpace + kWidthModifier; *_width = maxWidth; } } @@ -309,8 +309,8 @@ BOptionPopUp::ResizeToPreferred() GetPreferredSize(&width, &height); ResizeTo(width, height); - float newWidth = _mField->StringWidth(BControl::Label()); - _mField->SetDivider(newWidth + kLabelSpace); + float newWidth = fMenuField->StringWidth(BControl::Label()); + fMenuField->SetDivider(newWidth + kLabelSpace); } @@ -322,7 +322,7 @@ BOptionPopUp::ResizeToPreferred() int32 BOptionPopUp::SelectedOption(const char **outName, int32 *outValue) const { - BMenu *menu = _mField->Menu(); + BMenu *menu = fMenuField->Menu(); if (menu != NULL) { BMenuItem *marked = menu->FindMarked(); if (marked != NULL) {