2
* This file is part of the Code::Blocks IDE and licensed under the GNU Lesser General Public License, version 3
3
* http://www.gnu.org/licenses/lgpl-3.0.html
10
#include <sdk_precomp.h>
14
#include <cbexception.h>
15
#include <wx/string.h>
18
#include "sc_base_types.h"
20
#include <editarrayfiledlg.h>
21
#include <editarrayorderdlg.h>
22
#include <editarraystringdlg.h>
23
#include <editpairdlg.h>
24
#include <editpathdlg.h>
25
#include <genericmultilinenotesdlg.h>
27
DECLARE_ENUM_TYPE(EditPairDlg::BrowseMode);
29
namespace ScriptBindings
31
SQInteger EditArrayFileDlg_Dtor(SQUserPointer up, SQInteger size)
33
SQ_DELETE_CLASS(EditArrayFileDlg);
36
SQInteger EditArrayFileDlg_Ctor(HSQUIRRELVM v)
39
// wxArrayString& array,
40
// bool useRelativePaths = false,
41
// const wxString& basePath = _T(""))
43
EditArrayFileDlg* dlg = 0;
45
if (sa.GetParamCount() > 3)
47
dlg = new EditArrayFileDlg(0,
48
*SqPlus::GetInstance<wxArrayString,false>(v, 2),
50
*SqPlus::GetInstance<wxString,false>(v, 4));
52
else if (sa.GetParamCount() > 2)
54
dlg = new EditArrayFileDlg(0,
55
*SqPlus::GetInstance<wxArrayString,false>(v, 2),
58
else if (sa.GetParamCount() > 1)
60
dlg = new EditArrayFileDlg(0,
61
*SqPlus::GetInstance<wxArrayString,false>(v, 2));
64
return sa.ThrowError("EditArrayFileDlg needs at least one argument");
66
return SqPlus::PostConstruct<EditArrayFileDlg>(v, dlg, EditArrayFileDlg_Dtor);
69
SQInteger EditArrayOrderDlg_Dtor(SQUserPointer up, SQInteger size)
71
SQ_DELETE_CLASS(EditArrayOrderDlg);
74
SQInteger EditArrayOrderDlg_Ctor(HSQUIRRELVM v)
76
// (wxWindow* parent, const wxArrayString& array = 0L)
78
EditArrayOrderDlg* dlg = 0;
80
if (sa.GetParamCount() == 1)
81
dlg = new EditArrayOrderDlg(0);
82
else if (sa.GetParamCount() == 2)
83
dlg = new EditArrayOrderDlg(0, *SqPlus::GetInstance<wxArrayString,false>(v, 2));
85
return sa.ThrowError("EditArrayOrderDlg needs at most one argument");
87
return SqPlus::PostConstruct<EditArrayOrderDlg>(v, dlg, EditArrayOrderDlg_Dtor);
90
SQInteger EditArrayStringDlg_Dtor(SQUserPointer up, SQInteger size)
92
SQ_DELETE_CLASS(EditArrayStringDlg);
95
SQInteger EditArrayStringDlg_Ctor(HSQUIRRELVM v)
97
// (wxWindow* parent, const wxArrayString& array)
99
EditArrayStringDlg* dlg = 0;
101
if (sa.GetParamCount() == 2)
102
dlg = new EditArrayStringDlg(0, *SqPlus::GetInstance<wxArrayString,false>(v, 2));
104
return sa.ThrowError("EditArrayStringDlg needs one argument");
106
return SqPlus::PostConstruct<EditArrayStringDlg>(v, dlg, EditArrayStringDlg_Dtor);
109
SQInteger EditPairDlg_Dtor(SQUserPointer up, SQInteger size)
111
SQ_DELETE_CLASS(EditPairDlg);
114
SQInteger EditPairDlg_Ctor(HSQUIRRELVM v)
116
// (wxWindow* parent,
119
// const wxString& title = _("Edit pair"),
120
// BrowseMode allowBrowse = bmDisable);
122
EditPairDlg* dlg = 0;
124
if (sa.GetParamCount() > 4)
126
dlg = new EditPairDlg(0,
127
*SqPlus::GetInstance<wxString,false>(v, 2),
128
*SqPlus::GetInstance<wxString,false>(v, 3),
129
*SqPlus::GetInstance<wxString,false>(v, 4),
130
(EditPairDlg::BrowseMode)sa.GetInt(5));
132
else if (sa.GetParamCount() > 3)
134
dlg = new EditPairDlg(0,
135
*SqPlus::GetInstance<wxString,false>(v, 2),
136
*SqPlus::GetInstance<wxString,false>(v, 3),
137
*SqPlus::GetInstance<wxString,false>(v, 4));
139
else if (sa.GetParamCount() > 2)
141
dlg = new EditPairDlg(0,
142
*SqPlus::GetInstance<wxString,false>(v, 2),
143
*SqPlus::GetInstance<wxString,false>(v, 3));
146
return sa.ThrowError("EditPairDlg needs at least two arguments");
148
return SqPlus::PostConstruct<EditPairDlg>(v, dlg, EditPairDlg_Dtor);
151
SQInteger EditPathDlg_Dtor(SQUserPointer up, SQInteger size)
153
SQ_DELETE_CLASS(EditPathDlg);
156
SQInteger EditPathDlg_Ctor(HSQUIRRELVM v)
158
// (wxWindow* parent,
159
// const wxString& path, // initial path
160
// const wxString& basepath, // for relative pathes
161
// const wxString& title = _("Edit Path"), // title of the dialog
162
// const wxString& message = _T(""), // message displayed in the dialogs
163
// const bool wantDir = true, // whether to open a dir or a file dialog
164
// const bool allowMultiSel = false, // whether to allow for multiple files selection
165
// const wxString& filter = _("All files(*)|*")); // wildcard for files
167
EditPathDlg* dlg = 0;
169
if (sa.GetParamCount() > 7)
171
dlg = new EditPathDlg(0,
172
*SqPlus::GetInstance<wxString,false>(v, 2),
173
*SqPlus::GetInstance<wxString,false>(v, 3),
174
*SqPlus::GetInstance<wxString,false>(v, 4),
175
*SqPlus::GetInstance<wxString,false>(v, 5),
178
*SqPlus::GetInstance<wxString,false>(v, 8));
180
else if (sa.GetParamCount() > 6)
182
dlg = new EditPathDlg(0,
183
*SqPlus::GetInstance<wxString,false>(v, 2),
184
*SqPlus::GetInstance<wxString,false>(v, 3),
185
*SqPlus::GetInstance<wxString,false>(v, 4),
186
*SqPlus::GetInstance<wxString,false>(v, 5),
190
else if (sa.GetParamCount() > 5)
192
dlg = new EditPathDlg(0,
193
*SqPlus::GetInstance<wxString,false>(v, 2),
194
*SqPlus::GetInstance<wxString,false>(v, 3),
195
*SqPlus::GetInstance<wxString,false>(v, 4),
196
*SqPlus::GetInstance<wxString,false>(v, 5),
199
else if (sa.GetParamCount() > 4)
201
dlg = new EditPathDlg(0,
202
*SqPlus::GetInstance<wxString,false>(v, 2),
203
*SqPlus::GetInstance<wxString,false>(v, 3),
204
*SqPlus::GetInstance<wxString,false>(v, 4),
205
*SqPlus::GetInstance<wxString,false>(v, 5));
207
else if (sa.GetParamCount() > 3)
209
dlg = new EditPathDlg(0,
210
*SqPlus::GetInstance<wxString,false>(v, 2),
211
*SqPlus::GetInstance<wxString,false>(v, 3),
212
*SqPlus::GetInstance<wxString,false>(v, 4));
214
else if (sa.GetParamCount() > 2)
216
dlg = new EditPathDlg(0,
217
*SqPlus::GetInstance<wxString,false>(v, 2),
218
*SqPlus::GetInstance<wxString,false>(v, 3));
221
return sa.ThrowError("EditPathDlg needs at least two arguments");
223
return SqPlus::PostConstruct<EditPathDlg>(v, dlg, EditPathDlg_Dtor);
226
SQInteger GenericMultiLineNotesDlg_Dtor(SQUserPointer up, SQInteger size)
228
SQ_DELETE_CLASS(GenericMultiLineNotesDlg);
231
SQInteger GenericMultiLineNotesDlg_Ctor(HSQUIRRELVM v)
233
// (wxWindow* parent,
234
// const wxString& caption = _("Notes"),
235
// const wxString& notes = wxEmptyString,
236
// bool readOnly = true);
238
GenericMultiLineNotesDlg* dlg = 0;
240
if (sa.GetParamCount() > 3)
242
dlg = new GenericMultiLineNotesDlg(0,
243
*SqPlus::GetInstance<wxString,false>(v, 2),
244
*SqPlus::GetInstance<wxString,false>(v, 3),
247
else if (sa.GetParamCount() > 2)
249
dlg = new GenericMultiLineNotesDlg(0,
250
*SqPlus::GetInstance<wxString,false>(v, 2),
251
*SqPlus::GetInstance<wxString,false>(v, 3));
253
else if (sa.GetParamCount() > 1)
255
dlg = new GenericMultiLineNotesDlg(0,
256
*SqPlus::GetInstance<wxString,false>(v, 2));
259
dlg = new GenericMultiLineNotesDlg(0);
261
return SqPlus::PostConstruct<GenericMultiLineNotesDlg>(v, dlg, GenericMultiLineNotesDlg_Dtor);
264
SQInteger ShowModalForDialogs(HSQUIRRELVM v)
267
SQUserPointer up = 0;
268
sq_getinstanceup(v, 1, &up, 0);
269
wxDialog* dlg = (wxDialog*)up;
270
return sa.Return(static_cast<SQInteger>(dlg->ShowModal()));
273
void Register_UtilDialogs()
275
SqPlus::BindConstant<SQInteger>(EditPairDlg::bmBrowseForDirectory, "bmBrowseForDirectory");
276
SqPlus::BindConstant<SQInteger>(EditPairDlg::bmBrowseForFile, "bmBrowseForFile");
277
SqPlus::BindConstant<SQInteger>(EditPairDlg::bmDisable, "bmDisable");
279
SqPlus::SQClassDef<EditArrayFileDlg>("EditArrayFileDlg").
280
staticFuncVarArgs(&EditArrayFileDlg_Ctor, "constructor", "*").
281
staticFunc(&ShowModalForDialogs, "ShowModal");
283
SqPlus::SQClassDef<EditArrayOrderDlg>("EditArrayOrderDlg").
284
staticFuncVarArgs(&EditArrayOrderDlg_Ctor, "constructor", "*").
285
staticFunc(&ShowModalForDialogs, "ShowModal").
286
func(&EditArrayOrderDlg::SetArray, "SetArray").
287
func(&EditArrayOrderDlg::GetArray, "GetArray");
289
SqPlus::SQClassDef<EditArrayStringDlg>("EditArrayStringDlg").
290
staticFuncVarArgs(&EditArrayStringDlg_Ctor, "constructor", "*").
291
staticFunc(&ShowModalForDialogs, "ShowModal");
293
SqPlus::SQClassDef<EditPairDlg>("EditPairDlg").
294
staticFuncVarArgs(&EditPairDlg_Ctor, "constructor", "*").
295
staticFunc(&ShowModalForDialogs, "ShowModal");
297
SqPlus::SQClassDef<EditPathDlg>("EditPathDlg").
298
staticFuncVarArgs(&EditPathDlg_Ctor, "constructor", "*").
299
staticFunc(&ShowModalForDialogs, "ShowModal").
300
func(&EditPathDlg::GetPath, "GetPath");
302
SqPlus::SQClassDef<GenericMultiLineNotesDlg>("GenericMultiLineNotesDlg").
303
staticFuncVarArgs(&GenericMultiLineNotesDlg_Ctor, "constructor", "*").
304
staticFunc(&ShowModalForDialogs, "ShowModal").
305
func(&GenericMultiLineNotesDlg::GetNotes, "GetNotes");
307
} // namespace ScriptBindings
2
* This file is part of the Code::Blocks IDE and licensed under the GNU Lesser General Public License, version 3
3
* http://www.gnu.org/licenses/lgpl-3.0.html
6
* $Id: sc_util_dialogs.cpp 6125 2010-01-31 03:56:32Z biplab $
7
* $HeadURL: svn+ssh://jenslody@svn.berlios.de/svnroot/repos/codeblocks/trunk/src/sdk/scripting/bindings/sc_util_dialogs.cpp $
10
#include <sdk_precomp.h>
14
#include <cbexception.h>
15
#include <wx/string.h>
18
#include "sc_base_types.h"
20
#include <editarrayfiledlg.h>
21
#include <editarrayorderdlg.h>
22
#include <editarraystringdlg.h>
23
#include <editpairdlg.h>
24
#include <editpathdlg.h>
25
#include <genericmultilinenotesdlg.h>
27
DECLARE_ENUM_TYPE(EditPairDlg::BrowseMode);
29
namespace ScriptBindings
31
SQInteger EditArrayFileDlg_Dtor(SQUserPointer up, SQInteger size)
33
SQ_DELETE_CLASS(EditArrayFileDlg);
36
SQInteger EditArrayFileDlg_Ctor(HSQUIRRELVM v)
39
// wxArrayString& array,
40
// bool useRelativePaths = false,
41
// const wxString& basePath = _T(""))
43
EditArrayFileDlg* dlg = 0;
45
if (sa.GetParamCount() > 3)
47
dlg = new EditArrayFileDlg(0,
48
*SqPlus::GetInstance<wxArrayString,false>(v, 2),
50
*SqPlus::GetInstance<wxString,false>(v, 4));
52
else if (sa.GetParamCount() > 2)
54
dlg = new EditArrayFileDlg(0,
55
*SqPlus::GetInstance<wxArrayString,false>(v, 2),
58
else if (sa.GetParamCount() > 1)
60
dlg = new EditArrayFileDlg(0,
61
*SqPlus::GetInstance<wxArrayString,false>(v, 2));
64
return sa.ThrowError("EditArrayFileDlg needs at least one argument");
66
return SqPlus::PostConstruct<EditArrayFileDlg>(v, dlg, EditArrayFileDlg_Dtor);
69
SQInteger EditArrayOrderDlg_Dtor(SQUserPointer up, SQInteger size)
71
SQ_DELETE_CLASS(EditArrayOrderDlg);
74
SQInteger EditArrayOrderDlg_Ctor(HSQUIRRELVM v)
76
// (wxWindow* parent, const wxArrayString& array = 0L)
78
EditArrayOrderDlg* dlg = 0;
80
if (sa.GetParamCount() == 1)
81
dlg = new EditArrayOrderDlg(0);
82
else if (sa.GetParamCount() == 2)
83
dlg = new EditArrayOrderDlg(0, *SqPlus::GetInstance<wxArrayString,false>(v, 2));
85
return sa.ThrowError("EditArrayOrderDlg needs at most one argument");
87
return SqPlus::PostConstruct<EditArrayOrderDlg>(v, dlg, EditArrayOrderDlg_Dtor);
90
SQInteger EditArrayStringDlg_Dtor(SQUserPointer up, SQInteger size)
92
SQ_DELETE_CLASS(EditArrayStringDlg);
95
SQInteger EditArrayStringDlg_Ctor(HSQUIRRELVM v)
97
// (wxWindow* parent, const wxArrayString& array)
99
EditArrayStringDlg* dlg = 0;
101
if (sa.GetParamCount() == 2)
102
dlg = new EditArrayStringDlg(0, *SqPlus::GetInstance<wxArrayString,false>(v, 2));
104
return sa.ThrowError("EditArrayStringDlg needs one argument");
106
return SqPlus::PostConstruct<EditArrayStringDlg>(v, dlg, EditArrayStringDlg_Dtor);
109
SQInteger EditPairDlg_Dtor(SQUserPointer up, SQInteger size)
111
SQ_DELETE_CLASS(EditPairDlg);
114
SQInteger EditPairDlg_Ctor(HSQUIRRELVM v)
116
// (wxWindow* parent,
119
// const wxString& title = _("Edit pair"),
120
// BrowseMode allowBrowse = bmDisable);
122
EditPairDlg* dlg = 0;
124
if (sa.GetParamCount() > 4)
126
dlg = new EditPairDlg(0,
127
*SqPlus::GetInstance<wxString,false>(v, 2),
128
*SqPlus::GetInstance<wxString,false>(v, 3),
129
*SqPlus::GetInstance<wxString,false>(v, 4),
130
(EditPairDlg::BrowseMode)sa.GetInt(5));
132
else if (sa.GetParamCount() > 3)
134
dlg = new EditPairDlg(0,
135
*SqPlus::GetInstance<wxString,false>(v, 2),
136
*SqPlus::GetInstance<wxString,false>(v, 3),
137
*SqPlus::GetInstance<wxString,false>(v, 4));
139
else if (sa.GetParamCount() > 2)
141
dlg = new EditPairDlg(0,
142
*SqPlus::GetInstance<wxString,false>(v, 2),
143
*SqPlus::GetInstance<wxString,false>(v, 3));
146
return sa.ThrowError("EditPairDlg needs at least two arguments");
148
return SqPlus::PostConstruct<EditPairDlg>(v, dlg, EditPairDlg_Dtor);
151
SQInteger EditPathDlg_Dtor(SQUserPointer up, SQInteger size)
153
SQ_DELETE_CLASS(EditPathDlg);
156
SQInteger EditPathDlg_Ctor(HSQUIRRELVM v)
158
// (wxWindow* parent,
159
// const wxString& path, // initial path
160
// const wxString& basepath, // for relative pathes
161
// const wxString& title = _("Edit Path"), // title of the dialog
162
// const wxString& message = _T(""), // message displayed in the dialogs
163
// const bool wantDir = true, // whether to open a dir or a file dialog
164
// const bool allowMultiSel = false, // whether to allow for multiple files selection
165
// const wxString& filter = _("All files(*)|*")); // wildcard for files
167
EditPathDlg* dlg = 0;
169
if (sa.GetParamCount() > 7)
171
dlg = new EditPathDlg(0,
172
*SqPlus::GetInstance<wxString,false>(v, 2),
173
*SqPlus::GetInstance<wxString,false>(v, 3),
174
*SqPlus::GetInstance<wxString,false>(v, 4),
175
*SqPlus::GetInstance<wxString,false>(v, 5),
178
*SqPlus::GetInstance<wxString,false>(v, 8));
180
else if (sa.GetParamCount() > 6)
182
dlg = new EditPathDlg(0,
183
*SqPlus::GetInstance<wxString,false>(v, 2),
184
*SqPlus::GetInstance<wxString,false>(v, 3),
185
*SqPlus::GetInstance<wxString,false>(v, 4),
186
*SqPlus::GetInstance<wxString,false>(v, 5),
190
else if (sa.GetParamCount() > 5)
192
dlg = new EditPathDlg(0,
193
*SqPlus::GetInstance<wxString,false>(v, 2),
194
*SqPlus::GetInstance<wxString,false>(v, 3),
195
*SqPlus::GetInstance<wxString,false>(v, 4),
196
*SqPlus::GetInstance<wxString,false>(v, 5),
199
else if (sa.GetParamCount() > 4)
201
dlg = new EditPathDlg(0,
202
*SqPlus::GetInstance<wxString,false>(v, 2),
203
*SqPlus::GetInstance<wxString,false>(v, 3),
204
*SqPlus::GetInstance<wxString,false>(v, 4),
205
*SqPlus::GetInstance<wxString,false>(v, 5));
207
else if (sa.GetParamCount() > 3)
209
dlg = new EditPathDlg(0,
210
*SqPlus::GetInstance<wxString,false>(v, 2),
211
*SqPlus::GetInstance<wxString,false>(v, 3),
212
*SqPlus::GetInstance<wxString,false>(v, 4));
214
else if (sa.GetParamCount() > 2)
216
dlg = new EditPathDlg(0,
217
*SqPlus::GetInstance<wxString,false>(v, 2),
218
*SqPlus::GetInstance<wxString,false>(v, 3));
221
return sa.ThrowError("EditPathDlg needs at least two arguments");
223
return SqPlus::PostConstruct<EditPathDlg>(v, dlg, EditPathDlg_Dtor);
226
SQInteger GenericMultiLineNotesDlg_Dtor(SQUserPointer up, SQInteger size)
228
SQ_DELETE_CLASS(GenericMultiLineNotesDlg);
231
SQInteger GenericMultiLineNotesDlg_Ctor(HSQUIRRELVM v)
233
// (wxWindow* parent,
234
// const wxString& caption = _("Notes"),
235
// const wxString& notes = wxEmptyString,
236
// bool readOnly = true);
238
GenericMultiLineNotesDlg* dlg = 0;
240
if (sa.GetParamCount() > 3)
242
dlg = new GenericMultiLineNotesDlg(0,
243
*SqPlus::GetInstance<wxString,false>(v, 2),
244
*SqPlus::GetInstance<wxString,false>(v, 3),
247
else if (sa.GetParamCount() > 2)
249
dlg = new GenericMultiLineNotesDlg(0,
250
*SqPlus::GetInstance<wxString,false>(v, 2),
251
*SqPlus::GetInstance<wxString,false>(v, 3));
253
else if (sa.GetParamCount() > 1)
255
dlg = new GenericMultiLineNotesDlg(0,
256
*SqPlus::GetInstance<wxString,false>(v, 2));
259
dlg = new GenericMultiLineNotesDlg(0);
261
return SqPlus::PostConstruct<GenericMultiLineNotesDlg>(v, dlg, GenericMultiLineNotesDlg_Dtor);
264
SQInteger ShowModalForDialogs(HSQUIRRELVM v)
267
SQUserPointer up = 0;
268
sq_getinstanceup(v, 1, &up, 0);
269
wxScrollingDialog* dlg = (wxScrollingDialog*)up;
270
return sa.Return(static_cast<SQInteger>(dlg->ShowModal()));
273
void Register_UtilDialogs()
275
SqPlus::BindConstant<SQInteger>(EditPairDlg::bmBrowseForDirectory, "bmBrowseForDirectory");
276
SqPlus::BindConstant<SQInteger>(EditPairDlg::bmBrowseForFile, "bmBrowseForFile");
277
SqPlus::BindConstant<SQInteger>(EditPairDlg::bmDisable, "bmDisable");
279
SqPlus::SQClassDef<EditArrayFileDlg>("EditArrayFileDlg").
280
staticFuncVarArgs(&EditArrayFileDlg_Ctor, "constructor", "*").
281
staticFunc(&ShowModalForDialogs, "ShowModal");
283
SqPlus::SQClassDef<EditArrayOrderDlg>("EditArrayOrderDlg").
284
staticFuncVarArgs(&EditArrayOrderDlg_Ctor, "constructor", "*").
285
staticFunc(&ShowModalForDialogs, "ShowModal").
286
func(&EditArrayOrderDlg::SetArray, "SetArray").
287
func(&EditArrayOrderDlg::GetArray, "GetArray");
289
SqPlus::SQClassDef<EditArrayStringDlg>("EditArrayStringDlg").
290
staticFuncVarArgs(&EditArrayStringDlg_Ctor, "constructor", "*").
291
staticFunc(&ShowModalForDialogs, "ShowModal");
293
SqPlus::SQClassDef<EditPairDlg>("EditPairDlg").
294
staticFuncVarArgs(&EditPairDlg_Ctor, "constructor", "*").
295
staticFunc(&ShowModalForDialogs, "ShowModal");
297
SqPlus::SQClassDef<EditPathDlg>("EditPathDlg").
298
staticFuncVarArgs(&EditPathDlg_Ctor, "constructor", "*").
299
staticFunc(&ShowModalForDialogs, "ShowModal").
300
func(&EditPathDlg::GetPath, "GetPath");
302
SqPlus::SQClassDef<GenericMultiLineNotesDlg>("GenericMultiLineNotesDlg").
303
staticFuncVarArgs(&GenericMultiLineNotesDlg_Ctor, "constructor", "*").
304
staticFunc(&ShowModalForDialogs, "ShowModal").
305
func(&GenericMultiLineNotesDlg::GetNotes, "GetNotes");
307
} // namespace ScriptBindings