diff options
Diffstat (limited to 'svx/source/cui/commonlingui.hxx')
-rw-r--r-- | svx/source/cui/commonlingui.hxx | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/svx/source/cui/commonlingui.hxx b/svx/source/cui/commonlingui.hxx new file mode 100644 index 000000000000..d1781e83348f --- /dev/null +++ b/svx/source/cui/commonlingui.hxx @@ -0,0 +1,174 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: commonlingui.hxx,v $ + * $Revision: 1.7 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef SVX_COMMON_LINGUI_HXX +#define SVX_COMMON_LINGUI_HXX + +#include <vcl/ctrl.hxx> +#include <svtools/stdctrl.hxx> +#include <vcl/edit.hxx> +#include <svx/svxbox.hxx> +#ifndef _SV_BUTTON_HXX +#include <vcl/button.hxx> +#endif +#include <vcl/group.hxx> +#include <vcl/dialog.hxx> + +//============================================================================= +// SvxClickInfoCtr +//============================================================================= + +class SvxClickInfoCtr: public Control +{ +private: + FixedInfo aFixedInfo; + Link aActivateLink; + +public: + SvxClickInfoCtr( Window* pParent, const ResId& rResId ); + ~SvxClickInfoCtr(); + + virtual void SetText( const XubString& rStr ); + virtual XubString GetText() const; + + void SetActivateHdl( const Link& rLink ) { aActivateLink = rLink; } + const Link& GetActivateHdl() const { return aActivateLink; } + +protected: + virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual long PreNotify( NotifyEvent& rNEvt ); + +}; + +//============================================================================= +// SvxCommonLinguisticControl +//============================================================================= +class SvxCommonLinguisticControl : public Window +{ +public: + enum ButtonType + { + eClose, + eIgnore, + eIgnoreAll, + eChange, + eChangeAll, + eOptions + }; + +protected: + FixedText aWordText; + SvxClickInfoCtr aAktWord; + + FixedText aNewWord; + Edit aNewWordED; + + FixedText aSuggestionFT; + + PushButton aIgnoreBtn; + PushButton aIgnoreAllBtn; + PushButton aChangeBtn; + PushButton aChangeAllBtn; + PushButton aOptionsBtn; + + FixedInfo aStatusText; + HelpButton aHelpBtn; + CancelButton aCancelBtn; + + GroupBox aAuditBox; + +protected: + virtual void Paint( const Rectangle& rRect ); + +private: + PushButton* implGetButton( ButtonType _eType ) const; + +public: + SvxCommonLinguisticControl( ModalDialog* _pParent ); + + // handlers + inline void SetResetWordHdl( const Link& _rLink ) { aAktWord.SetActivateHdl( _rLink ); } + inline const Link& GetResetWordHdl() const { return aAktWord.GetActivateHdl(); } + + void SetButtonHandler( ButtonType _eType, const Link& _rHandler ); + void EnableButton( ButtonType _eType, sal_Bool _bEnable ); + + inline PushButton* GetButton( ButtonType _eType ) { return implGetButton( _eType ); } + inline const PushButton* GetButton( ButtonType _eType ) const { return implGetButton( _eType ); } + + // users of this class may want to insert own controls in some places, where the ordinary + // Z-Order determined by construction time is not sufficient + // Use the following methods for this + enum ControlGroup // control groups in this window which cannot be devided (e.g. are adjacent in the Z order) + { + eLeftRightWords, // the controls for the two words (original and suggestion), including the labels + eSuggestionLabel, // the label for the suggestion + eActionButtons, // the group of "ignore(all)" / "change(all)" buttons + eDialogButtons // the group of dialog control buttons (help and close) + }; + void InsertControlGroup( Window& _rFirstGroupWindow, Window& _rLastGroupWindow, ControlGroup _eInsertAfter ); + + /** enlarges the window + + Some controls "stick" to the borders: The group of change/ignore buttons, for instance, sticks + to the right, the dictionary list as well as the close/help buttons stick to the bottom of the + window. + */ + void Enlarge( sal_Int32 _nX, sal_Int32 _nY ); + + // control access methods + inline void SetCurrentText( const String& _rText ) { aAktWord.SetText( _rText ); } + inline String GetCurrentText( ) const { return aAktWord.GetText(); } + + inline void SetStatusText( const String& _rText ) { aStatusText.SetText( _rText ); } + inline String GetStatusText( ) const { return aStatusText.GetText(); } + + inline Edit& GetWordInputControl() { return aNewWordED; } + inline const Edit& GetWordInputControl() const { return aNewWordED; } + + // returns the location (upper-left corner) of the group of action buttons + inline Point GetActionButtonsLocation( ) const { return aIgnoreBtn.GetPosPixel(); } + + // updates the help texts for the "change" and "change all" buttons according to the currently + // entered texts + void UpdateChangesHelp( const String& _rNewText ); + inline void UpdateChangesHelp( ) { UpdateChangesHelp( GetWordInputControl().GetText() ); } + + // updates the help texts for the "ignore" and "always ignore" buttons according to the currently + // entered texts + void UpdateIgnoreHelp( ); + + String GetNewEditWord(); + void SetNewEditWord( const String& _rNew ); +}; + + + +#endif // SVX_COMMON_LINGUI_HXX |