Getting rid of GdkDisplayManager
- From: Owen Taylor <otaylor redhat com>
- To: gtk-devel-list gnome org
- Cc: erwann chenede ireland sun com
- Subject: Getting rid of GdkDisplayManager
- Date: Thu, 18 Apr 2002 17:46:53 -0400 (EDT)
I've basically finished going through most of the "boring bits" in the
GDK part of the multihead patch, and have gotten it down to a few
thousand lines of some structural issues I'm not entirely happy with.
The first one of these is GdkDisplayManager... I don't think this
object does much for us compared to the amount of API, code and
clumsiness that it introduces.
* Calling methods on GdkDisplayManager is really clumsy:
gdk_display_manager_open_display (gdk_get_display_manager (), "localhost:0");
[ So, there are various convenience functions in the current diff
that seem there mostly to get around this clumsiness, like
gdk_get_default_display () ]
* It introduces two extra object types, including one that has to
be implemented by every backend.
* There are no real benefits to having this object there in
the current API... there are no signals on it, and it's a singleton
with a infinite lifespan.
I can see some uses for a global singleton, mainly notification when
the set of open displays changes.
But if we had such an object, I wouldn't want to call it GdkDisplayManager;
it would be better off as GdkApplication. But in the absence of any
practical use for such an object, I think we can just leave it out
for now.
The API I want to go with is something like:
GdkDisplay *gdk_open_display (const char *display_name);
GSList *gdk_list_displays (void);
void gdk_set_default_display (GdkDisplay *display);
GdkDisplay gdk_get_default_display (void);
void gdk_parse_args (gint *argc,
gchar *argv);
gtk_init_check() would be defined as:
====
gdk_parse_args (argc, argv);
display = gdk_open_display (NULL);
if (display)
{
gdk_set_default_display (display);
return TRUE;
}
else
return FALSE;
====
Regards,
Owen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]