borderwidth.pp 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. program borderwidth;
  2. uses xforms;
  3. type TFD_bwform = record
  4. bwform : PFL_FORM;
  5. vdata : pointer;
  6. ldata : longint;
  7. done,
  8. bw_choice,
  9. bwgroup,
  10. pmobj : PFL_OBJECT;
  11. end;
  12. PFD_bwform = ^TFD_bwform;
  13. { callbacks for form bwform }
  14. procedure done_callback(ob : PFL_OBJECT; data : longint);cdecl;
  15. begin
  16. { fill-in code for callback }
  17. halt(0);
  18. end;
  19. var
  20. fd_bwform : PFD_bwform;
  21. const bws : array[0..7] of longint = (-3,-2,-1,1,2,3,4,5);
  22. procedure bw_callback(ob : PFL_OBJECT; data : longint);cdecl;
  23. var bw : longint;
  24. begin
  25. bw := bws[fl_get_choice(ob)-1];
  26. fl_set_object_bw(fd_bwform^.bwgroup, bw);
  27. { since bwgroup includes the backface, it wipes out the done button}
  28. fl_redraw_object(fd_bwform^.done);
  29. fl_redraw_object(fd_bwform^.bw_choice);
  30. end;
  31. function create_form_bwform : PFD_bwform;
  32. var
  33. obj : PFL_OBJECT;
  34. fdui : PFD_bwform;
  35. begin
  36. new(fdui);
  37. fdui^.bwform := fl_bgn_form(FL_NO_BOX, 380, 340);
  38. fdui^.bwgroup := fl_bgn_group();
  39. obj := fl_add_box(FL_UP_BOX,0,0,380,340,'');
  40. obj := fl_add_frame(FL_EMBOSSED_FRAME,220,60,135,145,'');
  41. obj := fl_add_frame(FL_ENGRAVED_FRAME,15,60,185,145,'');
  42. obj := fl_add_slider(FL_HOR_SLIDER,25,75,160,25,'');
  43. obj := fl_add_pixmapbutton(FL_NORMAL_BUTTON,305,145,40,35,'');
  44. fdui^.pmobj := obj;
  45. obj := fl_add_positioner(FL_NORMAL_POSITIONER,30,225,100,80,'');
  46. obj := fl_add_counter(FL_NORMAL_COUNTER,25,160,160,25,'');
  47. obj := fl_add_lightbutton(FL_PUSH_BUTTON,230,100,100,30,'LightButton');
  48. obj := fl_add_roundbutton(FL_PUSH_BUTTON,230,130,80,33,'Button');
  49. obj := fl_add_round3dbutton(FL_PUSH_BUTTON,230,152,80,33,'Button');
  50. fl_set_object_color(obj,FL_COL1, FL_BLUE);
  51. obj := fl_add_checkbutton(FL_PUSH_BUTTON,230,174,80,33,'Button');
  52. obj := fl_add_input(FL_NORMAL_INPUT,195,240,160,28,'Input');
  53. obj := fl_add_valslider(FL_HOR_BROWSER_SLIDER,25,120,160,25,'');
  54. obj := fl_add_button(FL_NORMAL_BUTTON,230,65,100,30,'Button');
  55. fl_end_group();
  56. obj := fl_add_button(FL_NORMAL_BUTTON,270,290,75,30,'Done');
  57. fdui^.done := obj;
  58. fl_set_object_callback(obj,PFL_CALLBACKPTR(@done_callback),0);
  59. obj:= fl_add_choice(FL_NORMAL_CHOICE,105,20,80,25,'Border Width');
  60. fdui^.bw_choice := obj ;
  61. fl_set_object_callback(obj,PFL_CALLBACKPTR(@bw_callback),0);
  62. fl_end_form();
  63. fdui^.bwform^.fdui := fdui;
  64. create_form_bwform:= fdui;
  65. end;
  66. begin
  67. { application default. Can be overridden by the command line options }
  68. fl_set_border_width(-2);
  69. fl_initialize(@argc, argv, 'FormDemo', nil, 0);
  70. fd_bwform := create_form_bwform;
  71. { fill-in form initialization code }
  72. fl_set_pixmapbutton_file(fd_bwform^.pmobj, 'crab.xpm');
  73. fl_addto_choice(fd_bwform^.bw_choice,'-3 Pixel|-2 Pixel|-1 Pixel');
  74. fl_addto_choice(fd_bwform^.bw_choice,' 1 Pixel| 2 Pixel| 3 Pixel');
  75. fl_addto_choice(fd_bwform^.bw_choice,' 4 Pixel| 5 Pixel');
  76. fl_set_choice_text(fd_bwform^.bw_choice, '-2 Pixel');
  77. { show the first form }
  78. fl_show_form(fd_bwform^.bwform,FL_PLACE_CENTER,FL_NOBORDER,'bwform');
  79. while (fl_do_forms<>nil) do;
  80. end.