xref: /aoo42x/main/sfx2/source/menu/thessubmenu.hxx (revision 353d8f4d)
1*353d8f4dSAndrew Rist /**************************************************************
2*353d8f4dSAndrew Rist  *
3*353d8f4dSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*353d8f4dSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*353d8f4dSAndrew Rist  * distributed with this work for additional information
6*353d8f4dSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*353d8f4dSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*353d8f4dSAndrew Rist  * "License"); you may not use this file except in compliance
9*353d8f4dSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*353d8f4dSAndrew Rist  *
11*353d8f4dSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*353d8f4dSAndrew Rist  *
13*353d8f4dSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*353d8f4dSAndrew Rist  * software distributed under the License is distributed on an
15*353d8f4dSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*353d8f4dSAndrew Rist  * KIND, either express or implied.  See the License for the
17*353d8f4dSAndrew Rist  * specific language governing permissions and limitations
18*353d8f4dSAndrew Rist  * under the License.
19*353d8f4dSAndrew Rist  *
20*353d8f4dSAndrew Rist  *************************************************************/
21*353d8f4dSAndrew Rist 
22*353d8f4dSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir 
25cdf0e10cSrcweir #ifndef _THESSUBMENU_HXX_
26cdf0e10cSrcweir #define _THESSUBMENU_HXX_
27cdf0e10cSrcweir 
28cdf0e10cSrcweir #include <com/sun/star/linguistic2/XThesaurus.hpp>
29cdf0e10cSrcweir #include <com/sun/star/linguistic2/XLinguServiceManager.hpp>
30cdf0e10cSrcweir 
31cdf0e10cSrcweir #include <vcl/menu.hxx>
32cdf0e10cSrcweir #include <sfx2/mnuitem.hxx>
33cdf0e10cSrcweir 
34cdf0e10cSrcweir class SfxBindings;
35cdf0e10cSrcweir class PopupMenu;
36cdf0e10cSrcweir class Menu;
37cdf0e10cSrcweir 
38cdf0e10cSrcweir namespace css = ::com::sun::star;
39cdf0e10cSrcweir 
40cdf0e10cSrcweir ////////////////////////////////////////////////////////////
41cdf0e10cSrcweir 
42cdf0e10cSrcweir class SfxThesSubMenuControl : public SfxMenuControl
43cdf0e10cSrcweir {
44cdf0e10cSrcweir 	PopupMenu*			pMenu;
45cdf0e10cSrcweir 	Menu&				rParent;
46cdf0e10cSrcweir 
47cdf0e10cSrcweir private:
48cdf0e10cSrcweir 	virtual void    StateChanged( sal_uInt16, SfxItemState, const SfxPoolItem* pState );
49cdf0e10cSrcweir 	DECL_LINK( MenuSelect, Menu * );
50cdf0e10cSrcweir 
51cdf0e10cSrcweir public:
52cdf0e10cSrcweir     SfxThesSubMenuControl(sal_uInt16, Menu&, SfxBindings&);
53cdf0e10cSrcweir 	~SfxThesSubMenuControl();
54cdf0e10cSrcweir 
55cdf0e10cSrcweir     virtual PopupMenu*  GetPopup() const;
56cdf0e10cSrcweir 
57cdf0e10cSrcweir     SFX_DECL_MENU_CONTROL();
58cdf0e10cSrcweir };
59cdf0e10cSrcweir 
60cdf0e10cSrcweir ////////////////////////////////////////////////////////////
61cdf0e10cSrcweir 
62cdf0e10cSrcweir class SfxThesSubMenuHelper
63cdf0e10cSrcweir {
64cdf0e10cSrcweir     css::uno::Reference< css::linguistic2::XLinguServiceManager >   m_xLngMgr;
65cdf0e10cSrcweir     css::uno::Reference< css::linguistic2::XThesaurus >             m_xThesarus;
66cdf0e10cSrcweir 
67cdf0e10cSrcweir private:
68cdf0e10cSrcweir 
69cdf0e10cSrcweir     // don't use copy c-tor and assignment operator
70cdf0e10cSrcweir     SfxThesSubMenuHelper( const SfxThesSubMenuHelper & );
71cdf0e10cSrcweir     SfxThesSubMenuHelper & operator = ( const SfxThesSubMenuHelper & );
72cdf0e10cSrcweir 
73cdf0e10cSrcweir public:
74cdf0e10cSrcweir     SfxThesSubMenuHelper();
75cdf0e10cSrcweir     ~SfxThesSubMenuHelper();
76cdf0e10cSrcweir 
77cdf0e10cSrcweir     static ::rtl::OUString     GetText( const String &rLookUpString, xub_StrLen nDelimPos );
78cdf0e10cSrcweir 
79cdf0e10cSrcweir     // returns the Locale to be used for the selected text when the thesaurus is to be called
80cdf0e10cSrcweir     static void GetLocale( css::lang::Locale /*out */ &rLocale, const String &rLookUpString, xub_StrLen nDelimPos );
81cdf0e10cSrcweir 
82cdf0e10cSrcweir     // returns true if the locale is upported by the theasaurus
83cdf0e10cSrcweir     bool    IsSupportedLocale( const css::lang::Locale & rLocale ) const;
84cdf0e10cSrcweir 
85cdf0e10cSrcweir     // get the first nMax Synonym entries, even if different meanings need to be evaluated
86cdf0e10cSrcweir     bool    GetMeanings( std::vector< ::rtl::OUString > & rSynonyms, const ::rtl::OUString & rWord, const css::lang::Locale & rLocale, sal_Int16 nMaxSynonms );
87cdf0e10cSrcweir 
88cdf0e10cSrcweir     String  GetThesImplName( const css::lang::Locale &rLocale ) const;
89cdf0e10cSrcweir };
90cdf0e10cSrcweir 
91cdf0e10cSrcweir ////////////////////////////////////////////////////////////
92cdf0e10cSrcweir 
93cdf0e10cSrcweir 
94cdf0e10cSrcweir #endif
95cdf0e10cSrcweir 
96cdf0e10cSrcweir 
97