lalign.pp 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. program lalign;
  2. { different label alignments }
  3. uses xforms;
  4. type
  5. TFD_Form0 = record
  6. form0 : PFL_FORM;
  7. box,inside,center : PFL_Object;
  8. vdata : pointer;
  9. ldata : longint;
  10. end;
  11. PFD_Form0 = ^TFD_Form0;
  12. var fd_form0 : PFD_form0;
  13. align :integer;
  14. Procedure align_cb(ob : PFL_OBJECT; n : longint);cdecl;
  15. begin
  16. if fl_get_button(fd_form0^.inside)<>0 then
  17. n:=n or FL_ALIGN_INSIDE;
  18. fl_set_object_lalign(fd_form0^.box, n);
  19. end;
  20. Procedure inside_cb(Ob : PFL_OBJECT; data : longint);cdecl;
  21. begin
  22. if fl_get_button(ob)<>0 then
  23. fd_form0^.box^.align := fd_form0^.box^.align or FL_ALIGN_INSIDE
  24. else
  25. fd_form0^.box^.align := fd_form0^.box^.align and not FL_ALIGN_INSIDE;
  26. fl_redraw_form(fd_form0^.form0);
  27. end;
  28. function create_form_form0 : PFD_form0;
  29. Var
  30. obj : PFL_OBJECT;
  31. fdui : PFD_form0;
  32. begin
  33. new(fdui);
  34. fdui^.form0 := fl_bgn_form(FL_NO_BOX, 351, 170);
  35. obj := fl_add_box(FL_UP_BOX,0,0,351,170,'');
  36. obj := fl_add_box(FL_UP_BOX,190,45,90,45,'abcdefg'#10'hijklmno');
  37. fdui^.box := obj ;
  38. { fl_set_object_clip(obj, 1); }
  39. obj := fl_add_lightbutton(FL_PUSH_BUTTON,20,120,90,30,'Inside');
  40. fdui^.inside := obj;
  41. fl_set_object_callback(obj,PFL_CALLBACKPTR(@inside_cb),0);
  42. fl_bgn_group();
  43. obj := fl_add_button(FL_RADIO_BUTTON,20,20,30,30,'@#7->');
  44. fl_set_object_lcol(obj,FL_BLUE);
  45. fl_set_object_callback(obj,PFL_CALLBACKPTR(@align_cb),FL_ALIGN_LEFT_TOP);
  46. obj := fl_add_button(FL_RADIO_BUTTON,50,20,30,30,'@#8->');
  47. fl_set_object_lcol(obj,FL_BLUE);
  48. fl_set_object_callback(obj,PFL_CALLBACKPTR(@align_cb),FL_ALIGN_TOP);
  49. obj := fl_add_button(FL_RADIO_BUTTON,80,20,30,30,'@#9->');
  50. fl_set_object_lcol(obj,FL_BLUE);
  51. fl_set_object_callback(obj,PFL_CALLBACKPTR(@align_cb),FL_ALIGN_RIGHT_TOP);
  52. obj := fl_add_button(FL_RADIO_BUTTON,80,50,30,30,'@#->');
  53. fl_set_object_lcol(obj,FL_BLUE);
  54. fl_set_object_callback(obj,PFL_CALLBACKPTR(@align_cb),FL_ALIGN_RIGHT);
  55. obj := fl_add_button(FL_RADIO_BUTTON,50,50,30,30,'@circle');
  56. fdui^.center := obj;
  57. fl_set_object_lcol(obj,FL_RED);
  58. fl_set_object_callback(obj,PFL_CALLBACKPTR(@align_cb),FL_ALIGN_CENTER);
  59. obj := fl_add_button(FL_RADIO_BUTTON,20,50,30,30,'@#<-');
  60. fl_set_object_lcol(obj,FL_BLUE);
  61. fl_set_object_callback(obj,PFL_CALLBACKPTR(@align_cb),FL_ALIGN_LEFT);
  62. obj := fl_add_button(FL_RADIO_BUTTON,20,80,30,30,'@#1->');
  63. fl_set_object_lcol(obj,FL_BLUE);
  64. fl_set_object_callback(obj,PFL_CALLBACKPTR(@align_cb),FL_ALIGN_LEFT_BOTTOM);
  65. obj := fl_add_button(FL_RADIO_BUTTON,50,80,30,30,'@#2->');
  66. fl_set_object_lcol(obj,FL_BLUE);
  67. fl_set_object_callback(obj,PFL_CALLBACKPTR(@align_cb),FL_ALIGN_BOTTOM);
  68. obj := fl_add_button(FL_RADIO_BUTTON,80,80,30,30,'@#3->');
  69. fl_set_object_lcol(obj,FL_BLUE);
  70. fl_set_object_callback(obj,PFL_CALLBACKPTR(@align_cb),FL_ALIGN_RIGHT_BOTTOM);
  71. fl_end_group();
  72. obj := fl_add_button(FL_NORMAL_BUTTON,140,120,70,30,'Done');
  73. fl_end_form();
  74. create_form_form0 := fdui;
  75. end;
  76. begin
  77. fl_initialize(@argc, argv, 'FormDemo', nil, 0);
  78. fd_form0 := create_form_form0();
  79. { fill-in form initialization code }
  80. fl_set_form_dblbuffer(fd_form0^.form0, 1);
  81. align := fd_form0^.box^.align or FL_ALIGN_INSIDE;
  82. if align <> fd_form0^.box^.align then
  83. fl_set_button(fd_form0^.inside, 1);
  84. { show the first form }
  85. fl_show_form(fd_form0^.form0,FL_PLACE_FREE,FL_FULLBORDER,'form0');
  86. fl_do_forms();
  87. end.