From 475f1011de20ec6cc73c14b6aef9aef8ed4ab4e7 Mon Sep 17 00:00:00 2001 From: Markus Gans Date: Sun, 24 May 2015 19:15:03 +0200 Subject: [PATCH] Add an input field example --- ChangeLog | 3 + doc/fileopen-dialog.png | Bin 2279 -> 2319 bytes doc/newfont1.png | Bin 4554 -> 4589 bytes src/flineedit.cpp | 2 +- src/fwidget.cpp | 4 +- test/Makefile.am | 2 + test/Makefile.clang | 36 +++++++---- test/Makefile.gcc | 38 +++++++----- test/Makefile.in | 17 ++++-- test/dialog.cpp | 3 + test/input-dialog.cpp | 129 ++++++++++++++++++++++++++++++++++++++++ 11 files changed, 200 insertions(+), 34 deletions(-) create mode 100644 test/input-dialog.cpp diff --git a/ChangeLog b/ChangeLog index d09182d4..96da56dd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2015-24-05 Markus Gans + * Bug fix in FLineEdit (ypos from the label) + 2015-15-05 Markus Gans * Remove never read value from code * Add the possibility to use exec() from FMessageBox diff --git a/doc/fileopen-dialog.png b/doc/fileopen-dialog.png index 4ae193a72daf19b8728a8d13893ace5609189399..43d45bd02a602a47ee1e06ef0cea8d236acda23d 100644 GIT binary patch delta 2307 zcmYk8dpy(oAIC>Ex4D(smywJgnrL&$tzs(+F>}i$mocK;lF<^rncLWM>53B0#9V5L zP)IZ8B%I1RNR(C_Q@TjGI$-F8xV-Lwzf47kF~WmcX4Oh`ke&To#+9vn;JQ`VT2q$bP&SWqUo@1 z$eeWWjfX(wwrwm4NXd0z{ZNYP=wdJRdJCWgGs^Bb=mCL9M>`(GdD32fEFH)b87TEm z!&`l>-?|LGokiD0Y$pd+-1KiOthbte9{$$=qc?C~eowO_U7lL|u2?T`X!0uhO_|A4 z+oa*O=-Ink0tiI_uq%c%k!x;Cjgl;)h6mfo903vB1}_Mkxkjb@JSSI?l~TN?mG{ISmFir_nY=fV>aiaD0uj)?T(ga~EC`x1hgYD!>- zQFxm!l^9Ao14QNW1i)%RSt2`MnNYS>gn}pS5`4bY4P4j7E*7i7MDlSvGFHp`7(7>5 z*aupA57}R!1$scCao8(kSzy=G3A>pwf(EoONItByk}j(V<2Rv#oWPE0|0drZjJW4)lYnzL9-@n+s1=2z{^D9*Pi z)UD~cde0gLzu4)cYS``348yxt6jlDa5~HlItZbfQU)d*rR!3)aKZRUfW`YZ|(NRpd zjT)G@vC&pw4*||?m2x2w-taseABffjJmq6cWzY##UMW|Nfj*NCw|3}y-W-mDi{oi6 zT}tVom5GIUZ)5OvnGic^Z6Nc9={PZPVQEGTD2YqkZl{OG-zCRm3>qiW4A=4#Z)&P#NO5?RcI ztf(_6y#r3TL{cP%Dn>5)PcW3kp)ONL&S_VZj6o0MO%xZ-wms^Gr%wdsCsFJ<;I?7x z$dau44naFfKMzHo`?m1>r69L!fi6ap7ja&?0y;?_JwMqb|L&0Y+T?CLClXfuF=9p` zWb;NhoKO~rA{$y;NEZ8cqg8eAoQsYXP8E5NTS;t^#UN^ztzaHM9&yNDS`d#Pr~1}h zgq@XJz+1mUWLQ7HcgPnT2*Smgi1Jg^Xj^|F>%a+KE#b@63W1&OP}eux&%{?6gbEI65n!AN|^1=eydiL1+gs3(kk z%;8Ee_?d|7@Ev)q*}OQqm6qOjqkTzYVH<>P?Il)G{>eV36WCIPzrtK7SDWQp2O8C zttE*zHq&ab)Z|? zT^G&_;a)ses11An!?U~wqN7Pzg067#-5;CQEDQ|y6<_!MK)5^U*>o)`(5ce*1CWJ z-HTQ$*uCd@Q`jmwGkqZFZP7~;!K=DcAsX?NSGI#Ep18(osZl`r8ER=wqbr;FOc6_c ze_uAxGN-b~S};>-teWYK8GNPv6}msD-r?Oqa$^?t!JyDr=C89Ns)jgq-+DX8Aa#sA@unRdcliyiVS+8h}^P&@i-RR3>(h!FhEpjOS;vCW>Y Pe@-Bd_QZp?@nrfxpsN$B delta 2267 zcmYk8dpy%`8^;|Au@!mzd_zeNG0EmIrxL@Oy#{c? z_~>1*iAD98`!nB#-ywBbUtVp3m?k%Df+^fo-FLqAk1tySNGi>nvtp3|P+< z2DI{H8P&?CwKw9MH+w|Lfo!q28Oo~q?SY1RNGeb<;p&ATfqI=ly~c8Bw~7&mPIsRkaxpPJK-0p9Gzwbo?wN7&Ekbpp3$s*%L z-*#0&EC^|ZoDKV!n4DCw4GH9Jn~Ya*X&sUso4q^!ne&*T)xW*wLXqX{6R^C?o7iN{ zfR*cixlk8KusgNUIktqqOHSZn)8an4Q5;fWVDF!zw+d9`$Y!lJqNip;KTr2AV@($P zD2pZ;ueIE9%pzG(Bsjs!TiyOmCUDj_4D(WJ*G9ps^;L92C{!2U9!&t@b0Z{;H!{09 z_sWF@kFl@w%ah@stM1sLvSRo9$65FgG23tT7Li&Q#l6NZl(Ez~E`4bp)=9SZm2=g0 zJFhAalZvV!FYqI$0>4!h_Pu{wNOxHvInXh`!6u>o>|TKQ8MIX9XIOplLm1SLDyo6m za=d-`HEs_|-2X{2eFNnklbr)6pVp!s29CkA13A=;y{>93%`V+BQ* zdX!bgzYDj>w?IdpsB@NHcgm{^=f=e1`nyYpZx@fhh4M?o-*NfNt?xBOZ7Zlo1#!pq zp1~viNyG|T$a8|tpSwv4Iiz$Gr=%h~SpSkXl$i&}e=Be0zqj%VuM+E{(f0V}I$Rv+ zDE>4hG-lNlgp7hcJ0=Ei(HI{n0d&*HuF7V$@aka3afZRLcRJkl!hR(h9;};YXCs1n z6-+J#i*U^O@dTLbjNjgd6In@$$fjrv*U09;z!R|l&7!@e{KTS`d;JUJM#A6$kE~6J zkhhP*zeP?lo2kl>Xv>z+J9Gqv(X%Y3d80FK7;tFnZv|SHO(PAIh;YL=6($C2+*fx? z#4Ow@^onOc%NyZ6;1;S12W&v%z0MZBz#qZ^?1rAQPHNC-A*MMMn=DItRrRPBP!oC` zbZl>QCLz9!TweB66)LbI9gwXwz*+hrD8A|TLC8I|W}N7ko{yfQRE0GKCcc$e?%*wB z&V%~G;T?j@0Ia=k@n{Jrg@W}aKy+ewjnqv6zMdHAuz zC+DBAeHzK7@Ig0tevU;(H^Ebs7%mt~lkHL(j}Xu=|<5*jE0;hO9ZJqp+t8 zp%Y5}b-c6Erqa_yiUWN58}4BY@zf^3>I$x={wqaui~fpkK(D@Vq-yw;qi_~PYFhgT z%<&_`bTjwFk3rT&_+`@1H}B1S8KmKYB_CM?sKDkmHoYV@9DfSUddPwUfSw z(yd*Uk&KFK^3QSjm2C{slk(yJ#U3>IvXzz8{qnA6yH6Ojp^mr5^hP7=yNXk* za&nz-^Lh`W;aZI)QCIuEcifJr7q_ozePye%fc1^V`zd9l`58tmr92=yJ9bP%-=4_XqboOp3C*$Y=flm-q|)#5Z*tx~HYJ;sp6(ANnld35Pv)`yN~xV8Ou zW_vc0^pCiV96xD4eKIXpo9=MTo+&BwJC5qjl6_X9K3 diff --git a/doc/newfont1.png b/doc/newfont1.png index 2eeb228b0c0613a0142611bc8e248bccea8ae998..9956d85ee8319bf0d93ed08fdfbddbead21d97b5 100644 GIT binary patch delta 4507 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 U^{3$DdthgnoG>>iI!3+mKS}l=g#Z8m diff --git a/src/flineedit.cpp b/src/flineedit.cpp index 39db2525..c1a0a107 100644 --- a/src/flineedit.cpp +++ b/src/flineedit.cpp @@ -225,7 +225,7 @@ void FLineEdit::adjustLabel() label->setGeometry(xpos, ypos-1, label_length, 1); break; case label_left: - label->setGeometry(xpos-label_length, ypos-1, label_length, 1); + label->setGeometry(xpos-label_length, ypos, label_length, 1); break; } } diff --git a/src/fwidget.cpp b/src/fwidget.cpp index 018ee619..4ed06ae9 100644 --- a/src/fwidget.cpp +++ b/src/fwidget.cpp @@ -201,8 +201,8 @@ void FWidget::setColorTheme() wc.label_ellipsis_fg = fc::DarkGray; wc.inputfield_active_focus_fg = fc::White; wc.inputfield_active_focus_bg = fc::Cyan; - wc.inputfield_active_fg = fc::LightGray; - wc.inputfield_active_bg = fc::Cyan; + wc.inputfield_active_fg = fc::Black; + wc.inputfield_active_bg = fc::LightGray; wc.inputfield_inactive_fg = fc::DarkGray; wc.inputfield_inactive_bg = fc::LightGray; wc.toggle_button_active_focus_fg = fc::White; diff --git a/test/Makefile.am b/test/Makefile.am index 7211b38b..a3834d72 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -8,12 +8,14 @@ AM_CPPFLAGS = -Wall -Werror -I$(top_srcdir)/src noinst_PROGRAMS = \ hello \ dialog \ + input-dialog \ fstring \ timer \ ui hello_SOURCES = hello.cpp dialog_SOURCES = dialog.cpp +input_dialog_SOURCES = input-dialog.cpp fstring_SOURCES = fstring.cpp timer_SOURCES = timer.cpp ui_SOURCES = ui.cpp diff --git a/test/Makefile.clang b/test/Makefile.clang index f501e70c..ac45e5f6 100644 --- a/test/Makefile.clang +++ b/test/Makefile.clang @@ -12,10 +12,13 @@ MAKEFILE = -f Makefile.clang LDFLAGS = -L../src -lfinal INCLUDES = -I../src RM = rm -f -PROGS = ui fstring timer -OBJS = ui.o -OBJS2 = fstring.o -OBJS3 = timer.o +PROGS = hello dialog input-dialog fstring timer ui +OBJS1 = hello.o +OBJS2 = dialog.o +OBJS3 = input-dialog.o +OBJS4 = fstring.o +OBJS5 = timer.o +OBJS6 = ui.o ifdef DEBUG OPTIMIZE = -O0 @@ -30,16 +33,25 @@ endif .cpp.o: $(CXX) -c $(CCXFLAGS) $(INCLUDES) -o $@ $< -all: dep ui fstring timer +all: dep $(PROGS) -ui: $(OBJS) - $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o ui $(OBJS) +hello: $(OBJS1) + $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o hello $(OBJS1) -fstring: $(OBJS2) - $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o fstring $(OBJS2) +dialog: $(OBJS2) + $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o dialog $(OBJS2) -timer: $(OBJS3) - $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o timer $(OBJS3) +input-dialog: $(OBJS3) + $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o input-dialog $(OBJS3) + +fstring: $(OBJS4) + $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o fstring $(OBJS4) + +timer: $(OBJS5) + $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o timer $(OBJS5) + +ui: $(OBJS6) + $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o ui $(OBJS6) debug: $(MAKE) $(MAKEFILE) DEBUG="-g -D DEBUG -W -Wall -Weverything -Wpadded -pedantic" @@ -49,7 +61,7 @@ profile: .PHONY: clean dep clean: - $(RM) $(PROGS) $(OBJS) $(OBJS2) $(OBJS3) .depend *.gch *.plist *~ + $(RM) $(PROGS) $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(OBJS5) $(OBJS6) .depend *.gch *.plist *~ dep: $(CXX) -MM $(INCLUDES) *.cpp >.depend diff --git a/test/Makefile.gcc b/test/Makefile.gcc index d3a8de3f..5f0209ee 100644 --- a/test/Makefile.gcc +++ b/test/Makefile.gcc @@ -12,11 +12,13 @@ MAKEFILE = -f Makefile.gcc LDFLAGS = -L../src -lfinal INCLUDES = -I../src RM = rm -f -PROGS = ui fstring timer -OBJS0 = hello.o -OBJS1 = ui.o -OBJS2 = fstring.o -OBJS3 = timer.o +PROGS = hello dialog input-dialog fstring timer ui +OBJS1 = hello.o +OBJS2 = dialog.o +OBJS3 = input-dialog.o +OBJS4 = fstring.o +OBJS5 = timer.o +OBJS6 = ui.o ifdef DEBUG OPTIMIZE = -O0 @@ -31,19 +33,25 @@ endif .cpp.o: $(CXX) -c $(CCXFLAGS) $(INCLUDES) -o $@ $< -all: dep hello ui fstring timer +all: dep $(PROGS) -hello: $(OBJS0) - $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o hello $(OBJS0) +hello: $(OBJS1) + $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o hello $(OBJS1) -ui: $(OBJS1) - $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o ui $(OBJS1) +dialog: $(OBJS2) + $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o dialog $(OBJS2) -fstring: $(OBJS2) - $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o fstring $(OBJS2) +input-dialog: $(OBJS3) + $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o input-dialog $(OBJS3) -timer: $(OBJS3) - $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o timer $(OBJS3) +fstring: $(OBJS4) + $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o fstring $(OBJS4) + +timer: $(OBJS5) + $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o timer $(OBJS5) + +ui: $(OBJS6) + $(CXX) $(CCXFLAGS) $(INCLUDES) $(LDFLAGS) -o ui $(OBJS6) debug: $(MAKE) $(MAKEFILE) DEBUG="-g -D DEBUG -W -Wall -pedantic" @@ -53,7 +61,7 @@ profile: .PHONY: clean dep clean: - $(RM) $(PROGS) $(OBJS0) $(OBJS1) $(OBJS2) $(OBJS3) .depend *~ + $(RM) $(PROGS) $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(OBJS5) $(OBJS6) .depend *~ dep: $(CXX) -MM $(INCLUDES) *.cpp >.depend diff --git a/test/Makefile.in b/test/Makefile.in index 6527579e..08ffa790 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -82,8 +82,8 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -noinst_PROGRAMS = hello$(EXEEXT) dialog$(EXEEXT) fstring$(EXEEXT) \ - timer$(EXEEXT) ui$(EXEEXT) +noinst_PROGRAMS = hello$(EXEEXT) dialog$(EXEEXT) input-dialog$(EXEEXT) \ + fstring$(EXEEXT) timer$(EXEEXT) ui$(EXEEXT) subdir = test DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp @@ -111,6 +111,9 @@ fstring_LDADD = $(LDADD) am_hello_OBJECTS = hello.$(OBJEXT) hello_OBJECTS = $(am_hello_OBJECTS) hello_LDADD = $(LDADD) +am_input_dialog_OBJECTS = input-dialog.$(OBJEXT) +input_dialog_OBJECTS = $(am_input_dialog_OBJECTS) +input_dialog_LDADD = $(LDADD) am_timer_OBJECTS = timer.$(OBJEXT) timer_OBJECTS = $(am_timer_OBJECTS) timer_LDADD = $(LDADD) @@ -152,9 +155,9 @@ am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = SOURCES = $(dialog_SOURCES) $(fstring_SOURCES) $(hello_SOURCES) \ - $(timer_SOURCES) $(ui_SOURCES) + $(input_dialog_SOURCES) $(timer_SOURCES) $(ui_SOURCES) DIST_SOURCES = $(dialog_SOURCES) $(fstring_SOURCES) $(hello_SOURCES) \ - $(timer_SOURCES) $(ui_SOURCES) + $(input_dialog_SOURCES) $(timer_SOURCES) $(ui_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -305,6 +308,7 @@ AM_LDFLAGS = -L$(top_builddir)/src/.libs -lfinal AM_CPPFLAGS = -Wall -Werror -I$(top_srcdir)/src hello_SOURCES = hello.cpp dialog_SOURCES = dialog.cpp +input_dialog_SOURCES = input-dialog.cpp fstring_SOURCES = fstring.cpp timer_SOURCES = timer.cpp ui_SOURCES = ui.cpp @@ -364,6 +368,10 @@ hello$(EXEEXT): $(hello_OBJECTS) $(hello_DEPENDENCIES) $(EXTRA_hello_DEPENDENCIE @rm -f hello$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(hello_OBJECTS) $(hello_LDADD) $(LIBS) +input-dialog$(EXEEXT): $(input_dialog_OBJECTS) $(input_dialog_DEPENDENCIES) $(EXTRA_input_dialog_DEPENDENCIES) + @rm -f input-dialog$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(input_dialog_OBJECTS) $(input_dialog_LDADD) $(LIBS) + timer$(EXEEXT): $(timer_OBJECTS) $(timer_DEPENDENCIES) $(EXTRA_timer_DEPENDENCIES) @rm -f timer$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(timer_OBJECTS) $(timer_LDADD) $(LIBS) @@ -381,6 +389,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstring.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hello.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/input-dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui.Po@am__quote@ diff --git a/test/dialog.cpp b/test/dialog.cpp index e2b5fc0e..559c54f2 100644 --- a/test/dialog.cpp +++ b/test/dialog.cpp @@ -5,6 +5,9 @@ #include "fdialog.h" #include "flabel.h" +// function prototype +void cb_quit (FWidget*, void* data_ptr); + //---------------------------------------------------------------------- // callback function //---------------------------------------------------------------------- diff --git a/test/input-dialog.cpp b/test/input-dialog.cpp new file mode 100644 index 00000000..d0e272e3 --- /dev/null +++ b/test/input-dialog.cpp @@ -0,0 +1,129 @@ +// dialog.cpp + +#include "fapp.h" +#include "fbutton.h" +#include "fbuttongroup.h" +#include "fcheckbox.h" +#include "fdialog.h" +#include "flineedit.h" +#include "fradiobutton.h" + +// function prototypes +void cb_quit (FWidget*, void* data_ptr); +void cb_publish (FWidget* widget, void* data_ptr); + +//---------------------------------------------------------------------- +// callback functions +//---------------------------------------------------------------------- +void cb_quit (FWidget*, void* data_ptr) +{ + FApplication* app = static_cast(data_ptr); + app->quit(); +} + +void cb_publish (FWidget* widget, void* data_ptr) +{ + FCheckBox* cbox1 = static_cast(widget); + FCheckBox* cbox2 = static_cast(data_ptr); + + if ( cbox1->isChecked() ) + cbox2->setEnable(); + else + { + cbox2->unsetChecked(); + cbox2->setDisable(); + } + cbox2->redraw(); +} + +//---------------------------------------------------------------------- +// main part +//---------------------------------------------------------------------- +int main (int argc, char* argv[]) +{ + // Create the application object + FApplication app(argc, argv); + + // Create a simple dialog box + FDialog dgl(&app); + dgl.setText ("Data input"); + dgl.setGeometry (4, 3, 37, 22); + dgl.setShadow(); + + // Create input fields + FLineEdit* name_field = new FLineEdit(&dgl); + FLineEdit* email_field = new FLineEdit(&dgl); + FLineEdit* org_field = new FLineEdit(&dgl); + FLineEdit* city_field = new FLineEdit(&dgl); + FLineEdit* st_field = new FLineEdit(&dgl); + FLineEdit* c_field = new FLineEdit(&dgl); + + name_field->setLabelText(L"&Name:"); + email_field->setLabelText(L"&Email:"); + org_field->setLabelText(L"Or&ganization:"); + city_field->setLabelText(L"&City:"); + st_field->setLabelText(L"&State:"); + c_field->setLabelText(L"&Country:"); + + name_field->setGeometry(15, 1, 19, 1); + email_field->setGeometry(15, 3, 19, 1); + org_field->setGeometry(15, 5, 19, 1); + city_field->setGeometry(15, 7, 19, 1); + st_field->setGeometry(15, 9, 19, 1); + c_field->setGeometry(15, 11, 4, 1); + + name_field->setShadow(); + email_field->setShadow(); + org_field->setShadow(); + city_field->setShadow(); + st_field->setShadow(); + c_field->setShadow(); + + name_field->setFocus(); + + // Create the button group + FButtonGroup* radioButtonGroup = new FButtonGroup("Sex", &dgl); + radioButtonGroup->setGeometry(2, 13, 13, 4); + + // Create radio buttons + FRadioButton* male = new FRadioButton("&Male", radioButtonGroup); + FRadioButton* female = new FRadioButton("&Female",radioButtonGroup); + male->setGeometry(1, 1, 7, 1); + female->setGeometry(1, 2, 7, 1); + + // Create another button group + FButtonGroup* checkButtonGroup = new FButtonGroup("&Data options", &dgl); + checkButtonGroup->setGeometry(16, 13, 19, 4); + + // Create checkbox buttons + FCheckBox* check1 = new FCheckBox("Save data", checkButtonGroup); + FCheckBox* check2 = new FCheckBox("Encrypt data", checkButtonGroup); + check1->setGeometry(1, 1, 7, 1); + check2->setGeometry(1, 2, 7, 1); + check2->setDisable(); + + // Create a OK button + FButton btn("&OK", &dgl); + btn.setGeometry (24, 18, 10, 1); + btn.setShadow(); + + // Connect checkbox signal "clicked" with a callback function + check1->addCallback + ( + "clicked", + reinterpret_cast(&cb_publish), + check2 + ); + + // Connect the button signal "clicked" with the callback function + btn.addCallback + ( + "clicked", + reinterpret_cast(&cb_quit), + &app + ); + + app.setMainWidget(&dgl); + dgl.show(); + return app.exec(); +}