Re: [HIG] What it means to be a GNOME application?



On Wed, 2002-08-14 at 16:25, Nils Pedersen wrote:
> Hello!
> 
> I have been thinking of adding some stuff to Chapter 3.
> 
> I think there are some assumptions that people have about
> what makes an application part of GNOME, basically can
> be summed up as 'respecting desktop wide application
> services'.
> 
> Now these services include things like:
> 
> themes
> fonts
> a11y
> common application property storage service (gconf)
> using common properties like web proxy
> menu intergration
> mime types
> sessioning
> 
> What else am I missing?

Filesystem access: supporting the same URIs as GNOME.

> I am trying to be implementation agnostic. Hypotheseis: an
> application does not have to be written in GTK to be integrated
> with the GNOME desktop, although it would be a helluva lot easier
> if the app was written in GTK. Someone could write, say, a Java
> app and as long as they also wrote the appropriate bindings/proxies/
> bridges to the gnome desktop services then they could call
> themselves 'integrated with the gnome desktop'.
> 
> Does this seem reasonable?

In principle respecting those services is sufficient... but some of
those you list are pretty much impossible to do without using the
appropriate libraries:

  - The way GTK themes are going (non-pixmap, engine based themes) its
basically impossible to mimic the correct appearance without actually
using GTK. 
  - Nothing should write to the GConf database directly, and while I
guess you can communicate with gconfd *technically speaking* without
actually using libgconf, its basically impossible to do it right.
  - Filesystem access, you can't really support the same URIs as Gnome
without actually using GnomeVFS because who knows what crazy modules
users could be using (and they do exist, from gphoto to a
new-and-improved ssh module, to the smb module)
  - MIME types, you'd need to use the same MIME database as GnomeVFS.
This is the easiest to accomplish on this list, particularly if we
actually move to the cross-desktop standardized database we're working
on... but still not a piece of cacke.

So in effect, I'd be more comfortable saying "to be a GNOME application
you have to use GTK+ for drawing widgets, and GConf for storing
preferences, and gnome-vfs for retrieving MIME types and retrieving user
documents". Because I think 99.9% of the time that's the only way to
actually achieve compatibility with these "desktop services". Since the
HIG isn't strictly authoritative anyway, I wouldn't be concerned about
saying stuff that could hypothetically be false 0.01% of the time.
(they're guidelines, and there are reasonable exceptions, particularly
to the HI stuff; just not so many as developers like to think so we
don't publicize that ;-)

But we should definitely make note of all those things in desktop
integration. I basically only did the most important and visible two in
terms of normal-user-effect.

-Seth




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]