Re: GNOME 2.0 Status and Martin's Travelling Schedule
- From: jrb redhat com
- To: Martin Baulig <martin home-of-linux org>
- Cc: gnome-2-0-list gnome org
- Subject: Re: GNOME 2.0 Status and Martin's Travelling Schedule
- Date: 02 May 2001 20:34:07 -0400
Martin Baulig <martin home-of-linux org> writes:
> [This mail is cross-posted to a lot of mailing lists, please
> keep followups on gnome-2-0-list]
>
> May 04-06 - Braunschweiger LinuxTage, maybe we have a
> network connection at the booth, maybe not ....
> May 07th - Holidays in Hamburg :-)
> May 08th-10th - University :-(
> May 11th-13th - Holidays in Dortmund :-)
> May 15th-17th - University :-(
> Jun 06th-07th - Madonna concert in Cologne :-)
Whee! The high's and lows of Martin's life!
> * You cannot install GNOME 1.x and GNOME 2.x into the same $(prefix)
> without breaking your GNOME 1.x installation at the moment.
>
> Someone needs to look at this to allow a clean parallel install of
> both platforms.
>
> Jacob showed interest but was not sure whether he has time to do this.
This should be done in the same way as gtk+/glib/pango are done. I
don't think it'll take a lot of work to do so -- I could take a crack at
it this weekend if noone else beats me to it.
> * The whole GnomeSelector story in libgnomeui is a complete mess at the moment.
>
> GnomeSelector is basically somethink like "my baby" for me, but if you want
> to hack on it and give it some loving, here's what needs to be done.
>
> This weekend, I splitted the GnomeSelector API into a CORBA interface which
> is in libgnome and the UI which is in libgnomeui. The idea behind this is as
> follows:
>
> GNOME::Selector is a CORBA interface which provides all the non-UI
> functionality of a selector widget. The first step is to find a solution to
> this async callback problem (we don't really need a multi-threaded ORB for
> it to work, we just need to define an API for the async stuff).
>
> If you look at libgnome/gnome-selector.h, you'll find the following functions:
>
> gnome_selector_check_filename gnome_selector_check_directory
> gnome_selector_add_file gnome_selector_add_directory
> gnome_selector_add_uri gnome_selector_get_uri_list
> gnome_selector_add_uri_list gnome_selector_get_uri
> gnome_selector_set_uri gnome_selector_clear
> gnome_selector_update_uri_list gnome_selector_get_history_id
> gnome_selector_set_history_id gnome_selector_get_history_length
> gnome_selector_set_history_length gnome_selector_prepend_history
> gnome_selector_append_history gnome_selector_get_history
> gnome_selector_set_history gnome_selector_load_history
> gnome_selector_save_history gnome_selector_clear_history
>
> For each of these functions, add a corresponding method to GNOME::Selector
> (remember to use studlyCaps - which means names like `checkFileName()' etc. -
> in the IDL to make it consistent with Bonobo).
>
> Then move all these function to libgnomeui/gnome-selector-client.c, rename
> them to gnome_selector_client_*() and make them talk to the GNOME::Selector
> CORBA Object.
>
> The GnomeSelector API is new in GNOME 2.0, so you can change it to find a good
> solution for that async callback problem.
>
> When you're done with this, remove libgnomeui/gnome-selector.[ch] and
> libgnomeui/gnome-file-selector.[ch], but put back libgnomeui/gnome-file-entry.[ch]
> (you can use libgnomeui/gnome-entry.[ch] as a starting point).
>
> Then look at GnomeEntry, this is an example on how you can do the other widgets.
>
> What needs to be done are GnomeFileEntry, GnomeIconEntry, GnomeIconSelector and
> maybe GnomeNumberEntry (put it back from libcompat).
>
> My idea is to have one function
>
> GtkWidget *gnome_entry_new (const gchar *history_id);
>
> which should match the one that's used in GNOME 1.x if at all possible.
>
> This function creates a new GnomeSelector (for GnomeEntry and GnomeNumberEntry) /
> GnomeFileSelector (for all the others) BonoboObject - make sure to transform all the
> the virtual methods overrides from the GnomeSelectorClientClass (do_add_uri_cb etc.)
> into g_signal_connect's - which will provide all the non-UI functionality.
>
> Then create your UI, bonobo_control_new() it and call gnome_selector_bind_to_control().
Woah! Are you proposing mirroring every widget in libgnomeui as a
bonobo control or something? That sounds like a huge amount of bloat
for very little gain? What's wrong with just using widgets here??
> * GnomeMDI - broken and not compiled into -lgnomeui at the moment
>
> This is basically a weekend hacking job, but a very complicated one, so you shouldn't waste
> your time even trying to do it if you're not familar with the Bonobo UI API (btw. the API is
> the same like the one in GNOME 1.x).
>
> The TODO item is only two words: "Bonoboize it !"
>
> What you need to do is to make it use the Bonobo UI API instead of the deprecated GnomeUIInfo.
Why?!?!?? Why are we bonoboizing stuff in libgnomeui? I'm confused
here. I don't think our widgets are complicated enough, and our
component system light-weight enough for us to consider this.
> * Move the stock icons from libgnomeui/pixmaps into GTK+
>
> If you want to do this, have a look at libgnomeui/gnome-stock-icons.[ch], this is already the
> code which you can use in GTK+.
>
> This is an easy job, all that needs to be done is communicating with the GTK+ folks and having
> someone who does the CVS move.
http://bugzilla.gnome.org/show_bug.cgi?id=50280
> * I already removed most of the deprecated stuff from libgnomeui (it's now in libcompat/libgnomeui).
>
> For someone who's familar with GTK+:
>
> - walk over all files which are left in libgnomeui and find out whether GTK+ 2.0 provides a
> similar or even a better feature
A very quick look reveals:
gnome-animator.h -> replaced by GtkImage
gnome-geometry.h -> working in gtk
gnome-less.h -> pretty silly anyway
gnome-pixmap.h -> replaced by GtkImage
gnome-stock* -> replaced
I can have a longer look this weekend.
> * Disabled stuff:
>
> If you look at libgnomeui/ChangeLog and libgnomeui/Makefile.am, you'll find that there are a couple
> of files in libgnomeui which aren't compiled into -lgnomeui at the moment.
>
> It's best to just look at libgnomeui/Makefile.am, I put all of them into `unused_SOURCES'.
>
> I disabled it because it was either using stuff which I wanted to move to libcompat (for instance
> gnome-app-helper) or because I had no idea about what it is and whether it is useful.
>
> Here's the current list:
>
> gnome-popup-menu.c
> gnome-popup-help.c
> gnome-helpsys.c
> gnome-textfu.c
> wap-textfu.c
>
> For gnome-popup-menu.[ch] and gnome-popup-help.[ch], there may be a similar or even the same in
> libbonoboui, but I haven't looked yet.
>
> * gnome-helpsys.c, gnome-textfu.c, wap-textfu.c
>
> Elliot, what's up with these files, you put them into libgnomeui last century and then never looked
> at them again ?
>
> I'd consider this API at least as "highly critical" at the moment; it's immature, half-finished and
> nobody seems to care about it.
{wap,gnome}-textfu should be tossed and replaced with the pango-markup
system; a GtkLabel will now do most of that functionality now.
gnome-popup-help/gnome-helpsys/gnome-help-whatever needs some serious
emergency work for 2.0. I think a lot of our efforts need to go into
making a good help system.
I don't know what we're going to do about the menu API, but I think
leaving it as is is probably the best solution as we don't have time to
rewrite it for this release.
Thanks,
-Jonathan
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]