/*****************************************************************************/ /* td_app.h : Objet Gtk+ * td_app.h : Gtk+ object * * * ToutDoux : Chtit gestionnaire de projet - A littl' project manager * Copyright (c) 2000-2001 Philippe Roy * Auteur - Author : Philippe Roy <ph_roy@toutdoux.org> * * * Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier * sous les termes de la licence publique générale GNU telle qu'elle est publiée par * la Free Software Foundation ; soit la version 2 de la licence, ou * (comme vous voulez) toute version ultérieure. * * Ce programme est distribué dans l'espoir qu'il sera utile, * mais SANS AUCUNE GARANTIE ; même sans la garantie de * COMMERCIALITÉ ou d'ADÉQUATION A UN BUT PARTICULIER. Voir la * licence publique générale GNU pour plus de détails. * * Vous devriez avoir reçu une copie de la licence publique générale GNU * avec ce programme ; si ce n'est pas le cas, écrivez à la Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /*****************************************************************************/ #ifdef HAVE_CONFIG_H # include <config.h> #endif #include <gnome.h> /*****************************************************************************/ /*** Macros */ /*****************************************************************************/ #define TD_TYPE_APP (td_app_get_type ()) #define TD_APP(obj) (GTK_CHECK_CAST ((obj), TD_TYPE_APP, TdApp)) #define TD_APP_CLASS(klass) (GTK_CHECK_CLASS_CASTS ((klass), TD_TYPE_APP, TdAppClass)) #define TD_IS_APP(obj) (GTK_CHECK_TYPE ((obj), TD_TYPE_APP)) #define TD_IS_APP_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), TD_TYPE_APP)) /*****************************************************************************/ /*** Structure */ /*****************************************************************************/ typedef struct _TdApp TdApp; typedef struct _TdAppClass TdAppClass; struct _TdApp { /*< public >*/ GtkObject object; GtkObject *palette; /*** Palette */ GtkObject *editprop; /*** Etabli - Bench */ GList *admin_field; /*** Champs d'administration - Administration fields */ GtkAccelGroup *accel_group; /*** Groupe des accélérateur - Accelerators group */ GtkWidget *menu_main; /*** Menu principale - Main menu */ GnomeUIInfo *menu_gnomeui; /*** Menu principale - Main menu */ GtkWidget *menu_palette; /*** Menu de la palette - Palette menu */ GtkWidget *menu_favorites; /*** Menu des favoris - Favorites menu */ GtkWidget *menu_templates; /*** Menu des gabarits - Templates menu */ GtkWidget *menu_commands; /*** Menu des commandes - Commands menu */ GtkWidget *menu_history; /*** Menu de l'historique - History menu */ GtkObject *connect; /*** Connexion courante - Current connection */ GtkObject *base; /*** Base courante - Current base */ gboolean modified; /*** Drapeau de modifications non enregistrées - Flag for unsaved changes */ GtkObject *about; /*** Description */ GtkObject *presto_browser; /*** Interface d'aide - Help interface */ GtkObject *custom_browser; /*** Interface de personnalisation - Customize interface */ gboolean mode_build; /*** Application en mode construction - Application in build mode */ gboolean mode_debug; /*** Application en mode debug - Application in debug mode */ gboolean mode_nocolor; /*** Application en mode sans couleur - Application in no color mode */ GList *menu_mod; /*** Liste des menus à module - Module menus list */ GList *mod_core; /*** Liste des modules noyaux - Core modules list */ GList *mod_data; /*** Liste des modules de données - Data modules list */ }; struct _TdAppClass { GtkObjectClass parent_class; void (*set_palette) (TdApp *app, GtkObject *palette); void (*set_editprop) (TdApp *app, GtkObject *editprop); void (*set_relation) (TdApp *app, GtkObject *relation); void (*add_admin_field) (TdApp *app, GtkObject *field); void (*set_accel_group) (TdApp *app, GtkAccelGroup *accel_group); void (*set_menu_main) (TdApp *app, GnomeUIInfo *menu_gnomeui); void (*set_menu_palette) (TdApp *app, GtkWidget *menu_palette); void (*set_menu_favorites) (TdApp *app, GtkWidget *menu_favorites); void (*set_menu_templates) (TdApp *app, GtkWidget *menu_templates); void (*set_menu_commands) (TdApp *app, GtkWidget *menu_commands); void (*set_menu_history) (TdApp *app, GtkWidget *menu_history); void (*set_current) (TdApp *app, GtkObject *connect, GtkObject *base); void (*set_modified) (TdApp *app, gboolean modified); void (*set_about) (TdApp *app, GtkObject *about); void (*add_menu_mod) (TdApp *app, GtkObject *menu_mod); void (*create) (TdApp *app); void (*quit) (TdApp *app); }; /*****************************************************************************/ /*** Arguments */ /*****************************************************************************/ static void td_app_set_modified (TdApp *app, gboolean modified); static void td_app_set_mode_build (TdApp *app, gboolean mode_build); static void td_app_set_mode_debug (TdApp *app, gboolean mode_debug); static void td_app_set_mode_nocolor (TdApp *app, gboolean mode_nocolor); static void td_app_set_arg (GtkObject *object, GtkArg *arg, guint arg_id); static void td_app_get_arg (GtkObject *object, GtkArg *arg, guint arg_id); /*****************************************************************************/ /*** Initialisation */ /*****************************************************************************/ static void td_app_init (TdApp *app); static void td_app_class_init (TdAppClass *klass); GtkType td_app_get_type (void); GtkObject *td_app_new (void); void td_app_quit (TdApp *app); /*****************************************************************************/ /*** Affectations - Allocations*/ /*****************************************************************************/ void td_app_set_palette (TdApp *app, GtkObject *palette); void td_app_set_editprop (TdApp *app, GtkObject *editprop); void td_app_add_admin_field (TdApp *app, GtkObject *field); void td_app_set_accel_group (TdApp *app, GtkAccelGroup *accel_group); void td_app_set_menu_main (TdApp *app, GnomeUIInfo *menu_gnomeui); void td_app_set_menu_palette (TdApp *app, GtkWidget *menu_palette); void td_app_set_menu_favorites (TdApp *app, GtkWidget *menu_favorites); void td_app_set_menu_templates (TdApp *app, GtkWidget *menu_templates); void td_app_set_menu_commands (TdApp *app, GtkWidget *menu_commands); void td_app_set_menu_history (TdApp *app, GtkWidget *menu_history); void td_app_set_current (TdApp *app, GtkObject *connect, GtkObject *base); void td_app_set_about (TdApp *app, GtkObject *about); gboolean td_app_add_mod_core (TdApp *app, gchar *dir, gchar *file); gboolean td_app_add_mod_data (TdApp *app, gchar *dir, gchar *file); void td_app_add_menu_mod (TdApp *app, GtkObject *menu_mod); /*****************************************************************************/ /*** Commandes - Commands */ /*****************************************************************************/ void td_app_create (TdApp *app); void td_app_custom_show (TdApp *app); void td_app_presto_show (TdApp *app); gboolean td_palette_message (gchar *chtit_message, gchar *message, gchar *type); gpointer *td_app_mod_core_symbol (TdApp *app, gchar *dir, gchar *file, gchar *symbol); gboolean td_app_mod_core_activate (TdApp *app, gchar *dir, gchar *file, gchar *symbol); gpointer *td_app_mod_data_symbol (int mod_id, gchar *symbol); gboolean td_app_mod_data_activate (int mod_id, gchar *symbol);