File: frmabout.pp

package info (click to toggle)
fpc 2.6.4%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 178,760 kB
  • ctags: 83,946
  • sloc: pascal: 2,000,374; xml: 138,807; ansic: 9,617; asm: 7,843; yacc: 3,747; php: 3,271; sh: 2,626; makefile: 2,610; lex: 2,537; sql: 267; cpp: 145; sed: 132; perl: 126; csh: 34; tcl: 7
file content (66 lines) | stat: -rw-r--r-- 1,855 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
unit frmabout;

{$mode objfpc}

Interface

uses glib,gdk,gtk;

Type
  TAboutForm = Record
    Window : PGtkDialog;
    OkButton : PgtkButton;
    InfoLabel : PGtkLabel;
  end;
  PAboutForm = ^TAboutForm;

Function NewAboutForm : PAboutForm;
Procedure ShowAboutForm(Form : PAboutForm);

Implementation

Const
  SInfo : PChar = 'File explorer demo'#10'Florian Klaempfl'#10'Michael Van Canneyt';
  SAboutTitle : Pchar = 'About File explorer';

procedure DestroyAbout(Widget : PGtkWidget; About : PAboutForm);cdecl;

begin
  Dispose(About);
end;

Function NewAboutForm : PAboutForm;

begin
  Result:=New(PAboutForm);
  With Result^ do
    begin
    Window:=PgtkDialog(gtk_dialog_new);
    gtk_window_set_modal(PgtkWindow(Window),True);
    gtk_window_set_title(PgtkWindow(Window),SAboutTitle);
    gtk_widget_set_usize(PGtkWidget(Window),250,150);
    gtk_window_set_policy(PgtkWindow(Window),0,0,0);
    gtk_window_set_position(PGtkWindow(Window),GTK_WIN_POS_CENTER);
    OkButton:=PGtkButton(gtk_button_new_with_label(' Ok '));
    gtk_box_pack_start(PgtkBox(Window^.action_area),PGtkWidget(Okbutton),False,False,5);
    gtk_window_set_focus(PGtkWindow(Window),PGtkWidget(OkButton));
    gtk_widget_show(PGtkWidget(OkButton));
    InfoLabel:=PgtkLabel(gtk_label_new(SInfo));
    gtk_box_pack_start(PGtkBox(Window^.vbox),PGtkWidget(InfoLabel),True,True,10);
    gtk_widget_show(PGtkWidget(InfoLabel));
    gtk_signal_connect(PGtkObject(Window),'destroy',
                       TGTKSignalFunc(@DestroyAbout),Result);
    gtk_signal_connect_object(PgtkObject(OKButton),'clicked',
                      GTK_SIGNAL_FUNC(@gtk_widget_destroy),
                      PGTKOBJECT(Window));
    end;
end;

Procedure ShowAboutForm(Form : PAboutForm);

begin
  gtk_window_set_modal(PgtkWindow(Form^.Window),True);
  gtk_widget_show(PgtkWidget(Form^.Window));
end;

end.