diff options
author | Vladimir Glazounov <vg@openoffice.org> | 2008-08-18 12:28:27 +0000 |
---|---|---|
committer | Vladimir Glazounov <vg@openoffice.org> | 2008-08-18 12:28:27 +0000 |
commit | 909e908f0b0d4b73b01af25cf7c474a4e445ed5e (patch) | |
tree | e03e299b0c78dfb09350bc1eb7c0e0815451b694 /vcl/aqua/inc/salmenu.h | |
parent | 1db5140edd12e5d5232241362f4b205989ac61a2 (diff) |
INTEGRATION: CWS aquaupdateicon (1.10.42); FILE MERGED
2008/07/31 13:55:06 pl 1.10.42.3: #i92043# refactor for tiger, which has problems with NSStatusItems at exit, so use one and only one
2008/07/30 12:17:58 pl 1.10.42.2: #i92043# implement native menu buttons
2008/07/29 17:39:18 pl 1.10.42.1: #i92043# add: native menubar add buttons
Diffstat (limited to 'vcl/aqua/inc/salmenu.h')
-rw-r--r-- | vcl/aqua/inc/salmenu.h | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/vcl/aqua/inc/salmenu.h b/vcl/aqua/inc/salmenu.h index 94558796abf6..e48c8fcae863 100644 --- a/vcl/aqua/inc/salmenu.h +++ b/vcl/aqua/inc/salmenu.h @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: salmenu.h,v $ - * $Revision: 1.10 $ + * $Revision: 1.11 $ * * This file is part of OpenOffice.org. * @@ -45,6 +45,25 @@ class AquaSalMenuItem; class AquaSalMenu : public SalMenu { + std::vector< AquaSalMenuItem* > maItems; + +public: // for OOStatusView + struct MenuBarButtonEntry + { + SalMenuButtonItem maButton; + NSImage* mpNSImage; // cached image + NSString* mpToolTipString; + + MenuBarButtonEntry() : mpNSImage( nil ), mpToolTipString( nil ) {} + MenuBarButtonEntry( const SalMenuButtonItem& i_rItem ) + : maButton( i_rItem), mpNSImage( nil ), mpToolTipString( nil ) {} + }; +private: + std::vector< MenuBarButtonEntry > maButtons; + + MenuBarButtonEntry* findButtonItem( USHORT i_nItemId ); + void releaseButtonEntry( MenuBarButtonEntry& i_rEntry ); + static void statusLayout(); public: AquaSalMenu( bool bMenuBar ); virtual ~AquaSalMenu(); @@ -62,7 +81,10 @@ public: virtual void SetItemImage( unsigned nPos, SalMenuItem* pSalMenuItem, const Image& rImage); virtual void SetAccelerator( unsigned nPos, SalMenuItem* pSalMenuItem, const KeyCode& rKeyCode, const XubString& rKeyName ); virtual void GetSystemMenuData( SystemMenuData* pData ); - virtual BOOL ShowNativePopupMenu(FloatingWindow * pWin, const Rectangle& rRect, ULONG nFlags); + virtual bool ShowNativePopupMenu(FloatingWindow * pWin, const Rectangle& rRect, ULONG nFlags); + virtual bool AddMenuBarButton( const SalMenuButtonItem& ); + virtual void RemoveMenuBarButton( USHORT nId ); + virtual Rectangle GetMenuBarButtonRectPixel( USHORT i_nItemId, SalFrame* i_pReferenceFrame ); int getItemIndexByPos( USHORT nPos ) const; const AquaSalFrame* getFrame() const; @@ -74,6 +96,8 @@ public: static void addFallbackMenuItem( NSMenuItem* NewItem ); static void removeFallbackMenuItem( NSMenuItem* pOldItem ); + const std::vector< MenuBarButtonEntry >& getButtons() const { return maButtons; } + bool mbMenuBar; // true - Menubar, false - Menu NSMenu* mpMenu; // The Carbon reference to this menu Menu* mpVCLMenu; // the corresponding vcl Menu object @@ -82,7 +106,19 @@ public: static const AquaSalMenu* pCurrentMenuBar; - std::vector< AquaSalMenuItem* > maItems; +}; + +class AquaSalMenuItem : public SalMenuItem +{ +public: + AquaSalMenuItem( const SalItemParams* ); + virtual ~AquaSalMenuItem(); + + USHORT mnId; // Item ID + Menu* mpVCLMenu; // VCL Menu into which this MenuItem is inserted + AquaSalMenu* mpParentMenu; // The menu in which this menu item is inserted + AquaSalMenu* mpSubMenu; // Sub menu of this item (if defined) + NSMenuItem* mpMenuItem; // The NSMenuItem }; #endif // _SV_SALMENU_H |