mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-05 11:18:41 +02:00
108 lines
3.2 KiB
ObjectPascal
108 lines
3.2 KiB
ObjectPascal
{* 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.
|