buttonall.pp 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. program buttonall;
  2. uses xforms;
  3. type TFD_buttform = record
  4. buttform : PFL_FORM;
  5. vdata : pointer;
  6. ldata : Longint;
  7. backface,done,objsgroup,bbutt,pbutt,bw_obj : PFL_OBJECT;
  8. end;
  9. PFD_buttform = ^TFD_buttform;
  10. Procedure done_cb(ob : PFL_OBJECT; data : longint);cdecl;
  11. begin
  12. halt(0);
  13. end;
  14. procedure bw_cb(ob : PFL_OBJECT; data : longint);cdecl;
  15. const
  16. bws : array [0..7] of longint = (-4,-3,-2,-1,1,2,3,4);
  17. var
  18. n : longint;
  19. fdui : PFD_BUTTform;
  20. begin
  21. n:=fl_get_choice(ob)-1;
  22. fdui:=ob^.form^.fdui;
  23. fl_freeze_form(ob^.form);
  24. fl_set_object_bw(fdui^.backface, bws[n]);
  25. fl_set_object_bw(fdui^.objsgroup, bws[n]);
  26. { redrawing the backface wipes out the done button. Redraw it }
  27. fl_redraw_object(fdui^.done);
  28. fl_unfreeze_form(ob^.form);
  29. end;
  30. function create_form_buttform : PFD_buttform;
  31. var
  32. obj : PFL_OBJECT;
  33. fdui : PFD_buttform;
  34. begin
  35. new(fdui);
  36. fdui^.buttform := fl_bgn_form(FL_NO_BOX, 290, 260);
  37. obj := fl_add_box(FL_UP_BOX,0,0,290,260,'');
  38. fdui^.backface := obj;
  39. obj := fl_add_button(FL_NORMAL_BUTTON,185,215,90,30,'Done');
  40. fdui^.done := obj;
  41. fl_set_object_callback(obj,PFL_CALLBACKPTR(@done_cb),0);
  42. fdui^.objsgroup := fl_bgn_group();
  43. obj := fl_add_frame(FL_ENGRAVED_FRAME,175,170,100,30,'');
  44. fl_set_object_color(obj,FL_COL1,FL_GREEN);
  45. obj := fl_add_round3dbutton(FL_PUSH_BUTTON,210,170,30,30,'');
  46. fl_set_object_color(obj,FL_COL1,FL_GREEN);
  47. obj := fl_add_bitmapbutton(FL_NORMAL_BUTTON,25,85,40,40,'bitmapbutton');
  48. fdui^.bbutt := obj ;
  49. fl_set_object_color(obj,FL_COL1,FL_BLACK);
  50. obj := fl_add_pixmapbutton(FL_NORMAL_BUTTON,25,25,40,40,'pixmapbutton');
  51. fdui^.pbutt := obj;
  52. obj := fl_add_checkbutton(FL_RADIO_BUTTON,100,31,70,32,'Red');
  53. fl_set_object_color(obj,FL_COL1,FL_RED);
  54. obj := fl_add_checkbutton(FL_RADIO_BUTTON,100,60,70,32,'Green');
  55. fl_set_object_color(obj,FL_COL1,FL_GREEN);
  56. obj := fl_add_checkbutton(FL_RADIO_BUTTON,100,90,70,32,'Blue');
  57. fl_set_object_color(obj,FL_COL1,FL_BLUE);
  58. obj := fl_add_lightbutton(FL_PUSH_BUTTON,20,170,92,30,'LightButton');
  59. fl_set_button(obj, 1);
  60. obj := fl_add_roundbutton(FL_PUSH_BUTTON,200,35,75,25,'Red');
  61. fl_set_object_color(obj,FL_COL1,FL_RED);
  62. obj := fl_add_roundbutton(FL_PUSH_BUTTON,200,64,75,25,'Green');
  63. fl_set_object_color(obj,FL_COL1,FL_GREEN);
  64. obj := fl_add_roundbutton(FL_PUSH_BUTTON,200,93,75,25,'Blue');
  65. fl_set_object_color(obj,FL_COL1,FL_BLUE);
  66. obj := fl_add_round3dbutton(FL_PUSH_BUTTON,180,170,30,30,'');
  67. fl_set_object_color(obj,FL_COL1,FL_RED);
  68. obj := fl_add_round3dbutton(FL_PUSH_BUTTON,240,170,30,30,'');
  69. fl_set_object_color(obj,FL_COL1,FL_BLUE);
  70. obj := fl_add_button(FL_PUSH_BUTTON,130,210,30,30,'go');
  71. fl_set_object_boxtype(obj,FL_OVAL3D_UPBOX);
  72. fl_set_object_lstyle(obj,FL_BOLD_STYLE);
  73. obj := fl_add_button(FL_NORMAL_BUTTON,20,210,90,30,'Button');
  74. fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX);
  75. obj := fl_add_choice(FL_NORMAL_CHOICE2,105,135,80,30,'BW');
  76. fdui^.bw_obj := obj;
  77. fl_set_object_callback(obj,PFL_CALLBACKPTR(@bw_cb),0);
  78. obj := fl_add_labelframe(FL_ENGRAVED_FRAME,190,25,85,100,'RoundButton');
  79. obj := fl_add_labelframe(FL_ENGRAVED_FRAME,90,25,90,100,'CheckButton');
  80. fl_end_group();
  81. fl_end_form();
  82. fdui^.buttform^.fdui := fdui;
  83. create_form_buttform:=fdui;
  84. end;
  85. var fd_buttform : PFD_buttform;
  86. begin
  87. fl_initialize(@argc, argv, '', nil, 0);
  88. fd_buttform := create_form_buttform;
  89. fl_set_pixmapbutton_file(fd_buttform^.pbutt,'crab45.xpm');
  90. fl_set_bitmapbutton_file(fd_buttform^.bbutt,'bm1.xbm');
  91. fl_addto_choice(fd_buttform^.bw_obj,' -4 | -3 | -2 | -1 | 1| 2| 3| 4');
  92. fl_set_choice(fd_buttform^.bw_obj,7);
  93. fl_show_form(fd_buttform^.buttform,FL_PLACE_CENTER,FL_FULLBORDER,'buttform');
  94. while (fl_do_forms<>nil) do ;
  95. end.