141281cf3SAxel Dörfler /* 241281cf3SAxel Dörfler Open Tracker License 341281cf3SAxel Dörfler 441281cf3SAxel Dörfler Terms and Conditions 541281cf3SAxel Dörfler 641281cf3SAxel Dörfler Copyright (c) 1991-2000, Be Incorporated. All rights reserved. 741281cf3SAxel Dörfler 841281cf3SAxel Dörfler Permission is hereby granted, free of charge, to any person obtaining a copy of 941281cf3SAxel Dörfler this software and associated documentation files (the "Software"), to deal in 1041281cf3SAxel Dörfler the Software without restriction, including without limitation the rights to 1141281cf3SAxel Dörfler use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 1241281cf3SAxel Dörfler of the Software, and to permit persons to whom the Software is furnished to do 1341281cf3SAxel Dörfler so, subject to the following conditions: 1441281cf3SAxel Dörfler 1541281cf3SAxel Dörfler The above copyright notice and this permission notice applies to all licensees 1641281cf3SAxel Dörfler and shall be included in all copies or substantial portions of the Software. 1741281cf3SAxel Dörfler 1841281cf3SAxel Dörfler THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1941281cf3SAxel Dörfler IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF TITLE, MERCHANTABILITY, 2041281cf3SAxel Dörfler FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 2141281cf3SAxel Dörfler BE INCORPORATED BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 2241281cf3SAxel Dörfler AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION 2341281cf3SAxel Dörfler WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2441281cf3SAxel Dörfler 2541281cf3SAxel Dörfler Except as contained in this notice, the name of Be Incorporated shall not be 2641281cf3SAxel Dörfler used in advertising or otherwise to promote the sale, use or other dealings in 2741281cf3SAxel Dörfler this Software without prior written authorization from Be Incorporated. 2841281cf3SAxel Dörfler 291687edd0SFredrik Holmqvist Tracker(TM), Be(R), BeOS(R), and BeIA(TM) are trademarks or registered 301687edd0SFredrik Holmqvist trademarks of Be Incorporated in the United States and other countries. Other 311687edd0SFredrik Holmqvist brand product names are registered trademarks or trademarks of their respective 321687edd0SFredrik Holmqvist holders. 3341281cf3SAxel Dörfler All rights reserved. 3441281cf3SAxel Dörfler */ 359f339a00SJohn Scipione #ifndef TEAM_MENU_ITEM_H 369f339a00SJohn Scipione #define TEAM_MENU_ITEM_H 3741281cf3SAxel Dörfler 381cd61330SJohn Scipione 3941281cf3SAxel Dörfler // Individual team/application listing 4041281cf3SAxel Dörfler // item for TeamMenu in mini/vertical mode 4141281cf3SAxel Dörfler // item for ExpandoMenuBar in vertical or horizontal expanded mode 4241281cf3SAxel Dörfler 431cd61330SJohn Scipione 44c9363f78SJohn Scipione #include "TruncatableMenuItem.h" 4541281cf3SAxel Dörfler 4641281cf3SAxel Dörfler 4741281cf3SAxel Dörfler class BBitmap; 48c9363f78SJohn Scipione class TBarView; 49c9363f78SJohn Scipione class TWindowMenuItem; 5041281cf3SAxel Dörfler 51c9363f78SJohn Scipione class TTeamMenuItem : public TTruncatableMenuItem { 5241281cf3SAxel Dörfler public: 535b0fd10dSJohn Scipione TTeamMenuItem(BList* team, BBitmap* icon, 54c9363f78SJohn Scipione char* name, char* 55c9363f78SJohn Scipione nature, 5618bcf77aSJohn Scipione float width = -1.0f, float height = -1.0f); 575b0fd10dSJohn Scipione TTeamMenuItem(float width = -1.0f, 5818bcf77aSJohn Scipione float height = -1.0f); 5941281cf3SAxel Dörfler virtual ~TTeamMenuItem(); 6041281cf3SAxel Dörfler 615e625eadSJohn Scipione status_t Invoke(BMessage* message = NULL); 6241281cf3SAxel Dörfler 63c9d2a320SJohn Scipione void SetOverrideWidth(float width) 64c9d2a320SJohn Scipione { fOverrideWidth = width; }; 65c9d2a320SJohn Scipione void SetOverrideHeight(float height) 66c9d2a320SJohn Scipione { fOverrideHeight = height; }; 67249a4a18SStephan Aßmus void SetOverrideSelected(bool selected); 681f0c9f18SJohn Scipione 69c9d2a320SJohn Scipione int32 ArrowDirection() const 70c9d2a320SJohn Scipione { return fArrowDirection; }; 71c9d2a320SJohn Scipione void SetArrowDirection(int32 direction) 72c9d2a320SJohn Scipione { fArrowDirection = direction; }; 731dccb7aaSJohn Scipione 74c9d2a320SJohn Scipione BBitmap* Icon() const { return fIcon; }; 75c9d2a320SJohn Scipione void SetIcon(BBitmap* icon); 7641281cf3SAxel Dörfler 771dccb7aaSJohn Scipione bool IsExpanded() const { return fExpanded; }; 7841281cf3SAxel Dörfler void ToggleExpandState(bool resizeWindow); 79*6b65d934SJohn Scipione 8041281cf3SAxel Dörfler BRect ExpanderBounds() const; 8141281cf3SAxel Dörfler TWindowMenuItem* ExpandedWindowItem(int32 id); 8241281cf3SAxel Dörfler 831dccb7aaSJohn Scipione float LabelWidth() const { return fLabelWidth; }; 841dccb7aaSJohn Scipione BList* Teams() const { return fTeam; }; 85c9363f78SJohn Scipione const char* Signature() const { return fSignature; }; 861dccb7aaSJohn Scipione const char* Name() const { return fName; }; 8741281cf3SAxel Dörfler 8841281cf3SAxel Dörfler protected: 8941281cf3SAxel Dörfler void GetContentSize(float* width, float* height); 9041281cf3SAxel Dörfler void Draw(); 9141281cf3SAxel Dörfler void DrawContent(); 921dccb7aaSJohn Scipione void DrawExpanderArrow(); 9341281cf3SAxel Dörfler 9441281cf3SAxel Dörfler private: 9541281cf3SAxel Dörfler friend class TExpandoMenuBar; 965b0fd10dSJohn Scipione void _InitData(BList* team, BBitmap* icon, 97c9363f78SJohn Scipione char* name, char* signature, 9818bcf77aSJohn Scipione float width = -1.0f, float height = -1.0f); 9941281cf3SAxel Dörfler 100249a4a18SStephan Aßmus bool _IsSelected() const; 101249a4a18SStephan Aßmus 1025b0fd10dSJohn Scipione private: 10341281cf3SAxel Dörfler BList* fTeam; 10441281cf3SAxel Dörfler BBitmap* fIcon; 10541281cf3SAxel Dörfler char* fName; 106c9363f78SJohn Scipione char* fSignature; 107*6b65d934SJohn Scipione 10841281cf3SAxel Dörfler float fOverrideWidth; 10941281cf3SAxel Dörfler float fOverrideHeight; 11041281cf3SAxel Dörfler 1111dccb7aaSJohn Scipione TBarView* fBarView; 1121dccb7aaSJohn Scipione float fLabelWidth; 1131dccb7aaSJohn Scipione float fLabelAscent; 1141dccb7aaSJohn Scipione float fLabelDescent; 1151dccb7aaSJohn Scipione 116249a4a18SStephan Aßmus bool fOverriddenSelected; 1171dccb7aaSJohn Scipione 1181dccb7aaSJohn Scipione bool fExpanded; 1191dccb7aaSJohn Scipione int32 fArrowDirection; 12041281cf3SAxel Dörfler }; 12141281cf3SAxel Dörfler 12271bd3ba5SJonas Sundström 1239f339a00SJohn Scipione #endif // TEAM_MENU_ITEM_H 124