diff options
| author | Pietro Gagliardi <[email protected]> | 2014-03-15 14:27:18 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-03-15 14:27:18 -0400 |
| commit | e429b8d6b82f6caf9301e9917e96d7f823dd90bd (patch) | |
| tree | 6322c374460fe1b24debcd9ac61197de8141f0b6 /gtkcalls_unix.go | |
| parent | 05905e3addd522b7c7d41a4ac6cfefbef52ab546 (diff) | |
Allowed GTK+ windows to be resized smaller than the size request of the controls within.
Diffstat (limited to 'gtkcalls_unix.go')
| -rw-r--r-- | gtkcalls_unix.go | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/gtkcalls_unix.go b/gtkcalls_unix.go index f2bce9e..39effe1 100644 --- a/gtkcalls_unix.go +++ b/gtkcalls_unix.go @@ -66,16 +66,30 @@ func gtk_window_get_size(window *gtkWidget) (int, int) { return int(width), int(height) } -func gtk_fixed_new() *gtkWidget { - return fromgtkwidget(C.gtk_fixed_new()) +// this should allow us to resize the window arbitrarily +// thanks to Company in irc.gimp.net/#gtk+ +func gtkNewWindowLayout() *gtkWidget { + layout := C.gtk_layout_new(nil, nil) + scrollarea := C.gtk_scrolled_window_new((*C.GtkAdjustment)(nil), (*C.GtkAdjustment)(nil)) + C.gtk_container_add((*C.GtkContainer)(unsafe.Pointer(scrollarea)), layout) + // never show scrollbars; we're just doing this to allow arbitrary resizes + C.gtk_scrolled_window_set_policy((*C.GtkScrolledWindow)(unsafe.Pointer(scrollarea)), + C.GTK_POLICY_NEVER, C.GTK_POLICY_NEVER) + return fromgtkwidget(scrollarea) } func gtk_container_add(container *gtkWidget, widget *gtkWidget) { C.gtk_container_add(togtkcontainer(container), togtkwidget(widget)) } -func gtk_fixed_move(container *gtkWidget, widget *gtkWidget, x int, y int) { - C.gtk_fixed_move(togtkfixed(container), togtkwidget(widget), +func gtkAddWidgetToLayout(container *gtkWidget, widget *gtkWidget) { + layout := C.gtk_bin_get_child((*C.GtkBin)(unsafe.Pointer(container))) + C.gtk_container_add((*C.GtkContainer)(unsafe.Pointer(layout)), togtkwidget(widget)) +} + +func gtkMoveWidgetInLayout(container *gtkWidget, widget *gtkWidget, x int, y int) { + layout := C.gtk_bin_get_child((*C.GtkBin)(unsafe.Pointer(container))) + C.gtk_layout_move((*C.GtkLayout)(unsafe.Pointer(layout)), togtkwidget(widget), C.gint(x), C.gint(y)) } |
