1f8e07b45SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3f8e07b45SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4f8e07b45SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5f8e07b45SAndrew Rist  * distributed with this work for additional information
6f8e07b45SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7f8e07b45SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8f8e07b45SAndrew Rist  * "License"); you may not use this file except in compliance
9f8e07b45SAndrew Rist  * with the License.  You may obtain a copy of the License at
10f8e07b45SAndrew Rist  *
11f8e07b45SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12f8e07b45SAndrew Rist  *
13f8e07b45SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14f8e07b45SAndrew Rist  * software distributed under the License is distributed on an
15f8e07b45SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16f8e07b45SAndrew Rist  * KIND, either express or implied.  See the License for the
17f8e07b45SAndrew Rist  * specific language governing permissions and limitations
18f8e07b45SAndrew Rist  * under the License.
19f8e07b45SAndrew Rist  *
20f8e07b45SAndrew Rist  *************************************************************/
21f8e07b45SAndrew Rist 
22f8e07b45SAndrew Rist 
23cdf0e10cSrcweir #ifndef __FRAMEWORK_CLASSES_ADDONSOPTIONS_HXX_
24cdf0e10cSrcweir #define __FRAMEWORK_CLASSES_ADDONSOPTIONS_HXX_
25cdf0e10cSrcweir 
26cdf0e10cSrcweir //_________________________________________________________________________________________________________________
27cdf0e10cSrcweir //  includes
28cdf0e10cSrcweir //_________________________________________________________________________________________________________________
29cdf0e10cSrcweir 
30cdf0e10cSrcweir #include <sal/types.h>
31cdf0e10cSrcweir #include <osl/mutex.hxx>
32cdf0e10cSrcweir #include <vcl/image.hxx>
33cdf0e10cSrcweir #include <vcl/bitmap.hxx>
34cdf0e10cSrcweir #include <vcl/svapp.hxx>
35cdf0e10cSrcweir #include <com/sun/star/uno/Sequence.h>
36cdf0e10cSrcweir #include <com/sun/star/beans/PropertyValue.hpp>
37cdf0e10cSrcweir #include <framework/fwedllapi.h>
38cdf0e10cSrcweir //_________________________________________________________________________________________________________________
39cdf0e10cSrcweir //  types, enums, ...
40cdf0e10cSrcweir //_________________________________________________________________________________________________________________
41cdf0e10cSrcweir 
42cdf0e10cSrcweir /*-************************************************************************************************************//**
43cdf0e10cSrcweir     @descr          The method GetAddonsMenu() returns a list of property values.
44*07a3d7f1SPedro Giffuni                     Use follow defines to separate values by names.
45cdf0e10cSrcweir *//*-*************************************************************************************************************/
46cdf0e10cSrcweir #define ADDONSMENUITEM_STRING_URL                       "URL"
47cdf0e10cSrcweir #define ADDONSMENUITEM_STRING_TITLE                     "Title"
48cdf0e10cSrcweir #define ADDONSMENUITEM_STRING_TARGET                    "Target"
49cdf0e10cSrcweir #define ADDONSMENUITEM_STRING_IMAGEIDENTIFIER           "ImageIdentifier"
50cdf0e10cSrcweir #define ADDONSMENUITEM_STRING_CONTEXT                   "Context"
51cdf0e10cSrcweir #define ADDONSMENUITEM_STRING_SUBMENU                   "Submenu"
52cdf0e10cSrcweir #define ADDONSMENUITEM_STRING_CONTROLTYPE               "ControlType"
53cdf0e10cSrcweir #define ADDONSMENUITEM_STRING_WIDTH                     "Width"
54cdf0e10cSrcweir 
55fdaa53dfSAriel Constenla-Haile #define STATUSBARITEM_STRING_ALIGN                      "Alignment"
56fdaa53dfSAriel Constenla-Haile #define STATUSBARITEM_STRING_AUTOSIZE                   "AutoSize"
57fdaa53dfSAriel Constenla-Haile #define STATUSBARITEM_STRING_OWNERDRAW                  "OwnerDraw"
58fdaa53dfSAriel Constenla-Haile 
59cdf0e10cSrcweir #define ADDONSMENUITEM_URL_LEN                          3
60cdf0e10cSrcweir #define ADDONSMENUITEM_TITLE_LEN                        5
61cdf0e10cSrcweir #define ADDONSMENUITEM_TARGET_LEN                       6
62cdf0e10cSrcweir #define ADDONSMENUITEM_SUBMENU_LEN                      7
63cdf0e10cSrcweir #define ADDONSMENUITEM_CONTEXT_LEN                      7
64cdf0e10cSrcweir #define ADDONSMENUITEM_IMAGEIDENTIFIER_LEN              15
65cdf0e10cSrcweir 
66cdf0e10cSrcweir #define ADDONSMENUITEM_PROPERTYNAME_URL                 ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ADDONSMENUITEM_STRING_URL             ))
67cdf0e10cSrcweir #define ADDONSMENUITEM_PROPERTYNAME_TITLE               ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ADDONSMENUITEM_STRING_TITLE           ))
68cdf0e10cSrcweir #define ADDONSMENUITEM_PROPERTYNAME_TARGET              ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ADDONSMENUITEM_STRING_TARGET          ))
69cdf0e10cSrcweir #define ADDONSMENUITEM_PROPERTYNAME_IMAGEIDENTIFIER     ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ADDONSMENUITEM_STRING_IMAGEIDENTIFIER ))
70cdf0e10cSrcweir #define ADDONSMENUITEM_PROPERTYNAME_CONTEXT             ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ADDONSMENUITEM_STRING_CONTEXT         ))
71cdf0e10cSrcweir #define ADDONSMENUITEM_PROPERTYNAME_SUBMENU             ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ADDONSMENUITEM_STRING_SUBMENU         ))
72cdf0e10cSrcweir #define ADDONSMENUITEM_PROPERTYNAME_CONTROLTYPE         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ADDONSMENUITEM_STRING_CONTROLTYPE     ))
73cdf0e10cSrcweir #define ADDONSMENUITEM_PROPERTYNAME_WIDTH               ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ADDONSMENUITEM_STRING_WIDTH           ))
74cdf0e10cSrcweir 
75fdaa53dfSAriel Constenla-Haile #define STATUSBARITEM_PROPERTYNAME_ALIGN                ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(STATUSBARITEM_STRING_ALIGN            ))
76fdaa53dfSAriel Constenla-Haile #define STATUSBARITEM_PROPERTYNAME_AUTOSIZE             ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(STATUSBARITEM_STRING_AUTOSIZE         ))
77fdaa53dfSAriel Constenla-Haile #define STATUSBARITEM_PROPERTYNAME_OWNERDRAW            ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(STATUSBARITEM_STRING_OWNERDRAW        ))
78fdaa53dfSAriel Constenla-Haile 
79cdf0e10cSrcweir #define ADDONSPOPUPMENU_URL_PREFIX_STR                  "private:menu/Addon"
80cdf0e10cSrcweir 
81cdf0e10cSrcweir #define ADDONSPOPUPMENU_URL_PREFIX                      ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( ADDONSPOPUPMENU_URL_PREFIX_STR ))
82cdf0e10cSrcweir 
83cdf0e10cSrcweir namespace framework
84cdf0e10cSrcweir {
85cdf0e10cSrcweir 
86cdf0e10cSrcweir typedef ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > MergeMenuDefinition;
87cdf0e10cSrcweir 
88cdf0e10cSrcweir struct FWE_DLLPUBLIC MergeMenuInstruction
89cdf0e10cSrcweir {
90cdf0e10cSrcweir     ::rtl::OUString     aMergePoint;
91cdf0e10cSrcweir     ::rtl::OUString     aMergeCommand;
92cdf0e10cSrcweir     ::rtl::OUString     aMergeCommandParameter;
93cdf0e10cSrcweir     ::rtl::OUString     aMergeFallback;
94cdf0e10cSrcweir     ::rtl::OUString     aMergeContext;
95cdf0e10cSrcweir     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > aMergeMenu;
96cdf0e10cSrcweir };
97cdf0e10cSrcweir typedef ::std::vector< MergeMenuInstruction > MergeMenuInstructionContainer;
98cdf0e10cSrcweir 
99cdf0e10cSrcweir struct FWE_DLLPUBLIC MergeToolbarInstruction
100cdf0e10cSrcweir {
101cdf0e10cSrcweir     ::rtl::OUString     aMergeToolbar;
102cdf0e10cSrcweir     ::rtl::OUString     aMergePoint;
103cdf0e10cSrcweir     ::rtl::OUString     aMergeCommand;
104cdf0e10cSrcweir     ::rtl::OUString     aMergeCommandParameter;
105cdf0e10cSrcweir     ::rtl::OUString     aMergeFallback;
106cdf0e10cSrcweir     ::rtl::OUString     aMergeContext;
107cdf0e10cSrcweir     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > aMergeToolbarItems;
108cdf0e10cSrcweir };
109cdf0e10cSrcweir 
110cdf0e10cSrcweir typedef ::std::vector< MergeToolbarInstruction > MergeToolbarInstructionContainer;
111cdf0e10cSrcweir 
112fdaa53dfSAriel Constenla-Haile struct FWE_DLLPUBLIC MergeStatusbarInstruction
113fdaa53dfSAriel Constenla-Haile {
114fdaa53dfSAriel Constenla-Haile     ::rtl::OUString     aMergePoint;
115fdaa53dfSAriel Constenla-Haile     ::rtl::OUString     aMergeCommand;
116fdaa53dfSAriel Constenla-Haile     ::rtl::OUString     aMergeCommandParameter;
117fdaa53dfSAriel Constenla-Haile     ::rtl::OUString     aMergeFallback;
118fdaa53dfSAriel Constenla-Haile     ::rtl::OUString     aMergeContext;
119fdaa53dfSAriel Constenla-Haile     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > aMergeStatusbarItems;
120fdaa53dfSAriel Constenla-Haile };
121fdaa53dfSAriel Constenla-Haile 
122fdaa53dfSAriel Constenla-Haile typedef ::std::vector< MergeStatusbarInstruction > MergeStatusbarInstructionContainer;
123fdaa53dfSAriel Constenla-Haile 
124cdf0e10cSrcweir //_________________________________________________________________________________________________________________
125cdf0e10cSrcweir //  forward declarations
126cdf0e10cSrcweir //_________________________________________________________________________________________________________________
127cdf0e10cSrcweir 
128cdf0e10cSrcweir /*-************************************************************************************************************//**
129cdf0e10cSrcweir     @short          forward declaration to our private date container implementation
130cdf0e10cSrcweir     @descr          We use these class as internal member to support small memory requirements.
131*07a3d7f1SPedro Giffuni                     You can create the container if it is necessary. The class which use these mechanism
132cdf0e10cSrcweir                     is faster and smaller then a complete implementation!
133cdf0e10cSrcweir *//*-*************************************************************************************************************/
134cdf0e10cSrcweir 
135cdf0e10cSrcweir class AddonsOptions_Impl;
136cdf0e10cSrcweir 
137cdf0e10cSrcweir //_________________________________________________________________________________________________________________
138cdf0e10cSrcweir //  declarations
139cdf0e10cSrcweir //_________________________________________________________________________________________________________________
140cdf0e10cSrcweir 
141cdf0e10cSrcweir /*-************************************************************************************************************//**
142cdf0e10cSrcweir     @short          collect informations about menu features
143cdf0e10cSrcweir     @descr          -
144cdf0e10cSrcweir 
145cdf0e10cSrcweir     @implements     -
146cdf0e10cSrcweir     @base           -
147cdf0e10cSrcweir 
148cdf0e10cSrcweir     @devstatus      ready to use
149cdf0e10cSrcweir *//*-*************************************************************************************************************/
150cdf0e10cSrcweir 
151cdf0e10cSrcweir class FWE_DLLPUBLIC AddonsOptions
152cdf0e10cSrcweir {
153cdf0e10cSrcweir     //-------------------------------------------------------------------------------------------------------------
154cdf0e10cSrcweir     //  public methods
155cdf0e10cSrcweir     //-------------------------------------------------------------------------------------------------------------
156cdf0e10cSrcweir 
157cdf0e10cSrcweir     public:
158cdf0e10cSrcweir         //---------------------------------------------------------------------------------------------------------
159cdf0e10cSrcweir         //  constructor / destructor
160cdf0e10cSrcweir         //---------------------------------------------------------------------------------------------------------
161cdf0e10cSrcweir 
162cdf0e10cSrcweir         /*-****************************************************************************************************//**
163cdf0e10cSrcweir             @short      standard constructor and destructor
164cdf0e10cSrcweir             @descr      This will initialize an instance with default values.
165cdf0e10cSrcweir                         We implement these class with a refcount mechanism! Every instance of this class increase it
166cdf0e10cSrcweir                         at create and decrease it at delete time - but all instances use the same data container!
167cdf0e10cSrcweir                         He is implemented as a static member ...
168cdf0e10cSrcweir 
169cdf0e10cSrcweir             @seealso    member m_nRefCount
170cdf0e10cSrcweir             @seealso    member m_pDataContainer
171cdf0e10cSrcweir 
172cdf0e10cSrcweir             @param      -
173cdf0e10cSrcweir             @return     -
174cdf0e10cSrcweir 
175cdf0e10cSrcweir             @onerror    -
176cdf0e10cSrcweir         *//*-*****************************************************************************************************/
177cdf0e10cSrcweir 
178cdf0e10cSrcweir          AddonsOptions();
179cdf0e10cSrcweir         ~AddonsOptions();
180cdf0e10cSrcweir 
181cdf0e10cSrcweir         //---------------------------------------------------------------------------------------------------------
182cdf0e10cSrcweir         //  interface
183cdf0e10cSrcweir         //---------------------------------------------------------------------------------------------------------
184cdf0e10cSrcweir 
185cdf0e10cSrcweir         /*-****************************************************************************************************//**
186cdf0e10cSrcweir             @short      clears completely the addons menu
187cdf0e10cSrcweir             @descr      Call this methods to clear the addons menu
188cdf0e10cSrcweir                         To fill it again use AppendItem().
189cdf0e10cSrcweir 
190cdf0e10cSrcweir             @seealso    -
191cdf0e10cSrcweir 
192cdf0e10cSrcweir             @param      "eMenu" select right menu to clear.
193cdf0e10cSrcweir             @return     -
194cdf0e10cSrcweir 
195cdf0e10cSrcweir             @onerror    -
196cdf0e10cSrcweir         *//*-*****************************************************************************************************/
197cdf0e10cSrcweir 
198cdf0e10cSrcweir         void Clear();
199cdf0e10cSrcweir 
200cdf0e10cSrcweir         /*-****************************************************************************************************//**
201cdf0e10cSrcweir             @short      returns if an addons menu is available
202cdf0e10cSrcweir             @descr      Call to retrieve if a addons menu is available
203cdf0e10cSrcweir 
204cdf0e10cSrcweir 
205cdf0e10cSrcweir             @return     sal_True if there is a menu otherwise sal_False
206cdf0e10cSrcweir         *//*-*****************************************************************************************************/
207cdf0e10cSrcweir 
208cdf0e10cSrcweir         sal_Bool    HasAddonsMenu() const;
209cdf0e10cSrcweir 
210cdf0e10cSrcweir         /*-****************************************************************************************************//**
211cdf0e10cSrcweir             @short      returns if an addons help menu is available
212cdf0e10cSrcweir             @descr      Call to retrieve if a addons menu is available
213cdf0e10cSrcweir 
214cdf0e10cSrcweir 
215cdf0e10cSrcweir             @return     sal_True if there is a menu otherwise sal_False
216cdf0e10cSrcweir         *//*-*****************************************************************************************************/
217cdf0e10cSrcweir 
218cdf0e10cSrcweir         sal_Bool    HasAddonsHelpMenu() const;
219cdf0e10cSrcweir 
220cdf0e10cSrcweir         /*-****************************************************************************************************//**
221cdf0e10cSrcweir             @short      returns number of addons toolbars
222cdf0e10cSrcweir             @descr      Call to retrieve the number of addons toolbars
223cdf0e10cSrcweir 
224cdf0e10cSrcweir 
225cdf0e10cSrcweir             @return     number of addons toolbars
226cdf0e10cSrcweir         *//*-*****************************************************************************************************/
227cdf0e10cSrcweir         sal_Int32   GetAddonsToolBarCount() const ;
228cdf0e10cSrcweir 
229cdf0e10cSrcweir         /*-****************************************************************************************************//**
230cdf0e10cSrcweir             @short      returns the  complete addons menu
231cdf0e10cSrcweir             @descr      Call it to get all entries of the addon menu.
232cdf0e10cSrcweir                         We return a list of all nodes with his names and properties.
233cdf0e10cSrcweir 
234cdf0e10cSrcweir             @seealso    -
235cdf0e10cSrcweir 
236cdf0e10cSrcweir             @return     A list of menu items is returned.
237cdf0e10cSrcweir 
238cdf0e10cSrcweir             @onerror    We return an empty list.
239cdf0e10cSrcweir         *//*-*****************************************************************************************************/
240cdf0e10cSrcweir 
241cdf0e10cSrcweir         const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > >& GetAddonsMenu() const;
242cdf0e10cSrcweir 
243cdf0e10cSrcweir         /*-****************************************************************************************************//**
244cdf0e10cSrcweir             @short      Gets the menu bar part of all addon components registered
245cdf0e10cSrcweir             @descr      -
246cdf0e10cSrcweir 
247cdf0e10cSrcweir             @seealso    -
248cdf0e10cSrcweir 
249cdf0e10cSrcweir             @return     A complete
250cdf0e10cSrcweir 
251cdf0e10cSrcweir             @onerror    We return sal_False
252cdf0e10cSrcweir         *//*-*****************************************************************************************************/
253cdf0e10cSrcweir 
254cdf0e10cSrcweir         const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > >& GetAddonsMenuBarPart() const;
255cdf0e10cSrcweir 
256cdf0e10cSrcweir         /*-****************************************************************************************************//**
257cdf0e10cSrcweir             @short      Gets a toolbar part of an single addon
258cdf0e10cSrcweir             @descr      -
259cdf0e10cSrcweir 
260cdf0e10cSrcweir             @seealso    -
261cdf0e10cSrcweir 
262cdf0e10cSrcweir             @return     A complete
263cdf0e10cSrcweir 
264cdf0e10cSrcweir             @onerror    We return sal_False
265cdf0e10cSrcweir         *//*-*****************************************************************************************************/
266cdf0e10cSrcweir 
267cdf0e10cSrcweir         const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > >& GetAddonsToolBarPart( sal_uInt32 nIndex ) const;
268cdf0e10cSrcweir 
269cdf0e10cSrcweir         /*-****************************************************************************************************//**
270cdf0e10cSrcweir             @short      Gets a unique toolbar resource name of an single addon
271cdf0e10cSrcweir             @descr      -
272cdf0e10cSrcweir 
273cdf0e10cSrcweir             @seealso    -
274cdf0e10cSrcweir 
275cdf0e10cSrcweir             @return     A complete
276cdf0e10cSrcweir 
277cdf0e10cSrcweir             @onerror    We return sal_False
278cdf0e10cSrcweir         *//*-*****************************************************************************************************/
279cdf0e10cSrcweir 
280cdf0e10cSrcweir         const ::rtl::OUString GetAddonsToolbarResourceName( sal_uInt32 nIndex ) const;
281cdf0e10cSrcweir 
282bb0b5665SAriel Constenla-Haile         /**
283bb0b5665SAriel Constenla-Haile          *  @short      Gets the UI name of a single addon toolbar
284bb0b5665SAriel Constenla-Haile          *  @return     The UI name of the toolbar as specified in the Addons.xcu configuration
285bb0b5665SAriel Constenla-Haile          *  @onerror    Returns an empty string
286bb0b5665SAriel Constenla-Haile          */
287bb0b5665SAriel Constenla-Haile         const ::rtl::OUString GetAddonsToolbarUIName( sal_uInt32 nIndex ) const;
288bb0b5665SAriel Constenla-Haile 
289cdf0e10cSrcweir         /*-****************************************************************************************************//**
290cdf0e10cSrcweir             @short      Retrieves all available merge instructions for the Office menu bar
291cdf0e10cSrcweir             @descr      -
292cdf0e10cSrcweir 
293cdf0e10cSrcweir             @seealso    -
294cdf0e10cSrcweir 
295cdf0e10cSrcweir             @return     The filled MergeMenuDefinitionContaier
296cdf0e10cSrcweir 
297cdf0e10cSrcweir             @onerror    We return sal_False
298cdf0e10cSrcweir         *//*-*****************************************************************************************************/
299cdf0e10cSrcweir 
300cdf0e10cSrcweir         const MergeMenuInstructionContainer& GetMergeMenuInstructions() const;
301cdf0e10cSrcweir 
302cdf0e10cSrcweir         /*-****************************************************************************************************//**
303cdf0e10cSrcweir             @short      Retrieves all available merge instructions for a single toolbar
304cdf0e10cSrcweir             @descr      -
305cdf0e10cSrcweir 
306cdf0e10cSrcweir             @seealso    -
307cdf0e10cSrcweir 
308cdf0e10cSrcweir             @return     The filled
309cdf0e10cSrcweir 
310cdf0e10cSrcweir             @onerror    We return sal_False
311cdf0e10cSrcweir         *//*-*****************************************************************************************************/
312cdf0e10cSrcweir         bool GetMergeToolbarInstructions( const ::rtl::OUString& rToolbarName, MergeToolbarInstructionContainer& rToolbar ) const;
313cdf0e10cSrcweir 
314fdaa53dfSAriel Constenla-Haile         const MergeStatusbarInstructionContainer& GetMergeStatusbarInstructions() const;
315fdaa53dfSAriel Constenla-Haile 
316cdf0e10cSrcweir         /*-****************************************************************************************************//**
317cdf0e10cSrcweir             @short      Gets the Add-On help menu part of all addon components registered
318cdf0e10cSrcweir             @descr      -
319cdf0e10cSrcweir 
320cdf0e10cSrcweir             @seealso    -
321cdf0e10cSrcweir 
322cdf0e10cSrcweir             @return     A complete
323cdf0e10cSrcweir 
324cdf0e10cSrcweir             @onerror    We return sal_False
325cdf0e10cSrcweir         *//*-*****************************************************************************************************/
326cdf0e10cSrcweir         const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > >& GetAddonsHelpMenu() const;
327cdf0e10cSrcweir 
328cdf0e10cSrcweir         /*-****************************************************************************************************//**
329cdf0e10cSrcweir             @short      Retrieve an image for a command URL which is defined inside the addon menu configuration
330cdf0e10cSrcweir             @descr      Call it to retrieve an image for a command URL which is defined inside the addon menu configuration
331cdf0e10cSrcweir 
332cdf0e10cSrcweir             @seealso    -
333cdf0e10cSrcweir 
334cdf0e10cSrcweir             @return     An image which was defined in the configuration for the menu item. The image can be empty
335cdf0e10cSrcweir                         no bitmap was defined for the request image properties.
336cdf0e10cSrcweir 
337cdf0e10cSrcweir             @onerror    An empty image
338cdf0e10cSrcweir         *//*-*****************************************************************************************************/
339cdf0e10cSrcweir 
340cdf0e10cSrcweir         Image GetImageFromURL( const rtl::OUString& aURL, sal_Bool bBig, sal_Bool bHiContrast, sal_Bool bNoScale ) const;
341cdf0e10cSrcweir 
342cdf0e10cSrcweir         Image GetImageFromURL( const rtl::OUString& aURL, sal_Bool bBig, sal_Bool bHiContrast ) const;
343cdf0e10cSrcweir     //-------------------------------------------------------------------------------------------------------------
344cdf0e10cSrcweir     //  private methods
345cdf0e10cSrcweir     //-------------------------------------------------------------------------------------------------------------
346cdf0e10cSrcweir 
347cdf0e10cSrcweir         /*-****************************************************************************************************//**
348cdf0e10cSrcweir             @short      return a reference to a static mutex
349cdf0e10cSrcweir             @descr      These class is partially threadsafe (for de-/initialization only).
350cdf0e10cSrcweir                         All access methods are'nt safe!
351cdf0e10cSrcweir                         We create a static mutex only for one ime and use at different times.
352cdf0e10cSrcweir 
353cdf0e10cSrcweir             @seealso    -
354cdf0e10cSrcweir 
355cdf0e10cSrcweir             @param      -
356cdf0e10cSrcweir             @return     A reference to a static mutex member.
357cdf0e10cSrcweir 
358cdf0e10cSrcweir             @onerror    -
359cdf0e10cSrcweir         *//*-*****************************************************************************************************/
360cdf0e10cSrcweir 
361cdf0e10cSrcweir         static ::osl::Mutex& GetOwnStaticMutex();
362cdf0e10cSrcweir 
363cdf0e10cSrcweir         /*-****************************************************************************************************//**
364cdf0e10cSrcweir             @short      return a reference to a static mutex
365cdf0e10cSrcweir             @descr      These class is partially threadsafe (for de-/initialization only).
366cdf0e10cSrcweir                         All access methods are'nt safe!
367cdf0e10cSrcweir                         We create a static mutex only for one ime and use at different times.
368cdf0e10cSrcweir 
369cdf0e10cSrcweir             @seealso    -
370cdf0e10cSrcweir 
371cdf0e10cSrcweir             @param      -
372cdf0e10cSrcweir             @return     A reference to a static mutex member.
373cdf0e10cSrcweir 
374cdf0e10cSrcweir             @onerror    -
375cdf0e10cSrcweir         *//*-*****************************************************************************************************/
376cdf0e10cSrcweir         DECL_STATIC_LINK( AddonsOptions, Notify, void* );
377cdf0e10cSrcweir 
378cdf0e10cSrcweir     //-------------------------------------------------------------------------------------------------------------
379cdf0e10cSrcweir     //  private member
380cdf0e10cSrcweir     //-------------------------------------------------------------------------------------------------------------
381cdf0e10cSrcweir 
382cdf0e10cSrcweir     private:
383cdf0e10cSrcweir 
384cdf0e10cSrcweir         /*Attention
385cdf0e10cSrcweir 
386cdf0e10cSrcweir             Don't initialize these static member in these header!
387cdf0e10cSrcweir             a) Double dfined symbols will be detected ...
388cdf0e10cSrcweir             b) and unresolved externals exist at linking time.
389cdf0e10cSrcweir             Do it in your source only.
390cdf0e10cSrcweir          */
391cdf0e10cSrcweir 
392cdf0e10cSrcweir         static AddonsOptions_Impl*  m_pDataContainer    ;   /// impl. data container as dynamic pointer for smaller memory requirements!
393cdf0e10cSrcweir         static sal_Int32            m_nRefCount         ;   /// internal ref count mechanism
394cdf0e10cSrcweir 
395cdf0e10cSrcweir };      // class SvtMenuOptions
396cdf0e10cSrcweir 
397cdf0e10cSrcweir }
398cdf0e10cSrcweir 
399cdf0e10cSrcweir #endif  // #ifndef __FRAMEWORK_CLASSES_ADDONSOPTIONS_HXX_
400