racket/collects/mred/private/wx/gtk
Matthew Flatt ce4705cedc get-diplay-size' and get-display-left-top-inset' use #f for failure
Since the number of monitors can change at any time, reliable
use of these functions requires handling failure in some way.
Handling #f results is easier (and less likely to mask other
problems) than catching exceptions.
2011-09-09 17:03:17 -06:00
..
button.rkt
canvas.rkt gtk: fix border (when requested) for canvas% with scrollbars 2011-09-01 07:14:05 -06:00
check-box.rkt
choice.rkt
client-window.rkt
clipboard.rkt
colordialog.rkt
combo.rkt
const.rkt
cursor.rkt
dc.rkt implement 'border style for `panel%' 2011-08-13 07:00:51 -06:00
dialog.rkt
filedialog.rkt
frame.rkt get-diplay-size' and get-display-left-top-inset' use #f for failure 2011-09-09 17:03:17 -06:00
gauge.rkt
gcwin.rkt
gl-context.rkt
group-panel.rkt
init.rkt
item.rkt
keycode.rkt
keymap.rkt
list-box.rkt gtk: make list-box% min size non-zero for content 2011-09-03 10:44:37 -06:00
menu-bar.rkt
menu-item.rkt
menu.rkt gtk: fix menu-item shortcut updating 2011-09-01 07:14:06 -06:00
message.rkt
panel.rkt gtk: fix border (when requested) for canvas% with scrollbars 2011-09-01 07:14:05 -06:00
pixbuf.rkt
platform.rkt add get-display-count' and #:screen argument to get-display-size' 2011-07-18 20:15:15 -06:00
printer-dc.rkt
procs.rkt
queue.rkt gtk: set app name on startup 2011-08-04 09:27:05 -06:00
radio-box.rkt
README.txt
slider.rkt
stddialog.rkt
style.rkt
tab-panel.rkt
types.rkt
unique.rkt
utils.rkt
w32.rkt
widget.rkt
win32.rkt
window.rkt gtk: make list-box% min size non-zero for content 2011-09-03 10:44:37 -06:00
x11.rkt

Allocation rules:

 * Use `as-gtk-allocation' when creating a Gtk widget that is the main
   container for a given window<%> object. When the resulting
   reference becomes unreachable, the widget will be released with
   gtk_widget_destroy() through a finalizer.

 * Use `atomically' to create and attach a sub-widget within the main
   widget.  Don't use gtk_widget_destroy(); the containing widget will
   destroy the enclosing widget.

 * For temporary objects, use `atomically' to wrap both the allocation
   and release.

Every call to a function whose name contains "new" needs to be in one
of those cases.