Simple windowed application: Difference between revisions

Content added Content deleted
mNo edit summary
(→‎{{header|Pascal}}: add example)
Line 1,102: Line 1,102:
end
end
</lang>
</lang>

=={{header|Pascal}}==
{{works with|Free_Pascal}}
{{libheader|SysUtils}}
{{libheader|glib2}}
{{libheader|Gtk2}}
Ported from the C example.
<lang pascal>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.</lang>


=={{header|Perl}}==
=={{header|Perl}}==