summary refs log tree commit diff stats
path: root/examples/gtk/ex4.nim
blob: a387da9727d13ab52bb1495ac824c8e399c7fb8c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import 
  glib2, gtk2

proc newbutton(ALabel: cstring): PGtkWidget = 
  Result = gtk_button_new_with_label(ALabel)
  gtk_widget_show(result)

proc destroy(widget: pGtkWidget, data: pgpointer){.cdecl.} = 
  gtk_main_quit()

var 
  window, maintable: PgtkWidget

proc AddToTable(Widget: PGtkWidget, Left, Right, Top, Bottom: guint) = 
  gtk_table_attach_defaults(GTK_TABLE(MainTable), Widget, Left, right, top, 
                            bottom)

gtk_nimrod_init()
window = gtk_window_new(GTK_WINDOW_TOPLEVEL)
Maintable = gtk_table_new(6, 6, True)
gtk_widget_show(MainTable)
AddToTable(newbutton("1,1 At 1,1"), 1, 2, 1, 2)
AddToTable(newbutton("2,2 At 3,1"), 3, 5, 1, 3)
AddToTable(newbutton("4,1 At 4,1"), 1, 5, 4, 5) # Put all in window
gtk_container_set_border_width(GTK_CONTAINER(Window), 5)
gtk_container_add(GTK_Container(window), maintable)
discard gtk_signal_connect(GTKOBJECT(window), "destroy", 
                           GTK_SIGNAL_FUNC(destroy), nil)
gtk_widget_show(window)
gtk_main()