1*5116778eSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*5116778eSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*5116778eSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*5116778eSAndrew Rist * distributed with this work for additional information 6*5116778eSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*5116778eSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*5116778eSAndrew Rist * "License"); you may not use this file except in compliance 9*5116778eSAndrew Rist * with the License. You may obtain a copy of the License at 10*5116778eSAndrew Rist * 11*5116778eSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*5116778eSAndrew Rist * 13*5116778eSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*5116778eSAndrew Rist * software distributed under the License is distributed on an 15*5116778eSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*5116778eSAndrew Rist * KIND, either express or implied. See the License for the 17*5116778eSAndrew Rist * specific language governing permissions and limitations 18*5116778eSAndrew Rist * under the License. 19*5116778eSAndrew Rist * 20*5116778eSAndrew Rist *************************************************************/ 21*5116778eSAndrew Rist 22*5116778eSAndrew Rist 23cdf0e10cSrcweir #ifndef FORMULA_CONTROL_HELPER_HXX_INCLUDED 24cdf0e10cSrcweir #define FORMULA_CONTROL_HELPER_HXX_INCLUDED 25cdf0e10cSrcweir 26cdf0e10cSrcweir #include "formula/funcutl.hxx" 27cdf0e10cSrcweir #include <svtools/svmedit.hxx> 28cdf0e10cSrcweir namespace formula 29cdf0e10cSrcweir { 30cdf0e10cSrcweir 31cdf0e10cSrcweir //============================================================================ 32cdf0e10cSrcweir // class ValWnd 33cdf0e10cSrcweir class ValWnd : public Window 34cdf0e10cSrcweir { 35cdf0e10cSrcweir public: 36cdf0e10cSrcweir ValWnd( Window* pParent, const ResId& rId ); 37cdf0e10cSrcweir 38cdf0e10cSrcweir void SetValue( const String& rStrVal ); 39cdf0e10cSrcweir 40cdf0e10cSrcweir protected: 41cdf0e10cSrcweir virtual void Paint( const Rectangle& rRect ); 42cdf0e10cSrcweir 43cdf0e10cSrcweir private: 44cdf0e10cSrcweir String aStrValue; 45cdf0e10cSrcweir Rectangle aRectOut; 46cdf0e10cSrcweir }; 47cdf0e10cSrcweir 48cdf0e10cSrcweir //============================================================================ 49cdf0e10cSrcweir // class EditBox 50cdf0e10cSrcweir class EditBox : public Control 51cdf0e10cSrcweir { 52cdf0e10cSrcweir private: 53cdf0e10cSrcweir 54cdf0e10cSrcweir MultiLineEdit* pMEdit; 55cdf0e10cSrcweir Link aSelChangedLink; 56cdf0e10cSrcweir Selection aOldSel; 57cdf0e10cSrcweir sal_Bool bMouseFlag; 58cdf0e10cSrcweir DECL_LINK( ChangedHdl, EditBox* ); 59cdf0e10cSrcweir 60cdf0e10cSrcweir protected: 61cdf0e10cSrcweir 62cdf0e10cSrcweir virtual long PreNotify( NotifyEvent& rNEvt ); 63cdf0e10cSrcweir virtual void SelectionChanged(); 64cdf0e10cSrcweir virtual void Resize(); 65cdf0e10cSrcweir virtual void GetFocus(); 66cdf0e10cSrcweir 67cdf0e10cSrcweir 68cdf0e10cSrcweir public: 69cdf0e10cSrcweir EditBox( Window* pParent, 70cdf0e10cSrcweir WinBits nWinStyle = WB_LEFT | WB_BORDER ); 71cdf0e10cSrcweir EditBox( Window* pParent, const ResId& rResId ); 72cdf0e10cSrcweir 73cdf0e10cSrcweir virtual ~EditBox(); 74cdf0e10cSrcweir GetEdit()75cdf0e10cSrcweir MultiLineEdit* GetEdit() {return pMEdit;} 76cdf0e10cSrcweir SetSelChangedHdl(const Link & rLink)77cdf0e10cSrcweir void SetSelChangedHdl( const Link& rLink ) { aSelChangedLink = rLink; } GetSelChangedHdl() const78cdf0e10cSrcweir const Link& GetSelChangedHdl() const { return aSelChangedLink; } 79cdf0e10cSrcweir 80cdf0e10cSrcweir void UpdateOldSel(); 81cdf0e10cSrcweir }; 82cdf0e10cSrcweir 83cdf0e10cSrcweir //============================================================================ 84cdf0e10cSrcweir // class ArgEdit 85cdf0e10cSrcweir 86cdf0e10cSrcweir class ArgEdit : public RefEdit 87cdf0e10cSrcweir { 88cdf0e10cSrcweir public: 89cdf0e10cSrcweir ArgEdit( Window* pParent, const ResId& rResId ); 90cdf0e10cSrcweir 91cdf0e10cSrcweir void Init( ArgEdit* pPrevEdit, ArgEdit* pNextEdit, 92cdf0e10cSrcweir ScrollBar& rArgSlider, sal_uInt16 nArgCount ); 93cdf0e10cSrcweir 94cdf0e10cSrcweir protected: 95cdf0e10cSrcweir virtual void KeyInput( const KeyEvent& rKEvt ); 96cdf0e10cSrcweir 97cdf0e10cSrcweir private: 98cdf0e10cSrcweir ArgEdit* pEdPrev; 99cdf0e10cSrcweir ArgEdit* pEdNext; 100cdf0e10cSrcweir ScrollBar* pSlider; 101cdf0e10cSrcweir sal_uInt16 nArgs; 102cdf0e10cSrcweir }; 103cdf0e10cSrcweir 104cdf0e10cSrcweir 105cdf0e10cSrcweir //============================================================================ 106cdf0e10cSrcweir // class ArgInput 107cdf0e10cSrcweir 108cdf0e10cSrcweir class ArgInput 109cdf0e10cSrcweir { 110cdf0e10cSrcweir private: 111cdf0e10cSrcweir 112cdf0e10cSrcweir Link aFxClickLink; 113cdf0e10cSrcweir Link aRefClickLink; 114cdf0e10cSrcweir Link aFxFocusLink; 115cdf0e10cSrcweir Link aRefFocusLink; 116cdf0e10cSrcweir Link aEdFocusLink; 117cdf0e10cSrcweir Link aEdModifyLink; 118cdf0e10cSrcweir 119cdf0e10cSrcweir FixedText* pFtArg; 120cdf0e10cSrcweir ImageButton* pBtnFx; 121cdf0e10cSrcweir ArgEdit* pEdArg; 122cdf0e10cSrcweir RefButton* pRefBtn; 123cdf0e10cSrcweir 124cdf0e10cSrcweir DECL_LINK( FxBtnClickHdl, ImageButton* ); 125cdf0e10cSrcweir DECL_LINK( RefBtnClickHdl,RefButton* ); 126cdf0e10cSrcweir DECL_LINK( FxBtnFocusHdl, ImageButton* ); 127cdf0e10cSrcweir DECL_LINK( RefBtnFocusHdl,RefButton* ); 128cdf0e10cSrcweir DECL_LINK( EdFocusHdl, ArgEdit* ); 129cdf0e10cSrcweir DECL_LINK( EdModifyHdl,ArgEdit* ); 130cdf0e10cSrcweir 131cdf0e10cSrcweir protected: 132cdf0e10cSrcweir 133cdf0e10cSrcweir virtual void FxClick(); 134cdf0e10cSrcweir virtual void RefClick(); 135cdf0e10cSrcweir virtual void FxFocus(); 136cdf0e10cSrcweir virtual void RefFocus(); 137cdf0e10cSrcweir virtual void EdFocus(); 138cdf0e10cSrcweir virtual void EdModify(); 139cdf0e10cSrcweir 140cdf0e10cSrcweir public: 141cdf0e10cSrcweir 142cdf0e10cSrcweir ArgInput(); 143cdf0e10cSrcweir 144cdf0e10cSrcweir void InitArgInput ( FixedText* pftArg, 145cdf0e10cSrcweir ImageButton* pbtnFx, 146cdf0e10cSrcweir ArgEdit* pedArg, 147cdf0e10cSrcweir RefButton* prefBtn); 148cdf0e10cSrcweir 149cdf0e10cSrcweir void SetArgName(const String &aArg); 150cdf0e10cSrcweir String GetArgName(); 151cdf0e10cSrcweir void SetArgNameFont(const Font&); 152cdf0e10cSrcweir 153cdf0e10cSrcweir void SetArgVal(const String &aVal); 154cdf0e10cSrcweir String GetArgVal(); 155cdf0e10cSrcweir 156cdf0e10cSrcweir void SetArgSelection (const Selection& rSel ); 157cdf0e10cSrcweir void ReplaceSelOfArg (const String& rStr ); 158cdf0e10cSrcweir 159cdf0e10cSrcweir Selection GetArgSelection(); 160cdf0e10cSrcweir 161cdf0e10cSrcweir GetArgEdPtr()162cdf0e10cSrcweir ArgEdit* GetArgEdPtr() {return pEdArg;} 163cdf0e10cSrcweir 164cdf0e10cSrcweir SetFxClickHdl(const Link & rLink)165cdf0e10cSrcweir void SetFxClickHdl( const Link& rLink ) { aFxClickLink = rLink; } GetFxClickHdl() const166cdf0e10cSrcweir const Link& GetFxClickHdl() const { return aFxClickLink; } 167cdf0e10cSrcweir SetRefClickHdl(const Link & rLink)168cdf0e10cSrcweir void SetRefClickHdl( const Link& rLink ) { aRefClickLink = rLink; } GetRefClickHdl() const169cdf0e10cSrcweir const Link& GetRefClickHdl() const { return aRefClickLink; } 170cdf0e10cSrcweir SetFxFocusHdl(const Link & rLink)171cdf0e10cSrcweir void SetFxFocusHdl( const Link& rLink ) { aFxFocusLink = rLink; } GetFxFocusHdl() const172cdf0e10cSrcweir const Link& GetFxFocusHdl() const { return aFxFocusLink; } 173cdf0e10cSrcweir SetRefFocusHdl(const Link & rLink)174cdf0e10cSrcweir void SetRefFocusHdl( const Link& rLink ) { aRefFocusLink = rLink; } GetRefFocusHdl() const175cdf0e10cSrcweir const Link& GetRefFocusHdl() const { return aRefFocusLink; } 176cdf0e10cSrcweir SetEdFocusHdl(const Link & rLink)177cdf0e10cSrcweir void SetEdFocusHdl( const Link& rLink ) { aEdFocusLink = rLink; } GetEdFocusHdl() const178cdf0e10cSrcweir const Link& GetEdFocusHdl() const { return aEdFocusLink; } 179cdf0e10cSrcweir SetEdModifyHdl(const Link & rLink)180cdf0e10cSrcweir void SetEdModifyHdl( const Link& rLink ) { aEdModifyLink = rLink; } GetEdModifyHdl() const181cdf0e10cSrcweir const Link& GetEdModifyHdl() const { return aEdModifyLink; } 182cdf0e10cSrcweir 183cdf0e10cSrcweir void Hide(); 184cdf0e10cSrcweir void Show(); 185cdf0e10cSrcweir 186cdf0e10cSrcweir void UpdateAccessibleNames(); 187cdf0e10cSrcweir }; 188cdf0e10cSrcweir 189cdf0e10cSrcweir } 190 #endif // FORMULA_FORMULA_HELPER_HXX_INCLUDED 191