1 /*
2 fxasq_c.cpp - Plain "C" wrapper for fxasq.cpp
3 Copyright (c) 2007-2009 Jeffrey Pohlmeyer <yetanothergeek@gmail.com>
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 */
19
20 #include <fx.h>
21
22 #include "fxasq.h"
23
fxasq_free_results(FxAsqItem * results)24 void fxasq_free_results(FxAsqItem*results)
25 {
26 FxAsqItem*p1=results;
27 FxAsqItem*p2=NULL;
28 while (p1) {
29 if (p1->key) { free(p1->key); }
30 if (p1->value) { free(p1->value); }
31 p2=p1->next;
32 free(p1);
33 p1=p2;
34 }
35 }
36
37
38
39
fxasq_new(const char * title,const char ** buttons)40 FxAsqDlg* fxasq_new(const char*title, const char **buttons)
41 {
42 return (FxAsqDlg*)(new FxAsqWin(title,buttons));
43 }
44
45
46 #define Dlg ((FxAsqWin*)(dlg))
47
fxasq_run(FxAsqDlg * dlg,int * btn,void * user_data)48 FxAsqItem* fxasq_run(FxAsqDlg*dlg, int*btn, void *user_data)
49 {
50 FxAsqItem*results=NULL;
51 int rv=Dlg->Run(&results);
52 if (btn) { *btn=rv; }
53 return results;
54 }
55
56
57
fxasq_free(FxAsqDlg * dlg)58 void fxasq_free(FxAsqDlg*dlg)
59 {
60 delete Dlg;
61 }
62
63
64
fxasq_text(FxAsqDlg * dlg,FxAsqStr key,FxAsqStr value,FxAsqStr label)65 void fxasq_text(FxAsqDlg *dlg, FxAsqStr key, FxAsqStr value, FxAsqStr label)
66 {
67 Dlg->Text(key,value,label);
68 }
69
70
71
fxasq_password(FxAsqDlg * dlg,FxAsqStr key,FxAsqStr value,FxAsqStr label)72 void fxasq_password(FxAsqDlg *dlg, FxAsqStr key, FxAsqStr value, FxAsqStr label)
73 {
74 Dlg->Password(key,value,label);
75 }
76
77
78
fxasq_textarea(FxAsqDlg * dlg,FxAsqStr key,FxAsqStr value,FxAsqStr label)79 void fxasq_textarea(FxAsqDlg *dlg, FxAsqStr key, FxAsqStr value, FxAsqStr label)
80 {
81 Dlg->TextArea(key,value,label);
82 }
83
84
85
fxasq_file(FxAsqDlg * dlg,FxAsqStr key,FxAsqStr value,FxAsqStr label)86 void fxasq_file(FxAsqDlg *dlg, FxAsqStr key, FxAsqStr value, FxAsqStr label)
87 {
88 Dlg->File(key,value,label);
89 }
90
91
92
fxasq_color(FxAsqDlg * dlg,FxAsqStr key,FxAsqStr value,FxAsqStr label)93 void fxasq_color(FxAsqDlg *dlg, FxAsqStr key, FxAsqStr value, FxAsqStr label)
94 {
95 Dlg->Color(key,value,label);
96 }
97
98
99
fxasq_font(FxAsqDlg * dlg,FxAsqStr key,FxAsqStr value,FxAsqStr label)100 void fxasq_font(FxAsqDlg *dlg, FxAsqStr key, FxAsqStr value, FxAsqStr label)
101 {
102 Dlg->Font(key,value,label);
103 }
104
105
106
107
fxasq_group(FxAsqDlg * dlg,FxAsqStr key,FxAsqStr value,FxAsqStr label)108 void fxasq_group(FxAsqDlg *dlg, FxAsqStr key, FxAsqStr value, FxAsqStr label)
109 {
110 Dlg->Group(key,value,label);
111 }
112
113
114
fxasq_radio(FxAsqDlg * dlg,FxAsqStr key,FxAsqStr value,FxAsqStr label)115 void fxasq_radio(FxAsqDlg *dlg, FxAsqStr key, FxAsqStr value, FxAsqStr label)
116 {
117 Dlg->Radio(key,value,label);
118 }
119
120
121
fxasq_select(FxAsqDlg * dlg,FxAsqStr key,FxAsqStr value,FxAsqStr label)122 void fxasq_select(FxAsqDlg *dlg, FxAsqStr key, FxAsqStr value, FxAsqStr label)
123 {
124 Dlg->Select(key,value,label);
125 }
126
127
128
fxasq_option(FxAsqDlg * dlg,FxAsqStr key,FxAsqStr value,FxAsqStr label)129 void fxasq_option(FxAsqDlg *dlg, FxAsqStr key, FxAsqStr value, FxAsqStr label)
130 {
131 Dlg->Option(key,value,label);
132 }
133
134
135
136
fxasq_checkbox(FxAsqDlg * dlg,FxAsqStr key,int value,FxAsqStr label)137 void fxasq_checkbox(FxAsqDlg *dlg, FxAsqStr key, int value, FxAsqStr label)
138 {
139 Dlg->CheckBox(key,value,label);
140 }
141
142
143
144
fxasq_label(FxAsqDlg * dlg,FxAsqStr text)145 void fxasq_label(FxAsqDlg *dlg, FxAsqStr text)
146 {
147 Dlg->Label(text);
148 }
149
150
151
fxasq_heading(FxAsqDlg * dlg,FxAsqStr text)152 void fxasq_heading(FxAsqDlg *dlg, FxAsqStr text)
153 {
154 Dlg->HR();
155 Dlg->Label(text);
156 }
157
158
159
fxasq_hr(FxAsqDlg * dlg)160 void fxasq_hr(FxAsqDlg *dlg)
161 {
162 Dlg->HR();
163 }
164
165