xref: /AOO41X/main/basctl/source/inc/localizationmgr.hxx (revision 96821c268eab8f5c0fa3bcb36189f0c1c257db85)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef _LOCALIZATIONMGR_HXX
25 #define _LOCALIZATIONMGR_HXX
26 
27 #include <com/sun/star/resource/XStringResourceManager.hpp>
28 #include <com/sun/star/container/XNameContainer.hpp>
29 
30 #include "scriptdocument.hxx"
31 
32 class BasicIDEShell;
33 class DlgEditor;
34 
35 class LocalizationMgr
36 {
37     ::com::sun::star::uno::Reference
38         < ::com::sun::star::resource::XStringResourceManager >  m_xStringResourceManager;
39 
40     BasicIDEShell*                                              m_pIDEShell;
41 
42     ScriptDocument                                              m_aDocument;
43     String                                                      m_aLibName;
44 
45     ::com::sun::star::lang::Locale                              m_aLocaleBeforeBasicStart;
46 
47     enum HandleResourceMode
48     {
49         SET_IDS,
50         RESET_IDS,
51         RENAME_DIALOG_IDS,
52         RENAME_CONTROL_IDS,
53         REMOVE_IDS_FROM_RESOURCE,
54         MOVE_RESOURCES,
55         COPY_RESOURCES
56     };
57     static sal_Int32 implHandleControlResourceProperties( ::com::sun::star::uno::Any aControlAny,
58             const ::rtl::OUString& aDialogName, const ::rtl::OUString& aCtrlName,
59             ::com::sun::star::uno::Reference< ::com::sun::star::resource::XStringResourceManager >
60             xStringResourceManager, ::com::sun::star::uno::Reference< ::com::sun::star::resource::
61             XStringResourceResolver > xSourceStringResolver, HandleResourceMode eMode );
62 
enableResourceForAllLibraryDialogs(void)63     void enableResourceForAllLibraryDialogs( void )
64     {
65         implEnableDisableResourceForAllLibraryDialogs( SET_IDS );
66     }
disableResourceForAllLibraryDialogs(void)67     void disableResourceForAllLibraryDialogs( void )
68     {
69         implEnableDisableResourceForAllLibraryDialogs( RESET_IDS );
70     }
71     void implEnableDisableResourceForAllLibraryDialogs( HandleResourceMode eMode );
72 
73 public:
74     LocalizationMgr( BasicIDEShell* pIDEShell, const ScriptDocument& rDocument, String aLibName,
75         const ::com::sun::star::uno::Reference
76             < ::com::sun::star::resource::XStringResourceManager >& xStringResourceManager );
77     ::com::sun::star::uno::Reference
getStringResourceManager(void)78         < ::com::sun::star::resource::XStringResourceManager >getStringResourceManager( void )
79     {
80         return m_xStringResourceManager;
81     }
82 
83     bool isLibraryLocalized( void );
84 
85     void handleTranslationbar( void );
86 
87     void handleAddLocales( ::com::sun::star::uno::Sequence
88         < ::com::sun::star::lang::Locale > aLocaleSeq );
89 
90     void handleRemoveLocales( ::com::sun::star::uno::Sequence
91         < ::com::sun::star::lang::Locale > aLocaleSeq );
92 
93     void handleSetDefaultLocale( ::com::sun::star::lang::Locale aLocale );
94 
95     void handleSetCurrentLocale( ::com::sun::star::lang::Locale aLocale );
96 
97     void handleBasicStarted( void );
98 
99     void handleBasicStopped( void );
100 
101     static void setControlResourceIDsForNewEditorObject( DlgEditor* pEditor,
102         ::com::sun::star::uno::Any aControlAny, const ::rtl::OUString& aCtrlName );
103 
104     static void renameControlResourceIDsForEditorObject( DlgEditor* pEditor,
105         ::com::sun::star::uno::Any aControlAny, const ::rtl::OUString& aNewCtrlName );
106 
107     static void deleteControlResourceIDsForDeletedEditorObject( DlgEditor* pEditor,
108         ::com::sun::star::uno::Any aControlAny, const ::rtl::OUString& aCtrlName );
109 
110     static void setStringResourceAtDialog( const ScriptDocument& rDocument, const String& aLibName, const String& aDlgName,
111         ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > xDialogModel );
112 
113     static void renameStringResourceIDs( const ScriptDocument& rDocument, const String& aLibName, const String& aDlgName,
114         ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > xDialogModel );
115 
116     static void removeResourceForDialog( const ScriptDocument& rDocument, const String& aLibName, const String& aDlgName,
117         ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > xDialogModel );
118 
119     static ::com::sun::star::uno::Reference< ::com::sun::star::resource::XStringResourceManager >
120         getStringResourceFromDialogLibrary( ::com::sun::star::uno::Reference
121             < ::com::sun::star::container::XNameContainer > xDialogLib );
122 
123     // Clipboard / Drag & Drop
124     static void resetResourceForDialog(
125         ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > xDialogModel,
126         ::com::sun::star::uno::Reference< ::com::sun::star::resource::XStringResourceManager > xStringResourceManager );
127 
128     static void setResourceIDsForDialog(
129         ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > xDialogModel,
130         ::com::sun::star::uno::Reference< ::com::sun::star::resource::XStringResourceManager > xStringResourceManager );
131 
132     static void copyResourcesForPastedEditorObject( DlgEditor* pEditor,
133         ::com::sun::star::uno::Any aControlAny, const ::rtl::OUString& aCtrlName,
134         ::com::sun::star::uno::Reference< ::com::sun::star::resource::
135         XStringResourceResolver > xSourceStringResolver );
136 
137     static void copyResourceForDroppedDialog(
138         ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > xDialogModel,
139         const ::rtl::OUString& aDialogName,
140         ::com::sun::star::uno::Reference< ::com::sun::star::resource::XStringResourceManager > xStringResourceManager,
141         ::com::sun::star::uno::Reference< ::com::sun::star::resource::XStringResourceResolver > xSourceStringResolver );
142 
143     static void copyResourceForDialog(
144         const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& xDialogModel,
145         const ::com::sun::star::uno::Reference< ::com::sun::star::resource::
146             XStringResourceResolver >& xSourceStringResolver,
147         const ::com::sun::star::uno::Reference< ::com::sun::star::resource::
148             XStringResourceManager >& xTargetStringResourceManager );
149 };
150 
151 #endif
152