merge the formfield patch from ooo-build
[ooovba.git] / formula / source / ui / dlg / structpg.hxx
blob5990df37a44df4c7bed6c77693382dc698ef4b3f
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: structpg.hxx,v $
10 * $Revision: 1.6 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef SC_STRUCTPG_HXX
32 #define SC_STRUCTPG_HXX
34 #include <svtools/stdctrl.hxx>
35 #include <vcl/lstbox.hxx>
36 #include <vcl/group.hxx>
37 #include <svtools/svmedit.hxx>
38 #include <vcl/tabpage.hxx>
39 #include <vcl/tabctrl.hxx>
40 #include <svtools/svtreebx.hxx>
41 #include "formula/IFunctionDescription.hxx"
42 #include "ModuleHelper.hxx"
44 //============================================================================
46 //============================================================================
47 namespace formula
50 class IFormulaToken;
51 class StructListBox : public SvTreeListBox
53 private:
55 BOOL bActiveFlag;
57 protected:
58 virtual void MouseButtonDown( const MouseEvent& rMEvt );
60 public:
62 StructListBox(Window* pParent, const ResId& rResId );
64 /** Inserts an entry with static image (no difference between collapsed/expanded). */
65 SvLBoxEntry* InsertStaticEntry(
66 const XubString& rText,
67 const Image& rEntryImg,
68 const Image& rEntryImgHC,
69 SvLBoxEntry* pParent = NULL,
70 ULONG nPos = LIST_APPEND,
71 IFormulaToken* pToken = NULL );
73 void SetActiveFlag(BOOL bFlag=TRUE);
74 BOOL GetActiveFlag();
75 void GetFocus();
76 void LoseFocus();
79 //============================================================================
81 class StructPage : public TabPage
82 , public IStructHelper
84 private:
85 OModuleClient m_aModuleClient;
86 Link aSelLink;
88 FixedText aFtStruct;
89 StructListBox aTlbStruct;
90 Image maImgEnd;
91 Image maImgError;
92 Image maImgEndHC;
93 Image maImgErrorHC;
95 IFormulaToken* pSelectedToken;
97 DECL_LINK( SelectHdl, SvTreeListBox* );
99 using Window::GetParent;
101 protected:
103 IFormulaToken* GetFunctionEntry(SvLBoxEntry* pEntry);
105 public:
107 StructPage( Window* pParent);
109 void ClearStruct();
110 virtual SvLBoxEntry* InsertEntry(const XubString& rText, SvLBoxEntry* pParent,
111 USHORT nFlag,ULONG nPos=0,IFormulaToken* pScToken=NULL);
113 virtual String GetEntryText(SvLBoxEntry* pEntry) const;
114 virtual SvLBoxEntry* GetParent(SvLBoxEntry* pEntry) const;
116 String GetSelectedEntryText();
117 IFormulaToken* GetSelectedToken();
119 void SetSelectionHdl( const Link& rLink ) { aSelLink = rLink; }
120 const Link& GetSelectionHdl() const { return aSelLink; }
123 } // formula
125 #endif