48 lines
1.2 KiB
Plaintext
48 lines
1.2 KiB
Plaintext
Program SimpleWindowApplication;
|
|
|
|
uses
|
|
SysUtils,
|
|
glib2,
|
|
Gtk2;
|
|
|
|
const
|
|
clickme = 'Click Me';
|
|
MAXLEN = 64;
|
|
|
|
var
|
|
counter: integer = 0;
|
|
|
|
procedure clickedme(o: PGtkButton; d: pointer); cdecl;
|
|
var
|
|
nt: Pchar;
|
|
l: PGtkLabel;
|
|
begin
|
|
l := Gtk_LABEL(d);
|
|
inc(counter);
|
|
nt := Pchar('You clicked me ' + inttostr(counter) + ' times');
|
|
Gtk_label_set_text(l, nt);
|
|
end;
|
|
|
|
var
|
|
win: PGtkWindow;
|
|
button: PGtkButton;
|
|
Mylabel: PGtkLabel;
|
|
vbox: PGtkVBox;
|
|
|
|
begin
|
|
Gtk_init(@argc, @argv);
|
|
win := PGtkWindow(Gtk_window_new(Gtk_WINDOW_TOPLEVEL));
|
|
Gtk_window_set_title(win, clickme);
|
|
button := PGtkButton(Gtk_button_new_with_label(clickme));
|
|
Mylabel := PGtkLabel(Gtk_label_new('There have been no clicks yet'));
|
|
Gtk_label_set_single_line_mode(Mylabel, TRUE);
|
|
vbox := PGtkVBox(Gtk_vbox_new(TRUE, 1));
|
|
Gtk_container_add(Gtk_CONTAINER(vbox), Gtk_WIDGET(Mylabel));
|
|
Gtk_container_add(Gtk_CONTAINER(vbox), Gtk_WIDGET(button));
|
|
Gtk_container_add(Gtk_CONTAINER(win), Gtk_WIDGET(vbox));
|
|
g_signal_connect(G_OBJECT(win), 'delete-event', TGCallBack(@Gtk_main_quit), NULL);
|
|
g_signal_connect(G_OBJECT(button), 'clicked', TGCallBack(@clickedme), Mylabel);
|
|
Gtk_widget_show_all(Gtk_WIDGET(win));
|
|
Gtk_main();
|
|
end.
|