summaryrefslogtreecommitdiff
path: root/packages/xforms/examples/fonts.pp
diff options
context:
space:
mode:
Diffstat (limited to 'packages/xforms/examples/fonts.pp')
-rw-r--r--packages/xforms/examples/fonts.pp107
1 files changed, 107 insertions, 0 deletions
diff --git a/packages/xforms/examples/fonts.pp b/packages/xforms/examples/fonts.pp
new file mode 100644
index 0000000000..776ebbe440
--- /dev/null
+++ b/packages/xforms/examples/fonts.pp
@@ -0,0 +1,107 @@
+{* Demo, showing ther different fonts in the different sizes. *}
+program fonts;
+
+uses xforms;
+
+type
+TFD_fontsform = record
+ fontsform : PFL_FORM;
+ fontobj,
+ sizeobj,
+ textobj : PFL_OBJECT;
+ vdata : pointer;
+ ldata : longint;
+end;
+PFD_fontsform=^TFD_fontsform;
+
+var ui : PFD_fontsform;
+
+procedure done_cb(obj : PFL_OBJECT; arg : longint);cdecl;
+begin
+ halt(0);
+end;
+
+procedure style_cb(obj : PFL_OBJECT; arg : Longint);cdecl;
+begin
+ fl_set_object_lstyle(ui^.textobj, fl_get_browser(obj) - 1);
+end;
+
+procedure size_cb(obj : PFL_OBJECT; arg : longint); cdecl;
+begin
+ case fl_get_browser(obj) of
+ 1: fl_set_object_lsize(ui^.textobj,8);
+ 2: fl_set_object_lsize(ui^.textobj,10);
+ 3: fl_set_object_lsize(ui^.textobj,11);
+ 4: fl_set_object_lsize(ui^.textobj,12);
+ 5: fl_set_object_lsize(ui^.textobj,13);
+ 6: fl_set_object_lsize(ui^.textobj,14);
+ 7: fl_set_object_lsize(ui^.textobj,18);
+ 8: fl_set_object_lsize(ui^.textobj,24);
+ 9: fl_set_object_lsize(ui^.textobj,30);
+ end;
+end;
+
+procedure addit(st : pchar);
+begin
+ fl_add_browser_line(ui^.fontobj,st);
+end;
+
+
+function create_form_fontsform : PFD_fontsform;
+var
+ obj : PFL_OBJECT ;
+ fdui : PFD_fontsform;
+
+begin
+ new(fdui);
+
+ fdui^.fontsform := fl_bgn_form(FL_NO_BOX, 371, 296);
+ obj := fl_add_box(FL_FLAT_BOX,0,0,371,296,'');
+ fl_set_object_color(obj,FL_SLATEBLUE,FL_COL1);
+ obj := fl_add_browser(FL_HOLD_BROWSER,10,145,195,135,'');
+ fdui^.fontobj := obj;
+ fl_set_object_lalign(obj,FL_ALIGN_BOTTOM or FL_ALIGN_INSIDE);
+ fl_set_object_callback(obj,PFL_CALLBACKPTR(@style_cb),0);
+ obj := fl_add_browser(FL_HOLD_BROWSER,215,145,145,135,'');
+ fdui^.sizeobj := obj ;
+ fl_set_object_lalign(obj,FL_ALIGN_BOTTOM or FL_ALIGN_INSIDE);
+ fl_set_object_callback(obj,PFL_CALLBACKPTR(@size_cb),0);
+ obj:= fl_add_text(FL_NORMAL_TEXT,10,5,351,125,'The quick brown'#10'fox jumps over'#10'the lazy dog.');
+ fdui^.textobj := obj ;
+ fl_set_object_boxtype(obj, FL_FRAME_BOX);
+ fl_set_object_lalign(obj, FL_ALIGN_CENTER);
+ obj := fl_add_button(FL_HIDDEN_BUTTON,0,0,370,140,'Button');
+ fl_set_button_shortcut(obj,'^[qQ',1);
+ fl_set_object_callback(obj,PFL_CALLBACKPTR(@done_cb),0);
+ fl_end_form();
+
+ create_form_fontsform:= fdui;
+end;
+
+begin
+ fl_set_border_width(-3);
+
+ fl_initialize(@argc, argv, 'FormDemo', nil, 0);
+ ui := create_form_fontsform();
+ fl_scale_form(ui^.fontsform, 1.1,1.2);
+ fl_set_object_dblbuffer(ui^.textobj,1);
+ fl_set_object_bw(ui^.textobj,5);
+
+ fl_enumerate_fonts(PFL_ENUMERATEPTR(@addit), 1);
+ fl_select_browser_line(ui^.fontobj,1);
+ fl_addto_browser(ui^.sizeobj,'8 (tiny)');
+ fl_addto_browser(ui^.sizeobj,'10 (small)');
+ fl_addto_browser(ui^.sizeobj,'11 (scaled)');
+ fl_addto_browser(ui^.sizeobj,'12 (normal)');
+ fl_addto_browser(ui^.sizeobj,'13 (scaled)');
+ fl_addto_browser(ui^.sizeobj,'14 (medium)');
+ fl_addto_browser(ui^.sizeobj,'18 (large)');
+ fl_addto_browser(ui^.sizeobj,'24 (Huge)');
+ fl_addto_browser(ui^.sizeobj,'30 (scaled)');
+ fl_select_browser_line(ui^.sizeobj,2);
+ fl_set_object_lstyle(ui^.textobj,FL_NORMAL_STYLE);
+ fl_call_object_callback(ui^.fontobj);
+ fl_call_object_callback(ui^.sizeobj);
+ fl_show_form(ui^.fontsform,FL_PLACE_CENTER,FL_TRANSIENT,'Fonts');
+ fl_do_forms();
+end.