diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2014-12-31 19:58:50 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2014-12-31 19:58:50 (GMT) |
commit | 0f571c20444dbb5d8d8d0fa46a69b31cb89f9583 (patch) | |
tree | 4349b6bdfb1b8adbdc60e0887a2a122ed857b678 /src/gtkext | |
parent | 57d7eff57c20e75aaa4ccd34f1d9d733e12bb232 (diff) |
Resolved links in disassembled instructions.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@446 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/gtkext')
-rw-r--r-- | src/gtkext/gtkextstatusbar.c | 124 | ||||
-rw-r--r-- | src/gtkext/gtkextstatusbar.h | 33 |
2 files changed, 146 insertions, 11 deletions
diff --git a/src/gtkext/gtkextstatusbar.c b/src/gtkext/gtkextstatusbar.c index 1d55a0d..5fd37fe 100644 --- a/src/gtkext/gtkextstatusbar.c +++ b/src/gtkext/gtkextstatusbar.c @@ -24,6 +24,7 @@ #include "gtkextstatusbar.h" +#include <assert.h> #include <malloc.h> #include <string.h> @@ -110,6 +111,22 @@ static void _gtk_extended_status_bar_update_activity(GtkExtStatusBar *); +/* -------------------------- GESTION EN VUE MACROSCOPIQUE -------------------------- */ + + +/* Concentré d'informations utiles */ +struct _status_blob_info +{ + GtkExtStatusBar *bar; /* Barre de statut utilisée */ + bstatus_id_t id; /* Identifiant du message */ + + double current; /* Valeur courante représentée */ + double max; /* Valeur maximale à atteindre */ + +}; + + + /* ---------------------------------------------------------------------------------- */ /* GESTION EXTERIEURE DE LA BARRE */ /* ---------------------------------------------------------------------------------- */ @@ -480,3 +497,110 @@ static void _gtk_extended_status_bar_update_activity(GtkExtStatusBar *bar) g_mutex_unlock(&bar->stack_access); } + + + +/* ---------------------------------------------------------------------------------- */ +/* GESTION EN VUE MACROSCOPIQUE */ +/* ---------------------------------------------------------------------------------- */ + + +/****************************************************************************** +* * +* Paramètres : bar = barre de statut à manipuler. * +* message = message à afficher pour l'utilisateur. * +* val = valeur de départ à afficher initialement. * +* max = valeur maximale de progression (négative = aucune).* +* * +* Description : Met en place rapidement un message progressiste de statut. * +* * +* Retour : Structure opaque contenant le nécessaire pour les opérations * +* ultérieures. * +* * +* Remarques : - * +* * +******************************************************************************/ + +status_blob_info *init_progessive_status(GtkExtStatusBar *bar, const char *message, double val, double max) +{ + status_blob_info *result; /* Information à retourner */ + + result = (status_blob_info *)calloc(1, sizeof(status_blob_info)); + + g_object_ref(G_OBJECT(bar)); + result->bar = bar; + + result->id = gtk_extended_status_bar_push(bar, message, max > 0.0); + + result->current = 0.0; + result->max = max; + + return result; + +} + + +/****************************************************************************** +* * +* Paramètres : info = regroupement d'informations à manipuler. * +* * +* Description : Fait disparaître la glue d'affichage de progression. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void fini_progessive_status(status_blob_info *info) +{ + gtk_extended_status_bar_remove(info->bar, info->id); + + g_object_unref(G_OBJECT(info->bar)); + + free(info); + +} + + +/****************************************************************************** +* * +* Paramètres : info = regroupement d'informations à manipuler. * +* * +* Description : Indique la valeur courante utilisée pour la progression. * +* * +* Retour : Valeur courante. * +* * +* Remarques : - * +* * +******************************************************************************/ + +double get_current_progessive_status(const status_blob_info *info) +{ + return info->current; + +} + + +/****************************************************************************** +* * +* Paramètres : info = regroupement d'informations à manipuler. * +* inc = valeur de la progression à prendre en compte. * +* * +* Description : Augmente la progression visible dans la barre de statut. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void inc_progessive_status(status_blob_info *info, double inc) +{ + assert((info->current + inc) < info->max); + + info->current += inc; + + gtk_extended_status_bar_update_activity(info->bar, info->id, info->current / info->max); + +} diff --git a/src/gtkext/gtkextstatusbar.h b/src/gtkext/gtkextstatusbar.h index 779a177..d250b1f 100644 --- a/src/gtkext/gtkextstatusbar.h +++ b/src/gtkext/gtkextstatusbar.h @@ -30,17 +30,7 @@ -typedef struct _status_info -{ - - - void *a; - - //GtkExtStatusBar *statusbar, bstatus_id_t id - -} status_info; - - +/* ------------------------- GESTION EXTERIEURE DE LA BARRE ------------------------- */ #define GTK_TYPE_EXT_STATUS_BAR (gtk_extended_status_bar_get_type()) @@ -77,4 +67,25 @@ void gtk_extended_status_bar_remove(GtkExtStatusBar *, bstatus_id_t); +/* -------------------------- GESTION EN VUE MACROSCOPIQUE -------------------------- */ + + +/* Concentré d'informations utiles */ +typedef struct _status_blob_info status_blob_info; + + +/* Met en place rapidement un message progressiste de statut. */ +status_blob_info *init_progessive_status(GtkExtStatusBar *, const char *, double, double); + +/* Fait disparaître la glue d'affichage de progression. */ +void fini_progessive_status(status_blob_info *); + +/* Indique la valeur courante utilisée pour la progression. */ +double get_current_progessive_status(const status_blob_info *); + +/* Augmente la progression visible dans la barre de statut. */ +void inc_progessive_status(status_blob_info *, double); + + + #endif /* _GTKEXT_GTKEXTSTATUSBAR_H */ |