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