/packages/gtk1/examples/tutorial/tut6_4.pp
https://github.com/slibre/freepascal · Puppet · 87 lines · 66 code · 21 blank · 0 comment · 0 complexity · 4667a1a82f6455fdc7c281f225948723 MD5 · raw file
- {
- This file extracted from the GTK 1.2 tutorial.
- Section 6.4
- Converted from C to Pascal by Thomas E. Payne
- }
- program Tut6_4;
- {$mode objfpc}
- uses
- glib,gdk,gtk,sysutils;
- //* example-start radiobuttons radiobuttons.c *//
- procedure close_application( widget : pGtkWidget;
- event : pGdkEvent;
- data : gpointer ); cdecl;
- begin
- gtk_main_quit();
- end;
- var
- window,box1,box2,button,separator : pGtkWidget;
- group : pGSList;
- begin
- gtk_init(@argc,@argv);
- window := Nil;
- window := gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_signal_connect (GTK_OBJECT (window), 'delete_event',
- GTK_SIGNAL_FUNC(@close_application),
- Nil);
- gtk_window_set_title (GTK_WINDOW (window), 'radio buttons');
- gtk_container_set_border_width (GTK_CONTAINER (window), 0);
- box1 := gtk_vbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (window), box1);
- gtk_widget_show (box1);
- box2 := gtk_vbox_new (FALSE, 10);
- gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
- gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
- gtk_widget_show (box2);
- button := gtk_radio_button_new_with_label (Nil, 'button1');
- gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
- gtk_widget_show (button);
- group := gtk_radio_button_group (GTK_RADIO_BUTTON (button));
- button := gtk_radio_button_new_with_label(group, 'button2');
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
- gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
- gtk_widget_show (button);
- button := gtk_radio_button_new_with_label(
- gtk_radio_button_group (GTK_RADIO_BUTTON (button)),
- 'button3');
- gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
- gtk_widget_show (button);
- separator := gtk_hseparator_new ();
- gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
- gtk_widget_show (separator);
- box2 := gtk_vbox_new (FALSE, 10);
- gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
- gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
- gtk_widget_show (box2);
- button := gtk_button_new_with_label ('close');
- gtk_signal_connect_object (GTK_OBJECT (button), 'clicked',
- GTK_SIGNAL_FUNC(@close_application),
- GTK_OBJECT (window));
- gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
- GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
- gtk_widget_grab_default (button);
- gtk_widget_show (button);
- gtk_widget_show (window);
- gtk_main();
- end.