tut6_4.pp 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. {
  2. $Id$
  3. This file extracted from the GTK 1.2 tutorial.
  4. Section 6.4
  5. Converted from C to Pascal by Thomas E. Payne
  6. }
  7. program Tut6_4;
  8. {$mode objfpc}
  9. uses
  10. glib,gdk,gtk,sysutils;
  11. //* example-start radiobuttons radiobuttons.c *//
  12. procedure close_application( widget : pGtkWidget;
  13. event : pGdkEvent;
  14. data : gpointer ); cdecl;
  15. begin
  16. gtk_main_quit();
  17. end;
  18. var
  19. window,box1,box2,button,separator : pGtkWidget;
  20. group : pGSList;
  21. begin
  22. gtk_init(@argc,@argv);
  23. window := Nil;
  24. window := gtk_window_new (GTK_WINDOW_TOPLEVEL);
  25. gtk_signal_connect (GTK_OBJECT (window), 'delete_event',
  26. GTK_SIGNAL_FUNC(@close_application),
  27. Nil);
  28. gtk_window_set_title (GTK_WINDOW (window), 'radio buttons');
  29. gtk_container_set_border_width (GTK_CONTAINER (window), 0);
  30. box1 := gtk_vbox_new (FALSE, 0);
  31. gtk_container_add (GTK_CONTAINER (window), box1);
  32. gtk_widget_show (box1);
  33. box2 := gtk_vbox_new (FALSE, 10);
  34. gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
  35. gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
  36. gtk_widget_show (box2);
  37. button := gtk_radio_button_new_with_label (Nil, 'button1');
  38. gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
  39. gtk_widget_show (button);
  40. group := gtk_radio_button_group (GTK_RADIO_BUTTON (button));
  41. button := gtk_radio_button_new_with_label(group, 'button2');
  42. gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
  43. gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
  44. gtk_widget_show (button);
  45. button := gtk_radio_button_new_with_label(
  46. gtk_radio_button_group (GTK_RADIO_BUTTON (button)),
  47. 'button3');
  48. gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
  49. gtk_widget_show (button);
  50. separator := gtk_hseparator_new ();
  51. gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
  52. gtk_widget_show (separator);
  53. box2 := gtk_vbox_new (FALSE, 10);
  54. gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
  55. gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
  56. gtk_widget_show (box2);
  57. button := gtk_button_new_with_label ('close');
  58. gtk_signal_connect_object (GTK_OBJECT (button), 'clicked',
  59. GTK_SIGNAL_FUNC(@close_application),
  60. GTK_OBJECT (window));
  61. gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
  62. GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
  63. gtk_widget_grab_default (button);
  64. gtk_widget_show (button);
  65. gtk_widget_show (window);
  66. gtk_main();
  67. end.
  68. $Log$
  69. Revision 1.2 2000-07-13 11:33:18 michael
  70. + removed logs
  71. }