public inbox for
 help / color / mirror / Atom feed
From: Kevin Ryde <>
Subject: gdk-1.2.defs unimplemented stuff
Date: Tue, 05 Aug 2003 00:31:00 -0000	[thread overview]
Message-ID: <> (raw)

I added some comments to the unimplemented functions at the top of

;; 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.

                 reply	other threads:[~2003-08-05  0:31 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).