xref: /AOO41X/main/cui/source/inc/optdict.hxx (revision ff0525f24f03981d56b7579b645949f111420994)
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_OPTDICT_HXX
24 #define _SVX_OPTDICT_HXX
25 
26 // include ---------------------------------------------------------------
27 
28 #include <vcl/dialog.hxx>
29 #include <vcl/fixed.hxx>
30 #include <vcl/lstbox.hxx>
31 #ifndef _SV_BUTTON_HXX //autogen
32 #include <vcl/button.hxx>
33 #endif
34 #include <vcl/group.hxx>
35 #include <vcl/combobox.hxx>
36 #include <vcl/timer.hxx>
37 #include <vcl/edit.hxx>
38 #include <vcl/decoview.hxx>
39 #include <com/sun/star/util/Language.hpp>
40 #include <com/sun/star/uno/Reference.hxx>
41 #include <com/sun/star/uno/Sequence.hxx>
42 
43 
44 #include <svx/simptabl.hxx>
45 #include <svx/langbox.hxx>
46 
47 namespace com{namespace sun{namespace star{
48 namespace linguistic2{
49     class XDictionary;
50     class XSpellChecker1;
51     class XSpellChecker;
52 }}}}
53 
54 // forward ---------------------------------------------------------------
55 
56 
57 // class SvxNewDictionaryDialog ------------------------------------------
58 
59 class SvxNewDictionaryDialog : public ModalDialog
60 {
61 private:
62     FixedLine            aNewDictBox;
63     FixedText           aNameText;
64     Edit                aNameEdit;
65     FixedText           aLanguageText;
66     SvxLanguageBox      aLanguageLB;
67     CheckBox            aExceptBtn;
68     OKButton            aOKBtn;
69     CancelButton        aCancelBtn;
70     HelpButton          aHelpBtn;
71     ::com::sun::star::uno::Reference<
72         ::com::sun::star::linguistic2::XSpellChecker1 >     xSpell;
73     ::com::sun::star::uno::Reference<
74         ::com::sun::star::linguistic2::XDictionary >    xNewDic;
75 
76 #ifdef _SVX_OPTDICT_CXX
77     DECL_LINK( OKHdl_Impl, Button * );
78     DECL_LINK( ModifyHdl_Impl, Edit * );
79 #endif
80 
81 public:
82     SvxNewDictionaryDialog( Window* pParent,
83             ::com::sun::star::uno::Reference<
84                 ::com::sun::star::linguistic2::XSpellChecker1 >  &xSpl );
85 
86     ::com::sun::star::uno::Reference<
87         ::com::sun::star::linguistic2::XDictionary >
88                 GetNewDictionary() { return xNewDic; }
89 };
90 
91 // class SvxDictEdit ----------------------------------------------------
92 
93 class SvxDictEdit : public Edit
94 {
95     Link    aActionLink;
96     sal_Bool    bSpaces;
97 
98     public:
99                     SvxDictEdit(Window* pParent, const ResId& rResId) :
100                         Edit(pParent, rResId), bSpaces(sal_False){}
101 
102     void            SetActionHdl( const Link& rLink )
103                                 { aActionLink = rLink;}
104 
105     void            SetSpaces(sal_Bool bSet)
106                                 {bSpaces = bSet;}
107 
108     virtual void    KeyInput( const KeyEvent& rKEvent );
109 };
110 
111 // class SvxEditDictionaryDialog -----------------------------------------
112 
113 class SvxEditDictionaryDialog : public ModalDialog
114 {
115 private:
116 
117     FixedText               aBookFT;
118     ListBox                 aAllDictsLB;
119     FixedText               aLangFT;
120     SvxLanguageBox          aLangLB;
121 
122     FixedText               aWordFT;
123     SvxDictEdit             aWordED;
124     FixedText               aReplaceFT;
125     SvxDictEdit             aReplaceED;
126     SvTabListBox            aWordsLB;
127     PushButton              aNewReplacePB;
128     PushButton              aDeletePB;
129     FixedLine                aEditDictsBox;
130 
131     HelpButton              aHelpBtn;
132     CancelButton            aCloseBtn;
133     String                  sModify;
134     String                  sNew;
135     DecorationView          aDecoView;
136 
137     ::com::sun::star::uno::Sequence<
138         ::com::sun::star::uno::Reference<
139             ::com::sun::star::linguistic2::XDictionary >  > aDics;  //! snapshot copy to work on
140     ::com::sun::star::uno::Reference<
141         ::com::sun::star::linguistic2::XSpellChecker1 >     xSpell;
142 
143     short               nOld;
144     long                nWidth;
145     sal_Bool            bFirstSelect;
146     sal_Bool            bDoNothing;
147     sal_Bool                bDicIsReadonly;
148 
149 #ifdef _SVX_OPTDICT_CXX
150     DECL_LINK( SelectBookHdl_Impl, ListBox * );
151     DECL_LINK( SelectLangHdl_Impl, ListBox * );
152     DECL_LINK(SelectHdl, SvTabListBox*);
153     DECL_LINK(NewDelHdl, PushButton*);
154     DECL_LINK(ModifyHdl, Edit*);
155 
156 
157     void            ShowWords_Impl( sal_uInt16 nId );
158     void            SetLanguage_Impl( ::com::sun::star::util::Language nLanguage );
159     sal_Bool            IsDicReadonly_Impl() const { return bDicIsReadonly; }
160     void            SetDicReadonly_Impl( ::com::sun::star::uno::Reference<
161                             ::com::sun::star::linguistic2::XDictionary >  &xDic );
162 
163     void            RemoveDictEntry(SvLBoxEntry* pEntry);
164     sal_uInt16          GetLBInsertPos(const String &rDicWord);
165 
166 #endif
167 
168 protected:
169 
170     virtual void    Paint( const Rectangle& rRect );
171 
172 public:
173     SvxEditDictionaryDialog( Window* pParent,
174             const String& rName,
175             ::com::sun::star::uno::Reference<
176                 ::com::sun::star::linguistic2::XSpellChecker1> &xSpl );
177     ~SvxEditDictionaryDialog();
178 
179     sal_uInt16 GetSelectedDict() {return aAllDictsLB.GetSelectEntryPos();}
180 };
181 
182 
183 #endif
184 
185