00001
00002 #ifdef HAVE_CONFIG_H
00003 # include <config.h>
00004 #endif
00005
00006 #ifdef OS_WIN32
00007 # include <windows.h>
00008 # define sleep(x) Sleep(x)
00009 #endif
00010
00011
00012 #undef BUILDING_FOX16_GUI
00013
00014
00015 #include <gwen-gui-fox16/fox16_gui.hpp>
00016 #include "fox16_htmlctx.hpp"
00017 #include "fox16_htmllabel.hpp"
00018 #include "fox16_htmltext.hpp"
00019
00020 #include "../testdialogs/dlg_test.h"
00021 #include "../testdialogs/dlg_test2.h"
00022
00023 #include <gwenhywfar/debug.h>
00024
00025
00026
00027 int test1(int argc, char **argv) {
00028 FXApp a("libtest","Martin Preuss");
00029 FOX16_Gui *gui;
00030
00031 const char testString[]=
00032 #if 0
00033 # if 0
00034 "This is <b>a</b> test. "
00035 "And this, is the second line: followed by something else."
00036 "<table>"
00037 " <tr>"
00038 " <th>header1</th>"
00039 " <th>header2</th>"
00040 " </tr>"
00041 " <tr>"
00042 " <td>data1</td>"
00043 " <td>data2</td>"
00044 " </tr>"
00045 "</table>"
00046 "And this is after the table.<br>"
00047 "and this <font color=\"red\">one</font> is red.";
00048 # else
00049 "This is before right"
00050 "<right>RIGHT</right>"
00051 "and this after right.";
00052 # endif
00053 #else
00054 "word";
00055 #endif
00056
00057 a.init(argc,argv);
00058 a.create();
00059
00060 gui=new FOX16_Gui(&a);
00061 GWEN_Gui_SetGui(gui->getCInterface());
00062
00063 FOX16_HtmlCtx ctx(0);
00064 ctx.setText(testString);
00065
00066
00067 ctx.dump();
00068
00069 GWEN_Gui_SetGui(NULL);
00070 delete gui;
00071
00072 return 0;
00073 }
00074
00075
00076
00077
00078 int test2(int argc, char **argv) {
00079 FXApp application("libtest","Martin Preuss");
00080 FOX16_Gui *gui;
00081 int rv;
00082 uint32_t id1;
00083 uint32_t id2;
00084 uint64_t i1;
00085 uint64_t i2;
00086
00087 application.init(argc,argv);
00088
00089 application.create();
00090
00091 gui=new FOX16_Gui(&application);
00092 GWEN_Gui_SetGui(gui->getCInterface());
00093
00094 id1=GWEN_Gui_ProgressStart(GWEN_GUI_PROGRESS_SHOW_LOG |
00095 GWEN_GUI_PROGRESS_SHOW_ABORT |
00096 GWEN_GUI_PROGRESS_KEEP_OPEN,
00097 "Progress-Title",
00098 "<html>"
00099 "<p><b>This</b> is an example <i>text</i>..</p>"
00100 "<p>As you can see <font color=red>colors</font> can "
00101 "be used.</p>"
00102 "</html>",
00103 15,
00104 0);
00105 for (i1=1; i1<=15; i1++) {
00106 GWEN_Gui_ProgressLog2(id1, GWEN_LoggerLevel_Notice,
00107 "Step %d: This is a another step in the test of progress widgets",
00108 (int) i1);
00109 id2=GWEN_Gui_ProgressStart(GWEN_GUI_PROGRESS_SHOW_LOG |
00110 GWEN_GUI_PROGRESS_DELAY |
00111 GWEN_GUI_PROGRESS_SHOW_ABORT,
00112 "2nd progress",
00113 "Starting 2nd progress...",
00114 5,
00115 id1);
00116 for (i2=1; i2<=3; i2++) {
00117 sleep(1);
00118 fprintf(stderr, "Advancing %d/%d\n", (int)i1, (int)i2);
00119 rv=GWEN_Gui_ProgressAdvance(id2, i2);
00120 if (rv==GWEN_ERROR_USER_ABORTED) {
00121 fprintf(stderr, "Aborted by user\n");
00122 break;
00123 }
00124 }
00125 GWEN_Gui_ProgressEnd(id2);
00126
00127 rv=GWEN_Gui_ProgressAdvance(id1, i1);
00128 if (rv==GWEN_ERROR_USER_ABORTED) {
00129 fprintf(stderr, "Aborted by user\n");
00130 break;
00131 }
00132 }
00133
00134 GWEN_Gui_ProgressEnd(id1);
00135
00136 return 0;
00137 }
00138
00139
00140
00141 int test3(int argc, char **argv) {
00142 FXApp a("libtest","Martin Preuss");
00143 FOX16_HtmlLabel *label;
00144 FOX16_Gui *gui;
00145 FXDialogBox *dbox;
00146 FXVerticalFrame *vf;
00147 const char testString[]=
00148 #if 1
00149 "<h1>Title</h1>"
00150 "<h2>Subtitle</h2>"
00151 "This is <b>a</b> test. "
00152 "And this, is the second line: followed by something else."
00153 "<right>This should be right aligned</right>"
00154 "<table>"
00155 " <tr>"
00156 " <th>header1</th>"
00157 " <th>header2</th>"
00158 " </tr>"
00159 " <tr>"
00160 " <td>data1</td>"
00161 " <td>this is longer data (data2)</td>"
00162 " </tr>"
00163 "</table>"
00164 "And this is after the table.<br>"
00165 "and this <font color=\"red\">one</font> is red.";
00166 #else
00167 "This is before right"
00168 "<right>Right</right>"
00169 "and this after right.";
00170 #endif
00171 a.init(argc,argv);
00172 a.create();
00173
00174 gui=new FOX16_Gui(&a);
00175 GWEN_Gui_SetGui(gui->getCInterface());
00176
00177 dbox=new FXDialogBox(&a, "Test", DECOR_ALL);
00178 vf=new FXVerticalFrame(dbox, LAYOUT_FILL_X | LAYOUT_FILL_Y,
00179 0, 0, 0, 0, 1, 1, 1, 1);
00180 label=new FOX16_HtmlLabel(vf, FXString(testString), LAYOUT_FILL_X|LAYOUT_FILL_Y);
00181 new FXSpring(vf, LAYOUT_FILL_X | LAYOUT_FILL_Y);
00182 new FXLabel(vf, "Normal Testlabel");
00183
00184 dbox->create();
00185 dbox->resize(300, 200);
00186 dbox->show();
00187 a.runModalFor(dbox);
00188
00189 return 0;
00190 }
00191
00192
00193
00194 int test4(int argc, char **argv) {
00195 FXApp application("libtest","Martin Preuss");
00196 FOX16_Gui *gui;
00197 int rv;
00198 uint32_t id1;
00199 uint32_t id2;
00200 uint64_t i1;
00201 uint64_t i2;
00202
00203 application.init(argc,argv);
00204
00205 application.create();
00206
00207 gui=new FOX16_Gui(&application);
00208 GWEN_Gui_SetGui(gui->getCInterface());
00209
00210 id1=GWEN_Gui_ProgressStart(GWEN_GUI_PROGRESS_SHOW_LOG |
00211 GWEN_GUI_PROGRESS_SHOW_ABORT |
00212 GWEN_GUI_PROGRESS_KEEP_OPEN,
00213 "Progress-Title",
00214 "<html>"
00215 "<p><b>Test</b> f\xc3\xbcr Umlaute.</p>"
00216 "</html>",
00217 10,
00218 0);
00219 for (i1=1; i1<=10; i1++) {
00220 char numbuf[128];
00221
00222 snprintf(numbuf, sizeof(numbuf)-1, "Step %d", (int)i1);
00223 GWEN_Gui_ProgressLog(id1, GWEN_LoggerLevel_Notice, numbuf);
00224 id2=GWEN_Gui_ProgressStart(GWEN_GUI_PROGRESS_SHOW_LOG |
00225 GWEN_GUI_PROGRESS_DELAY |
00226 GWEN_GUI_PROGRESS_SHOW_ABORT,
00227 "2nd progress",
00228 "Starting 2nd progress...",
00229 10,
00230 id1);
00231 for (i2=1; i2<=10; i2++) {
00232 sleep(1);
00233 fprintf(stderr, "Advancing %d/%d\n", (int)i1, (int)i2);
00234 rv=GWEN_Gui_ProgressAdvance(id2, i2);
00235 if (rv==GWEN_ERROR_USER_ABORTED) {
00236 fprintf(stderr, "Aborted by user\n");
00237 break;
00238 }
00239 }
00240 GWEN_Gui_ProgressEnd(id2);
00241
00242 rv=GWEN_Gui_ProgressAdvance(id1, i1);
00243 if (rv==GWEN_ERROR_USER_ABORTED) {
00244 fprintf(stderr, "Aborted by user\n");
00245 break;
00246 }
00247 }
00248
00249 GWEN_Gui_ProgressEnd(id1);
00250
00251 return 0;
00252 }
00253
00254
00255
00256 int test5(int argc, char **argv) {
00257 FXApp a("libtest","Martin Preuss");
00258 FOX16_HtmlText *label;
00259 FOX16_Gui *gui;
00260 FXDialogBox *dbox;
00261 FXVerticalFrame *vf;
00262 const char testString[]=
00263 #if 1
00264 "<h1>Test5</h1>"
00265 "<h2>Subtitle</h2>"
00266 "This is <b>a</b> test. "
00267 "And this, is the second line: followed by something else."
00268 "<right>This should be right aligned</right>"
00269 "<table>"
00270 " <tr>"
00271 " <th>header1</th>"
00272 " <th>header2</th>"
00273 " </tr>"
00274 " <tr>"
00275 " <td>data1</td>"
00276 " <td>this is longer data (data2)</td>"
00277 " </tr>"
00278 "</table>"
00279 "And this is after the table.<br>"
00280 "and this <font color=\"red\">one</font> is red.";
00281 #else
00282 "This is before right"
00283 "<right>Right</right>"
00284 "and this after right.";
00285 #endif
00286 a.init(argc,argv);
00287 a.create();
00288
00289 gui=new FOX16_Gui(&a);
00290 GWEN_Gui_SetGui(gui->getCInterface());
00291
00292 dbox=new FXDialogBox(&a, "Test", DECOR_ALL);
00293 vf=new FXVerticalFrame(dbox, LAYOUT_FILL_X | LAYOUT_FILL_Y,
00294 0, 0, 0, 0, 1, 1, 1, 1);
00295 label=new FOX16_HtmlText(vf, FXString(testString),
00296 LAYOUT_FILL_X|LAYOUT_FILL_Y |
00297 HSCROLLING_OFF | VSCROLLER_ALWAYS);
00298 new FXSpring(vf, LAYOUT_FILL_X | LAYOUT_FILL_Y);
00299 new FXLabel(vf, "Normal Testlabel");
00300
00301 dbox->create();
00302 dbox->resize(300, 200);
00303 dbox->show();
00304 a.runModalFor(dbox);
00305
00306 return 0;
00307 }
00308
00309
00310
00311 int test6(int argc, char **argv) {
00312 FXApp application("libtest","Martin Preuss");
00313 FOX16_Gui *gui;
00314 int rv;
00315 uint32_t id1;
00316 uint32_t id2;
00317 uint64_t i1;
00318 uint64_t i2;
00319
00320 application.init(argc,argv);
00321
00322 application.create();
00323
00324 gui=new FOX16_Gui(&application);
00325 GWEN_Gui_SetGui(gui->getCInterface());
00326
00327 id1=GWEN_Gui_ProgressStart(GWEN_GUI_PROGRESS_SHOW_LOG |
00328 GWEN_GUI_PROGRESS_SHOW_ABORT |
00329 GWEN_GUI_PROGRESS_KEEP_OPEN,
00330 "Progress-Title",
00331 "<html>"
00332 "<p><b>Test</b> f\xc3\xbcr Umlaute.</p>"
00333 "</html>",
00334 10,
00335 0);
00336 for (i1=1; i1<=20; i1++) {
00337 char numbuf[128];
00338
00339 snprintf(numbuf, sizeof(numbuf)-1, "Step %d", (int)i1);
00340 GWEN_Gui_ProgressLog(id1, GWEN_LoggerLevel_Notice, numbuf);
00341 id2=GWEN_Gui_ProgressStart(GWEN_GUI_PROGRESS_SHOW_LOG |
00342 GWEN_GUI_PROGRESS_DELAY |
00343 GWEN_GUI_PROGRESS_SHOW_ABORT,
00344 "2nd progress",
00345 "Starting 2nd progress...",
00346 5,
00347 id1);
00348 for (i2=1; i2<=5; i2++) {
00349 sleep(1);
00350 fprintf(stderr, "Advancing %d/%d\n", (int)i1, (int)i2);
00351 GWEN_Gui_ProgressLog(id2, GWEN_LoggerLevel_Notice, "Advancing...");
00352 rv=GWEN_Gui_ProgressAdvance(id2, i2);
00353 if (rv==GWEN_ERROR_USER_ABORTED) {
00354 fprintf(stderr, "Aborted by user\n");
00355 break;
00356 }
00357 }
00358 GWEN_Gui_ProgressEnd(id2);
00359
00360 rv=GWEN_Gui_ProgressAdvance(id1, i1);
00361 if (rv==GWEN_ERROR_USER_ABORTED) {
00362 fprintf(stderr, "Aborted by user\n");
00363 break;
00364 }
00365 }
00366
00367 GWEN_Gui_ProgressEnd(id1);
00368
00369 return 0;
00370 }
00371
00372
00373
00374 int test7(int argc, char **argv) {
00375 FXApp application("libtest","Martin Preuss");
00376 FOX16_Gui *gui;
00377 char buffer[65];
00378
00379 application.init(argc,argv);
00380
00381 application.create();
00382
00383 gui=new FOX16_Gui(&application);
00384 GWEN_Gui_SetGui(gui->getCInterface());
00385
00386 GWEN_Gui_InputBox(GWEN_GUI_INPUT_FLAGS_SHOW,
00387 "This is the Title",
00388 "<html>This is the text.</html>This is ASCII",
00389 buffer,
00390 1,
00391 sizeof(buffer)-1,
00392 0);
00393
00394
00395 return 0;
00396 }
00397
00398
00399
00400 int test8(int argc, char **argv) {
00401 FXApp application("libtest","Martin Preuss");
00402 FOX16_Gui *gui;
00403 int rv;
00404 GWEN_DIALOG *dlg;
00405
00406 application.init(argc,argv);
00407
00408 application.create();
00409
00410 gui=new FOX16_Gui(&application);
00411 GWEN_Gui_SetGui(gui->getCInterface());
00412
00413
00414 GWEN_Logger_SetLevel(0, GWEN_LoggerLevel_Debug);
00415 GWEN_Logger_SetLevel(GWEN_LOGDOMAIN, GWEN_LoggerLevel_Verbous);
00416
00417 dlg=Dlg_Test1_new();
00418 if (dlg==NULL) {
00419 fprintf(stderr, "Could not create dialog.\n");
00420 return 2;
00421 }
00422
00423 rv=GWEN_Gui_ExecDialog(dlg, 0);
00424 fprintf(stderr, "Result: %d\n", rv);
00425
00426 return 0;
00427 }
00428
00429
00430
00431 int test9(int argc, char **argv) {
00432 FXApp application("libtest","Martin Preuss");
00433 FOX16_Gui *gui;
00434 int rv;
00435 GWEN_DIALOG *dlg;
00436
00437 application.init(argc,argv);
00438
00439 application.create();
00440
00441 gui=new FOX16_Gui(&application);
00442 GWEN_Gui_SetGui(gui->getCInterface());
00443
00444
00445 GWEN_Logger_SetLevel(0, GWEN_LoggerLevel_Debug);
00446 GWEN_Logger_SetLevel(GWEN_LOGDOMAIN, GWEN_LoggerLevel_Verbous);
00447
00448 dlg=Dlg_Test2_new();
00449 if (dlg==NULL) {
00450 fprintf(stderr, "Could not create dialog.\n");
00451 return 2;
00452 }
00453
00454 rv=GWEN_Gui_ExecDialog(dlg, 0);
00455 fprintf(stderr, "Result: %d\n", rv);
00456
00457 return 0;
00458 }
00459
00460
00461
00462
00463 int main(int argc, char **argv) {
00464 if (argc>1) {
00465 if (strcasecmp(argv[1], "1")==0)
00466 return test1(argc, argv);
00467 else if (strcasecmp(argv[1], "2")==0)
00468 return test2(argc, argv);
00469 else if (strcasecmp(argv[1], "3")==0)
00470 return test3(argc, argv);
00471 else if (strcasecmp(argv[1], "4")==0)
00472 return test4(argc, argv);
00473 else if (strcasecmp(argv[1], "5")==0)
00474 return test5(argc, argv);
00475 else if (strcasecmp(argv[1], "6")==0)
00476 return test6(argc, argv);
00477 else if (strcasecmp(argv[1], "7")==0)
00478 return test7(argc, argv);
00479 else if (strcasecmp(argv[1], "8")==0)
00480 return test8(argc, argv);
00481 else if (strcasecmp(argv[1], "9")==0)
00482 return test9(argc, argv);
00483 }
00484 else
00485 return test7(argc, argv);
00486 }
00487
00488
00489