]> gitweb.factorcode.org Git - factor.git/commitdiff
Add resize-window and relayout-window
authorJon Harper <jon.harper87@gmail.com>
Sat, 8 Sep 2012 12:33:22 +0000 (14:33 +0200)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 26 Nov 2012 22:39:54 +0000 (14:39 -0800)
basis/ui/backend/gtk/gtk.factor
basis/ui/ui.factor

index 64e53a6a6128d138128b040684e802cf74303f00..adcad20e0e2b24e832145436b01286ff99db2715 100644 (file)
@@ -479,6 +479,8 @@ M: gtk-ui-backend (close-window) ( handle -- )
     window>> [ gtk_widget_destroy ] [ unregister-window ] bi
     event-loop? [ gtk_main_quit ] unless ;
 
+M: gtk-ui-backend resize-window [ handle>> window>> ] [ first2 ] bi* gtk_window_resize ;
+
 M: gtk-ui-backend set-title
     swap [ handle>> window>> ] [ utf8 string>alien ] bi*
     gtk_window_set_title ;
index f30821fa96e265309bf76c90b3fc47bf3382f846..f4c8b3af8b9daca63b765bcc2623e470bb08c35f 100644 (file)
@@ -214,6 +214,13 @@ M: object close-window
     <flag> ui-notify-flag set-global
 ] "ui" add-startup-hook
 
+HOOK: resize-window ui-backend ( world dim -- )
+M: object resize-window 2drop ;
+
+: relayout-window ( gadget -- )
+  [ relayout ]
+  [ find-world [ dup pref-dim resize-window ] when* ] bi ;
+
 : with-ui ( quot: ( -- ) -- )
     ui-running? [ call( -- ) ] [ '[ init-ui @ ] (with-ui) ] if ;