xref: /trunk/main/basctl/source/inc/localizationmgr.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir #ifndef _LOCALIZATIONMGR_HXX
29*cdf0e10cSrcweir #define _LOCALIZATIONMGR_HXX
30*cdf0e10cSrcweir 
31*cdf0e10cSrcweir #include <com/sun/star/resource/XStringResourceManager.hpp>
32*cdf0e10cSrcweir #include <com/sun/star/container/XNameContainer.hpp>
33*cdf0e10cSrcweir 
34*cdf0e10cSrcweir #include "scriptdocument.hxx"
35*cdf0e10cSrcweir 
36*cdf0e10cSrcweir class BasicIDEShell;
37*cdf0e10cSrcweir class DlgEditor;
38*cdf0e10cSrcweir 
39*cdf0e10cSrcweir class LocalizationMgr
40*cdf0e10cSrcweir {
41*cdf0e10cSrcweir     ::com::sun::star::uno::Reference
42*cdf0e10cSrcweir         < ::com::sun::star::resource::XStringResourceManager >  m_xStringResourceManager;
43*cdf0e10cSrcweir 
44*cdf0e10cSrcweir     BasicIDEShell*                                              m_pIDEShell;
45*cdf0e10cSrcweir 
46*cdf0e10cSrcweir     ScriptDocument                                              m_aDocument;
47*cdf0e10cSrcweir     String                                                      m_aLibName;
48*cdf0e10cSrcweir 
49*cdf0e10cSrcweir     ::com::sun::star::lang::Locale                              m_aLocaleBeforeBasicStart;
50*cdf0e10cSrcweir 
51*cdf0e10cSrcweir     enum HandleResourceMode
52*cdf0e10cSrcweir     {
53*cdf0e10cSrcweir         SET_IDS,
54*cdf0e10cSrcweir         RESET_IDS,
55*cdf0e10cSrcweir         RENAME_DIALOG_IDS,
56*cdf0e10cSrcweir         RENAME_CONTROL_IDS,
57*cdf0e10cSrcweir         REMOVE_IDS_FROM_RESOURCE,
58*cdf0e10cSrcweir         MOVE_RESOURCES,
59*cdf0e10cSrcweir         COPY_RESOURCES
60*cdf0e10cSrcweir     };
61*cdf0e10cSrcweir     static sal_Int32 implHandleControlResourceProperties( ::com::sun::star::uno::Any aControlAny,
62*cdf0e10cSrcweir             const ::rtl::OUString& aDialogName, const ::rtl::OUString& aCtrlName,
63*cdf0e10cSrcweir             ::com::sun::star::uno::Reference< ::com::sun::star::resource::XStringResourceManager >
64*cdf0e10cSrcweir             xStringResourceManager, ::com::sun::star::uno::Reference< ::com::sun::star::resource::
65*cdf0e10cSrcweir             XStringResourceResolver > xSourceStringResolver, HandleResourceMode eMode );
66*cdf0e10cSrcweir 
67*cdf0e10cSrcweir     void enableResourceForAllLibraryDialogs( void )
68*cdf0e10cSrcweir     {
69*cdf0e10cSrcweir         implEnableDisableResourceForAllLibraryDialogs( SET_IDS );
70*cdf0e10cSrcweir     }
71*cdf0e10cSrcweir     void disableResourceForAllLibraryDialogs( void )
72*cdf0e10cSrcweir     {
73*cdf0e10cSrcweir         implEnableDisableResourceForAllLibraryDialogs( RESET_IDS );
74*cdf0e10cSrcweir     }
75*cdf0e10cSrcweir     void implEnableDisableResourceForAllLibraryDialogs( HandleResourceMode eMode );
76*cdf0e10cSrcweir 
77*cdf0e10cSrcweir public:
78*cdf0e10cSrcweir     LocalizationMgr( BasicIDEShell* pIDEShell, const ScriptDocument& rDocument, String aLibName,
79*cdf0e10cSrcweir         const ::com::sun::star::uno::Reference
80*cdf0e10cSrcweir             < ::com::sun::star::resource::XStringResourceManager >& xStringResourceManager );
81*cdf0e10cSrcweir     ::com::sun::star::uno::Reference
82*cdf0e10cSrcweir         < ::com::sun::star::resource::XStringResourceManager >getStringResourceManager( void )
83*cdf0e10cSrcweir     {
84*cdf0e10cSrcweir         return m_xStringResourceManager;
85*cdf0e10cSrcweir     }
86*cdf0e10cSrcweir 
87*cdf0e10cSrcweir     bool isLibraryLocalized( void );
88*cdf0e10cSrcweir 
89*cdf0e10cSrcweir     void handleTranslationbar( void );
90*cdf0e10cSrcweir 
91*cdf0e10cSrcweir     void handleAddLocales( ::com::sun::star::uno::Sequence
92*cdf0e10cSrcweir         < ::com::sun::star::lang::Locale > aLocaleSeq );
93*cdf0e10cSrcweir 
94*cdf0e10cSrcweir     void handleRemoveLocales( ::com::sun::star::uno::Sequence
95*cdf0e10cSrcweir         < ::com::sun::star::lang::Locale > aLocaleSeq );
96*cdf0e10cSrcweir 
97*cdf0e10cSrcweir     void handleSetDefaultLocale( ::com::sun::star::lang::Locale aLocale );
98*cdf0e10cSrcweir 
99*cdf0e10cSrcweir     void handleSetCurrentLocale( ::com::sun::star::lang::Locale aLocale );
100*cdf0e10cSrcweir 
101*cdf0e10cSrcweir     void handleBasicStarted( void );
102*cdf0e10cSrcweir 
103*cdf0e10cSrcweir     void handleBasicStopped( void );
104*cdf0e10cSrcweir 
105*cdf0e10cSrcweir     static void setControlResourceIDsForNewEditorObject( DlgEditor* pEditor,
106*cdf0e10cSrcweir         ::com::sun::star::uno::Any aControlAny, const ::rtl::OUString& aCtrlName );
107*cdf0e10cSrcweir 
108*cdf0e10cSrcweir     static void renameControlResourceIDsForEditorObject( DlgEditor* pEditor,
109*cdf0e10cSrcweir         ::com::sun::star::uno::Any aControlAny, const ::rtl::OUString& aNewCtrlName );
110*cdf0e10cSrcweir 
111*cdf0e10cSrcweir     static void deleteControlResourceIDsForDeletedEditorObject( DlgEditor* pEditor,
112*cdf0e10cSrcweir         ::com::sun::star::uno::Any aControlAny, const ::rtl::OUString& aCtrlName );
113*cdf0e10cSrcweir 
114*cdf0e10cSrcweir     static void setStringResourceAtDialog( const ScriptDocument& rDocument, const String& aLibName, const String& aDlgName,
115*cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > xDialogModel );
116*cdf0e10cSrcweir 
117*cdf0e10cSrcweir     static void renameStringResourceIDs( const ScriptDocument& rDocument, const String& aLibName, const String& aDlgName,
118*cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > xDialogModel );
119*cdf0e10cSrcweir 
120*cdf0e10cSrcweir     static void removeResourceForDialog( const ScriptDocument& rDocument, const String& aLibName, const String& aDlgName,
121*cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > xDialogModel );
122*cdf0e10cSrcweir 
123*cdf0e10cSrcweir     static ::com::sun::star::uno::Reference< ::com::sun::star::resource::XStringResourceManager >
124*cdf0e10cSrcweir         getStringResourceFromDialogLibrary( ::com::sun::star::uno::Reference
125*cdf0e10cSrcweir             < ::com::sun::star::container::XNameContainer > xDialogLib );
126*cdf0e10cSrcweir 
127*cdf0e10cSrcweir     // Clipboard / Drag & Drop
128*cdf0e10cSrcweir     static void resetResourceForDialog(
129*cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > xDialogModel,
130*cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::resource::XStringResourceManager > xStringResourceManager );
131*cdf0e10cSrcweir 
132*cdf0e10cSrcweir     static void setResourceIDsForDialog(
133*cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > xDialogModel,
134*cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::resource::XStringResourceManager > xStringResourceManager );
135*cdf0e10cSrcweir 
136*cdf0e10cSrcweir     static void copyResourcesForPastedEditorObject( DlgEditor* pEditor,
137*cdf0e10cSrcweir         ::com::sun::star::uno::Any aControlAny, const ::rtl::OUString& aCtrlName,
138*cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::resource::
139*cdf0e10cSrcweir         XStringResourceResolver > xSourceStringResolver );
140*cdf0e10cSrcweir 
141*cdf0e10cSrcweir     static void copyResourceForDroppedDialog(
142*cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > xDialogModel,
143*cdf0e10cSrcweir         const ::rtl::OUString& aDialogName,
144*cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::resource::XStringResourceManager > xStringResourceManager,
145*cdf0e10cSrcweir         ::com::sun::star::uno::Reference< ::com::sun::star::resource::XStringResourceResolver > xSourceStringResolver );
146*cdf0e10cSrcweir 
147*cdf0e10cSrcweir     static void copyResourceForDialog(
148*cdf0e10cSrcweir         const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& xDialogModel,
149*cdf0e10cSrcweir         const ::com::sun::star::uno::Reference< ::com::sun::star::resource::
150*cdf0e10cSrcweir             XStringResourceResolver >& xSourceStringResolver,
151*cdf0e10cSrcweir         const ::com::sun::star::uno::Reference< ::com::sun::star::resource::
152*cdf0e10cSrcweir             XStringResourceManager >& xTargetStringResourceManager );
153*cdf0e10cSrcweir };
154*cdf0e10cSrcweir 
155*cdf0e10cSrcweir #endif
156