mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-01 02:13:41 +02:00
66 lines
1.8 KiB
ObjectPascal
66 lines
1.8 KiB
ObjectPascal
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. |