Re: GTK+ Application class

On Mon, 2006-10-23 at 14:39 +0100, Emmanuele Bassi wrote:
> Hi everyone;


> * API Overview
> ==============
> The base cass is GtkApplication - an abstract G_TYPE_OBJECT with a bunch
> of methods to be overridden:
> struct _GtkApplicationClass
> {
>   GObjectClass parent_class;
> ...
> We have a document-based API using these five vfuncs:
> ... 
>   gchar *       (*new_document)      (GtkApplication       *application);
>   gboolean      (*save_document)     (GtkApplication       *application,
>                                       const gchar          *document_name,
>                                       const gchar          *document_uri,
>                                       gboolean              save_backup,
>                                       gboolean              overwrite,
>                                       GError              **error);
>   gboolean      (*open_document)     (GtkApplication       *application,
>                                       const gchar          *document_uri,
>                                       gboolean              read_only,
>                                       GError              **error);
>   gboolean      (*close_document)    (GtkApplication       *application,
>                                       const gchar          *document_name,
>                                       GError              **error);
>   GSList *      (*list_documents)    (GtkApplication       *application);
> ...
> The vfunc signatures should be self-explanatory.
> Each document is addressed by a unique id, using a string; newly created
> documents might have a "document-<timestamp>" id string, or a
> "document-<monotonic_counter>" id string; opened documents might use the
> MD5 hash of the document URI.  Documents have an unique id because there
> can be multiple views of the same document and we need to keep a list of
> documents as well as windows (and windows for documents) of the
> GtkApplication.
> Subclasses of GtkApplication *must* override the new_document,
> save_document and open_document vfuncs; close_document and list_document
> can offer a default implementation (close_document calls save_document
> and if successful will remove the document id from the list of known
> documents, and list_documents returns the list of known document ids).
so, who would be calling those vfuncs? Gtkapplication internals? If so,
how? Since below you say the app is responsible for creating the UI, how
does Gtkapplication know Open/Close/Save have been selected?

I would really like to have a more generic GtkApplication object, not
really tied to a window (even though it could perfectly have ways for
binding it to a Window). That way, any app (think GUI daemons, like
power manager, for instance) could use it as a central point of access
to the session management, unique apps, main windows, etc.
Rodrigo Moya <rodrigo gnome-db org>

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