1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir //
28*cdf0e10cSrcweir #ifndef _MACRODLG_HXX
29*cdf0e10cSrcweir #define _MACRODLG_HXX
30*cdf0e10cSrcweir 
31*cdf0e10cSrcweir #include <svheader.hxx>
32*cdf0e10cSrcweir 
33*cdf0e10cSrcweir #include <bastype2.hxx>
34*cdf0e10cSrcweir #include <bastype3.hxx>
35*cdf0e10cSrcweir #include <sfx2/basedlgs.hxx>
36*cdf0e10cSrcweir #include <vcl/fixed.hxx>
37*cdf0e10cSrcweir 
38*cdf0e10cSrcweir #ifndef _SV_BUTTON_HXX //autogen
39*cdf0e10cSrcweir #include <vcl/button.hxx>
40*cdf0e10cSrcweir #endif
41*cdf0e10cSrcweir 
42*cdf0e10cSrcweir #define MACRO_CLOSE			10
43*cdf0e10cSrcweir #define MACRO_OK_RUN		11
44*cdf0e10cSrcweir #define MACRO_NEW 			12
45*cdf0e10cSrcweir #define MACRO_EDIT			14
46*cdf0e10cSrcweir #define MACRO_ORGANIZE		15
47*cdf0e10cSrcweir #define MACRO_ASSIGN		16
48*cdf0e10cSrcweir 
49*cdf0e10cSrcweir #define MACROCHOOSER_ALL			1
50*cdf0e10cSrcweir #define MACROCHOOSER_CHOOSEONLY		2
51*cdf0e10cSrcweir #define MACROCHOOSER_RECORDING		3
52*cdf0e10cSrcweir 
53*cdf0e10cSrcweir class BasicManager;
54*cdf0e10cSrcweir 
55*cdf0e10cSrcweir class MacroChooser : public SfxModalDialog
56*cdf0e10cSrcweir {
57*cdf0e10cSrcweir private:
58*cdf0e10cSrcweir 	FixedText 				aMacroNameTxt;
59*cdf0e10cSrcweir 	Edit 					aMacroNameEdit;
60*cdf0e10cSrcweir 	FixedText 				aMacroFromTxT;
61*cdf0e10cSrcweir 	FixedText 				aMacrosSaveInTxt;
62*cdf0e10cSrcweir 	BasicTreeListBox		aBasicBox;
63*cdf0e10cSrcweir 	FixedText 				aMacrosInTxt;
64*cdf0e10cSrcweir 	String	 				aMacrosInTxtBaseStr;
65*cdf0e10cSrcweir 	SvTreeListBox			aMacroBox;
66*cdf0e10cSrcweir 
67*cdf0e10cSrcweir 	PushButton				aRunButton;
68*cdf0e10cSrcweir 	CancelButton 			aCloseButton;
69*cdf0e10cSrcweir 	PushButton				aAssignButton;
70*cdf0e10cSrcweir 	PushButton				aEditButton;
71*cdf0e10cSrcweir 	PushButton				aNewDelButton;
72*cdf0e10cSrcweir 	PushButton 				aOrganizeButton;
73*cdf0e10cSrcweir 	HelpButton				aHelpButton;
74*cdf0e10cSrcweir 	PushButton 				aNewLibButton;
75*cdf0e10cSrcweir 	PushButton 				aNewModButton;
76*cdf0e10cSrcweir 
77*cdf0e10cSrcweir 	sal_Bool				bNewDelIsDel;
78*cdf0e10cSrcweir 	sal_Bool				bForceStoreBasic;
79*cdf0e10cSrcweir 
80*cdf0e10cSrcweir 	sal_uInt16				nMode;
81*cdf0e10cSrcweir 
82*cdf0e10cSrcweir 	DECL_LINK( MacroSelectHdl, SvTreeListBox * );
83*cdf0e10cSrcweir 	DECL_LINK( MacroDoubleClickHdl, SvTreeListBox * );
84*cdf0e10cSrcweir 	DECL_LINK( BasicSelectHdl, SvTreeListBox * );
85*cdf0e10cSrcweir 	DECL_LINK( EditModifyHdl, Edit * );
86*cdf0e10cSrcweir 	DECL_LINK( ButtonHdl, Button * );
87*cdf0e10cSrcweir 
88*cdf0e10cSrcweir 	void				CheckButtons();
89*cdf0e10cSrcweir 	void				SaveSetCurEntry( SvTreeListBox& rBox, SvLBoxEntry* pEntry );
90*cdf0e10cSrcweir 	void				UpdateFields();
91*cdf0e10cSrcweir 
92*cdf0e10cSrcweir 	void				EnableButton( Button& rButton, sal_Bool bEnable );
93*cdf0e10cSrcweir 
94*cdf0e10cSrcweir 	String				GetInfo( SbxVariable* pVar );
95*cdf0e10cSrcweir 
96*cdf0e10cSrcweir 	void				StoreMacroDescription();
97*cdf0e10cSrcweir 	void				RestoreMacroDescription();
98*cdf0e10cSrcweir 
99*cdf0e10cSrcweir public:
100*cdf0e10cSrcweir 						MacroChooser( Window* pParent, sal_Bool bCreateEntries = sal_True );
101*cdf0e10cSrcweir 						~MacroChooser();
102*cdf0e10cSrcweir 
103*cdf0e10cSrcweir 	SbMethod*			GetMacro();
104*cdf0e10cSrcweir     void                DeleteMacro();
105*cdf0e10cSrcweir 	SbMethod*			CreateMacro();
106*cdf0e10cSrcweir 
107*cdf0e10cSrcweir 	virtual short		Execute();
108*cdf0e10cSrcweir 
109*cdf0e10cSrcweir 	void				SetMode( sal_uInt16 nMode );
110*cdf0e10cSrcweir 	sal_uInt16				GetMode() const { return nMode; }
111*cdf0e10cSrcweir };
112*cdf0e10cSrcweir 
113*cdf0e10cSrcweir #endif	// _MACRODLG_HXX
114