xref: /AOO41X/main/cui/source/inc/optlingu.hxx (revision c4eee24dc018e70cce741d2c2ecfc43b06c69c41)
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 #ifndef _SVX_OPTLINGU_HXX
24 #define _SVX_OPTLINGU_HXX
25 
26 // include ---------------------------------------------------------------
27 
28 #include <vcl/group.hxx>
29 #include <vcl/fixed.hxx>
30 #include <vcl/toolbox.hxx>
31 #include <vcl/field.hxx>
32 #include <svtools/fixedhyper.hxx>
33 #include <sfx2/tabdlg.hxx>
34 #include <svx/checklbx.hxx>
35 #include <svx/langbox.hxx>
36 #include <com/sun/star/uno/Reference.hxx>
37 #include <com/sun/star/uno/Sequence.hxx>
38 #include <com/sun/star/beans/XPropertySet.hpp>
39 
40 namespace com{namespace sun{namespace star{
41 namespace beans{
42     class XPropertySet;
43 }
44 namespace linguistic2{
45     class XDictionary;
46     class XDictionaryList;
47     class XSpellChecker;
48 }}}}
49 
50 class SvLBoxEntry;
51 class SvxLinguData_Impl;
52 
53 // define ----------------------------------------------------------------
54 
55 #define GROUP_MODULES   ((sal_uInt16)0x0008)
56 
57 // forward ---------------------------------------------------------------
58 
59 class SvxEditModulesDlg : public ModalDialog
60 {
61     FixedLine           aModulesFL;
62     FixedText           aLanguageFT;
63     SvxLanguageBox      aLanguageLB;
64 
65     SvxCheckListBox     aModulesCLB;
66     PushButton          aPrioUpPB;
67     PushButton          aPrioDownPB;
68     PushButton          aBackPB;
69     svt::FixedHyperlink aMoreDictsLink;
70 
71     FixedLine           aButtonsFL;
72     HelpButton          aHelpPB;
73     OKButton            aClosePB;
74 
75     String              sSpell;
76     String              sHyph;
77     String              sThes;
78     String              sGrammar;
79 
80     SvxLinguData_Impl*  pDefaultLinguData;
81     SvxLinguData_Impl&  rLinguData;
82 
83     SvLBoxButtonData*   pCheckButtonData;
84 
85     SvLBoxEntry*    CreateEntry(String& rTxt, sal_uInt16 nCol);
86 
87 #ifdef _SVX_OPTLINGU_CXX
88     DECL_LINK( SelectHdl_Impl, SvxCheckListBox * );
89     DECL_LINK( UpDownHdl_Impl, PushButton * );
90     DECL_LINK( ClickHdl_Impl, PushButton * );
91     DECL_LINK( BackHdl_Impl, PushButton * );
92     DECL_LINK( SelectHdlLB_Impl, ListBox * );
93     DECL_LINK( LangSelectHdl_Impl, ListBox* );
94     DECL_LINK( BoxCheckButtonHdl_Impl, SvTreeListBox * );
95     DECL_LINK( OpenURLHdl_Impl, svt::FixedHyperlink* );
96 #endif
97 
98 public:
99     SvxEditModulesDlg(Window* pParent, SvxLinguData_Impl& rData);
100     virtual ~SvxEditModulesDlg();
101 };
102 
103 // class SvxLinguTabPage -------------------------------------------------
104 
105 class SvxLinguTabPage : public SfxTabPage
106 {
107 private:
108     FixedLine           aLinguisticFL;
109     FixedText           aLinguModulesFT;
110     SvxCheckListBox     aLinguModulesCLB;
111     PushButton          aLinguModulesEditPB;
112     FixedText           aLinguDicsFT;
113     SvxCheckListBox     aLinguDicsCLB;
114     PushButton          aLinguDicsNewPB;
115     PushButton          aLinguDicsEditPB;
116     PushButton          aLinguDicsDelPB;
117     FixedText           aLinguOptionsFT;
118     SvxCheckListBox     aLinguOptionsCLB;
119     PushButton          aLinguOptionsEditPB;
120     svt::FixedHyperlink aMoreDictsLink;
121 
122     String              sCapitalWords;
123     String              sWordsWithDigits;
124     String              sCapitalization;
125     String              sSpellSpecial;
126     String              sSpellAuto;
127     String              sGrammarAuto;
128     String              sNumMinWordlen;
129     String              sNumPreBreak;
130     String              sNumPostBreak;
131     String              sHyphAuto;
132     String              sHyphSpecial;
133 
134     com::sun::star::uno::Reference<
135         com::sun::star::beans::XPropertySet >   xProp;
136 
137     com::sun::star::uno::Reference<
138         com::sun::star::linguistic2::XDictionaryList >      xDicList;
139     com::sun::star::uno::Sequence<
140         com::sun::star::uno::Reference<
141             com::sun::star::linguistic2::XDictionary > >    aDics;
142 
143     SvLBoxButtonData*   pCheckButtonData;
144 
145     SvxLinguData_Impl*  pLinguData;
146 
147     SvxLinguTabPage( Window* pParent, const SfxItemSet& rCoreSet );
148     SvLBoxEntry*    CreateEntry(String& rTxt, sal_uInt16 nCol);
149 
150     void    AddDicBoxEntry( const com::sun::star::uno::Reference< com::sun::star::linguistic2::XDictionary > &rxDic, sal_uInt16 nIdx );
151     sal_uLong   GetDicUserData( const com::sun::star::uno::Reference< com::sun::star::linguistic2::XDictionary > &rxDic, sal_uInt16 nIdx );
152 
153 #ifdef _SVX_OPTLINGU_CXX
154     DECL_LINK( SelectHdl_Impl, SvxCheckListBox * );
155     DECL_LINK( ClickHdl_Impl, PushButton * );
156     DECL_LINK( BoxDoubleClickHdl_Impl, SvTreeListBox * );
157     DECL_LINK( BoxCheckButtonHdl_Impl, SvTreeListBox * );
158     DECL_LINK( PostDblClickHdl_Impl, SvTreeListBox * );
159     DECL_LINK( OpenURLHdl_Impl, svt::FixedHyperlink* );
160 
161     void                UpdateModulesBox_Impl();
162     void                UpdateDicBox_Impl();
163 #endif
164 
165 public:
166     virtual             ~SvxLinguTabPage();
167     static SfxTabPage*  Create( Window* pParent, const SfxItemSet& rSet );
168     static sal_uInt16*  GetRanges();
169 
170     virtual sal_Bool    FillItemSet( SfxItemSet& rSet );
171     virtual void        Reset( const SfxItemSet& rSet );
172 
173     void                HideGroups( sal_uInt16 nGrp );
174 };
175 
176 #endif
177 
178