This is the mail archive of the
guile-gtk@sources.redhat.com
mailing list for the Guile project.
gdk-1.2.defs unimplemented stuff
- From: Kevin Ryde <user42 at zip dot com dot au>
- To: guile-gtk at sources dot redhat dot com
- Date: Tue, 05 Aug 2003 10:31:25 +1000
- Subject: gdk-1.2.defs unimplemented stuff
I added some comments to the unimplemented functions at the top of
gdk-1.2.defs.
;; void gdk_add_client_message_filter (GdkAtom mess_type, GdkFilterFunc func,
;; gpointer data);
;; This needs a GdkXEvent type and field accessors, and GdkEvent field
;; setters before it can do much useful.
;;
;; void gdk_exit(gint error_code);
;; Since currently Gtk is initialized when (gdk gdk) loads, applications
;; should call gtk-exit (which in gtk 1.2 does nothing but call gdk_exit
;; in fact). gdk-exit could be introduced if/when Gdk can be used
;; alone.
;;
;; void gdk_event_handler_set (GdkEventFunc func, gpointer data,
;; GDestroyNotify notify);
;; This is used by Gtk to implement gtk_main etc and so won't be useful
;; to normal applications, not unless/until Gdk can be used alone.
;;
;; void gdk_init(gint *argc,char ***argv);
;; This is done automatically when the gdk module is loaded, so really
;; doesn't need to be available separately. And manipulating the global
;; `program-arguments' should be enough for normal uses.
;;
;; gboolean gdk_init_check(gint *argc,char ***argv);
;; It might be nice to have this available, so an application can do
;; something if the X display is unreachable or whatever. A way to
;; catch an error from a normal (gtk gdk) module load would be another
;; possibility.
;;
;; void gdk_window_add_filter (GdkWindow *window, GdkFilterFunc function,
;; gpointer data);
;; void gdk_window_remove_filter (GdkWindow *window, GdkFilterFunc function,
;; gpointer data);
;; These need a GdkXEvent type and field accessors, and GdkEvent field
;; setters before they can do much useful.
;;
;; The aim would be to garbage collect the scheme filter function when
;; the window is destroyed, as happens for Gtk level signal handlers.
;; Unfortunately gtk 1.2 doesn't seem to offer any way to know when
;; that's happened for a window (gtk 2 does, since GdkWindow is a
;; GObject there). Maybe initially it'd be good enough to keep all
;; added filters alive until removal. This would be wanted for
;; window==NULL for a start, and applications could be asked to remove a
;; filter before the window is destroyed. (Failing to do so would
;; merely mean filter procs kept alive but never called.)
;;
;; void gdk_window_get_user_data (GdkWindow *window, gpointer *data);
;; void gdk_window_set_user_data (GdkWindow *window, gpointer data);
;; Gtk uses this user data to point to the GtkWidget owning the window,
;; ready for event dispatch, and it doesn't seem to have much error
;; checking, so anything else in the user data is likely to cause
;; problems. On that basis these functions have no use unless/until Gdk
;; can be used alone. A more scheme-like approach might be to get
;; GdkWindow objects represented uniquely (like GtkObject), so
;; applications can use object properties etc.
;;
;; GdkPropertyState gdk_event_property_state (GdkEvent *event);
;; Field accessor for property.state, as per gdk_event_visibility_state.