fonts.pp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. {* Demo, showing ther different fonts in the different sizes. *}
  2. program fonts;
  3. uses xforms;
  4. type
  5. TFD_fontsform = record
  6. fontsform : PFL_FORM;
  7. fontobj,
  8. sizeobj,
  9. textobj : PFL_OBJECT;
  10. vdata : pointer;
  11. ldata : longint;
  12. end;
  13. PFD_fontsform=^TFD_fontsform;
  14. var ui : PFD_fontsform;
  15. procedure done_cb(obj : PFL_OBJECT; arg : longint);cdecl;
  16. begin
  17. halt(0);
  18. end;
  19. procedure style_cb(obj : PFL_OBJECT; arg : Longint);cdecl;
  20. begin
  21. fl_set_object_lstyle(ui^.textobj, fl_get_browser(obj) - 1);
  22. end;
  23. procedure size_cb(obj : PFL_OBJECT; arg : longint); cdecl;
  24. begin
  25. case fl_get_browser(obj) of
  26. 1: fl_set_object_lsize(ui^.textobj,8);
  27. 2: fl_set_object_lsize(ui^.textobj,10);
  28. 3: fl_set_object_lsize(ui^.textobj,11);
  29. 4: fl_set_object_lsize(ui^.textobj,12);
  30. 5: fl_set_object_lsize(ui^.textobj,13);
  31. 6: fl_set_object_lsize(ui^.textobj,14);
  32. 7: fl_set_object_lsize(ui^.textobj,18);
  33. 8: fl_set_object_lsize(ui^.textobj,24);
  34. 9: fl_set_object_lsize(ui^.textobj,30);
  35. end;
  36. end;
  37. procedure addit(st : pchar);
  38. begin
  39. fl_add_browser_line(ui^.fontobj,st);
  40. end;
  41. function create_form_fontsform : PFD_fontsform;
  42. var
  43. obj : PFL_OBJECT ;
  44. fdui : PFD_fontsform;
  45. begin
  46. new(fdui);
  47. fdui^.fontsform := fl_bgn_form(FL_NO_BOX, 371, 296);
  48. obj := fl_add_box(FL_FLAT_BOX,0,0,371,296,'');
  49. fl_set_object_color(obj,FL_SLATEBLUE,FL_COL1);
  50. obj := fl_add_browser(FL_HOLD_BROWSER,10,145,195,135,'');
  51. fdui^.fontobj := obj;
  52. fl_set_object_lalign(obj,FL_ALIGN_BOTTOM or FL_ALIGN_INSIDE);
  53. fl_set_object_callback(obj,PFL_CALLBACKPTR(@style_cb),0);
  54. obj := fl_add_browser(FL_HOLD_BROWSER,215,145,145,135,'');
  55. fdui^.sizeobj := obj ;
  56. fl_set_object_lalign(obj,FL_ALIGN_BOTTOM or FL_ALIGN_INSIDE);
  57. fl_set_object_callback(obj,PFL_CALLBACKPTR(@size_cb),0);
  58. obj:= fl_add_text(FL_NORMAL_TEXT,10,5,351,125,'The quick brown'#10'fox jumps over'#10'the lazy dog.');
  59. fdui^.textobj := obj ;
  60. fl_set_object_boxtype(obj, FL_FRAME_BOX);
  61. fl_set_object_lalign(obj, FL_ALIGN_CENTER);
  62. obj := fl_add_button(FL_HIDDEN_BUTTON,0,0,370,140,'Button');
  63. fl_set_button_shortcut(obj,'^[qQ',1);
  64. fl_set_object_callback(obj,PFL_CALLBACKPTR(@done_cb),0);
  65. fl_end_form();
  66. create_form_fontsform:= fdui;
  67. end;
  68. begin
  69. fl_set_border_width(-3);
  70. fl_initialize(@argc, argv, 'FormDemo', nil, 0);
  71. ui := create_form_fontsform();
  72. fl_scale_form(ui^.fontsform, 1.1,1.2);
  73. fl_set_object_dblbuffer(ui^.textobj,1);
  74. fl_set_object_bw(ui^.textobj,5);
  75. fl_enumerate_fonts(PFL_ENUMERATEPTR(@addit), 1);
  76. fl_select_browser_line(ui^.fontobj,1);
  77. fl_addto_browser(ui^.sizeobj,'8 (tiny)');
  78. fl_addto_browser(ui^.sizeobj,'10 (small)');
  79. fl_addto_browser(ui^.sizeobj,'11 (scaled)');
  80. fl_addto_browser(ui^.sizeobj,'12 (normal)');
  81. fl_addto_browser(ui^.sizeobj,'13 (scaled)');
  82. fl_addto_browser(ui^.sizeobj,'14 (medium)');
  83. fl_addto_browser(ui^.sizeobj,'18 (large)');
  84. fl_addto_browser(ui^.sizeobj,'24 (Huge)');
  85. fl_addto_browser(ui^.sizeobj,'30 (scaled)');
  86. fl_select_browser_line(ui^.sizeobj,2);
  87. fl_set_object_lstyle(ui^.textobj,FL_NORMAL_STYLE);
  88. fl_call_object_callback(ui^.fontobj);
  89. fl_call_object_callback(ui^.sizeobj);
  90. fl_show_form(ui^.fontsform,FL_PLACE_CENTER,FL_TRANSIENT,'Fonts');
  91. fl_do_forms();
  92. end.