summaryrefslogtreecommitdiff
path: root/vcl/aqua/inc/salmenu.h
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2008-08-18 12:28:27 +0000
committerVladimir Glazounov <vg@openoffice.org>2008-08-18 12:28:27 +0000
commit909e908f0b0d4b73b01af25cf7c474a4e445ed5e (patch)
treee03e299b0c78dfb09350bc1eb7c0e0815451b694 /vcl/aqua/inc/salmenu.h
parent1db5140edd12e5d5232241362f4b205989ac61a2 (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.h42
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