1*38d50f7bSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*38d50f7bSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*38d50f7bSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*38d50f7bSAndrew Rist * distributed with this work for additional information 6*38d50f7bSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*38d50f7bSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*38d50f7bSAndrew Rist * "License"); you may not use this file except in compliance 9*38d50f7bSAndrew Rist * with the License. You may obtain a copy of the License at 10*38d50f7bSAndrew Rist * 11*38d50f7bSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*38d50f7bSAndrew Rist * 13*38d50f7bSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*38d50f7bSAndrew Rist * software distributed under the License is distributed on an 15*38d50f7bSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*38d50f7bSAndrew Rist * KIND, either express or implied. See the License for the 17*38d50f7bSAndrew Rist * specific language governing permissions and limitations 18*38d50f7bSAndrew Rist * under the License. 19*38d50f7bSAndrew Rist * 20*38d50f7bSAndrew Rist *************************************************************/ 21*38d50f7bSAndrew Rist 22*38d50f7bSAndrew Rist 23cdf0e10cSrcweir #ifndef _SC_DWFUNCTR_HXX 24cdf0e10cSrcweir #define _SC_DWFUNCTR_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir #include <sfx2/childwin.hxx> 27cdf0e10cSrcweir #include <sfx2/dockwin.hxx> 28cdf0e10cSrcweir #include <svl/lstner.hxx> 29cdf0e10cSrcweir #include <svtools/stdctrl.hxx> 30cdf0e10cSrcweir 31cdf0e10cSrcweir #ifndef _LSTBOX_HXX //autogen 32cdf0e10cSrcweir #include <vcl/lstbox.hxx> 33cdf0e10cSrcweir #endif 34cdf0e10cSrcweir 35cdf0e10cSrcweir #ifndef _IMAGEBTN_HXX //autogen 36cdf0e10cSrcweir #include <vcl/button.hxx> 37cdf0e10cSrcweir #endif 38cdf0e10cSrcweir 39cdf0e10cSrcweir #ifndef _COMBOBOX_HXX //autogen 40cdf0e10cSrcweir #include <vcl/combobox.hxx> 41cdf0e10cSrcweir #endif 42cdf0e10cSrcweir #include "anyrefdg.hxx" 43cdf0e10cSrcweir #include "global.hxx" // ScAddress 44cdf0e10cSrcweir #include "privsplt.hxx" 45cdf0e10cSrcweir #include "funcdesc.hxx" 46cdf0e10cSrcweir 47cdf0e10cSrcweir #ifndef LRU_MAX 48cdf0e10cSrcweir #define LRU_MAX 10 49cdf0e10cSrcweir #endif 50cdf0e10cSrcweir /************************************************************************* 51cdf0e10cSrcweir |* 52cdf0e10cSrcweir |* Ableitung vom SfxChildWindow als "Behaelter" fuer Controller 53cdf0e10cSrcweir |* 54cdf0e10cSrcweir \************************************************************************/ 55cdf0e10cSrcweir 56cdf0e10cSrcweir class ScFunctionChildWindow : public SfxChildWindow 57cdf0e10cSrcweir { 58cdf0e10cSrcweir public: 59cdf0e10cSrcweir ScFunctionChildWindow( Window*, sal_uInt16, SfxBindings*, 60cdf0e10cSrcweir SfxChildWinInfo* ); 61cdf0e10cSrcweir 62cdf0e10cSrcweir SFX_DECL_CHILDWINDOW(ScFunctionChildWindow); 63cdf0e10cSrcweir }; 64cdf0e10cSrcweir 65cdf0e10cSrcweir /************************************************************************* 66cdf0e10cSrcweir |* 67cdf0e10cSrcweir |* ScFuncDockWin 68cdf0e10cSrcweir |* 69cdf0e10cSrcweir \************************************************************************/ 70cdf0e10cSrcweir 71cdf0e10cSrcweir class ScFunctionDockWin : public SfxDockingWindow, public SfxListener 72cdf0e10cSrcweir { 73cdf0e10cSrcweir 74cdf0e10cSrcweir private: 75cdf0e10cSrcweir Timer aTimer; 76cdf0e10cSrcweir ScPrivatSplit aPrivatSplit; 77cdf0e10cSrcweir ListBox aCatBox; 78cdf0e10cSrcweir ListBox aFuncList; 79cdf0e10cSrcweir ListBox aDDFuncList; 80cdf0e10cSrcweir ListBox* pAllFuncList; 81cdf0e10cSrcweir 82cdf0e10cSrcweir SfxChildAlignment eSfxNewAlignment; 83cdf0e10cSrcweir SfxChildAlignment eSfxOldAlignment; 84cdf0e10cSrcweir ImageButton aInsertButton; 85cdf0e10cSrcweir FixedText aFiFuncDesc; 86cdf0e10cSrcweir sal_uInt16 nLeftSlot; 87cdf0e10cSrcweir sal_uInt16 nRightSlot; 88cdf0e10cSrcweir sal_uLong nMinWidth; 89cdf0e10cSrcweir sal_uLong nMinHeight; 90cdf0e10cSrcweir Size aOldSize; 91cdf0e10cSrcweir sal_Bool bSizeFlag; 92cdf0e10cSrcweir sal_Bool bInit; 93cdf0e10cSrcweir short nDockMode; 94cdf0e10cSrcweir Point aSplitterInitPos; 95cdf0e10cSrcweir const ScFuncDesc* pFuncDesc; 96cdf0e10cSrcweir sal_uInt16 nArgs; 97cdf0e10cSrcweir String** pArgArr; 98cdf0e10cSrcweir 99cdf0e10cSrcweir 100cdf0e10cSrcweir const ScFuncDesc* aLRUList[LRU_MAX]; 101cdf0e10cSrcweir 102cdf0e10cSrcweir void UpdateFunctionList(); 103cdf0e10cSrcweir void UpdateLRUList(); 104cdf0e10cSrcweir void DoEnter(sal_Bool bOk); //@@ ??? 105cdf0e10cSrcweir void SetDescription(); 106cdf0e10cSrcweir void SetLeftRightSize(); 107cdf0e10cSrcweir void SetTopBottonSize(); 108cdf0e10cSrcweir void SetMyWidthLeRi(Size &aNewSize); 109cdf0e10cSrcweir void SetMyHeightLeRi(Size &aNewSize); 110cdf0e10cSrcweir void SetMyWidthToBo(Size &aNewSize); 111cdf0e10cSrcweir void SetMyHeightToBo(Size &aNewSize); 112cdf0e10cSrcweir void UseSplitterInitPos(); 113cdf0e10cSrcweir 114cdf0e10cSrcweir DECL_LINK( SetSelectionHdl, void* ); 115cdf0e10cSrcweir DECL_LINK( SelHdl, ListBox* ); 116cdf0e10cSrcweir DECL_LINK(SetSplitHdl,ScPrivatSplit*); 117cdf0e10cSrcweir DECL_LINK( TimerHdl, Timer*); 118cdf0e10cSrcweir 119cdf0e10cSrcweir protected: 120cdf0e10cSrcweir 121cdf0e10cSrcweir virtual sal_Bool Close(); 122cdf0e10cSrcweir virtual void Resize(); 123cdf0e10cSrcweir virtual void Resizing( Size& rSize ); 124cdf0e10cSrcweir virtual void SetSize(); 125cdf0e10cSrcweir virtual void ToggleFloatingMode(); 126cdf0e10cSrcweir virtual void StateChanged( StateChangedType nStateChange ); 127cdf0e10cSrcweir 128cdf0e10cSrcweir 129cdf0e10cSrcweir virtual SfxChildAlignment CheckAlignment(SfxChildAlignment, 130cdf0e10cSrcweir SfxChildAlignment eAlign); 131cdf0e10cSrcweir 132cdf0e10cSrcweir public: 133cdf0e10cSrcweir ScFunctionDockWin( SfxBindings* pBindings, 134cdf0e10cSrcweir SfxChildWindow *pCW, 135cdf0e10cSrcweir Window* pParent, 136cdf0e10cSrcweir const ResId& rResId ); 137cdf0e10cSrcweir 138cdf0e10cSrcweir ~ScFunctionDockWin(); 139cdf0e10cSrcweir 140cdf0e10cSrcweir using SfxDockingWindow::Notify; 141cdf0e10cSrcweir virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); 142cdf0e10cSrcweir SetSlotIDs(sal_uInt16 nLeft,sal_uInt16 nRight)143cdf0e10cSrcweir void SetSlotIDs( sal_uInt16 nLeft, sal_uInt16 nRight ) 144cdf0e10cSrcweir { nLeftSlot = nLeft; nRightSlot = nRight; } 145cdf0e10cSrcweir 146cdf0e10cSrcweir void InitLRUList(); 147cdf0e10cSrcweir 148cdf0e10cSrcweir void Initialize (SfxChildWinInfo* pInfo); 149cdf0e10cSrcweir virtual void FillInfo(SfxChildWinInfo&) const; 150cdf0e10cSrcweir }; 151cdf0e10cSrcweir 152cdf0e10cSrcweir #endif 153cdf0e10cSrcweir 154cdf0e10cSrcweir 155