diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2024-09-09 08:41:59 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2024-09-09 08:41:59 (GMT) |
commit | ec71086f6dcf69241b586f1e48e7d656dda11a6c (patch) | |
tree | 4a5cfbbe76d9407997b6b6e8f4b8e0893ddb259d /src/gtkext/statusstack-int.h | |
parent | e3ce461fec70fd638b415edef4ce3aa9d939d772 (diff) |
Restore the status bar at the bottom of the main window.
Diffstat (limited to 'src/gtkext/statusstack-int.h')
-rw-r--r-- | src/gtkext/statusstack-int.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/src/gtkext/statusstack-int.h b/src/gtkext/statusstack-int.h new file mode 100644 index 0000000..facc5af --- /dev/null +++ b/src/gtkext/statusstack-int.h @@ -0,0 +1,94 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * statusstack-int.h - définitions internes pour l'empilement d'informations de statut + * + * Copyright (C) 2024 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide 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 3 of the License, or + * (at your option) any later version. + * + * Chrysalide 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 Chrysalide. If not, see <http://www.gnu.org/licenses/>. + */ + + +#ifndef _GTKEXT_STATUSSTACK_INT_H +#define _GTKEXT_STATUSSTACK_INT_H + + +#include "statusstack.h" + + + +/* Navigation au sein d'assemblage */ +typedef struct _navigation_info_t navigation_info_t; + +/* Mémorisation des progressions au sein d'activités */ +typedef struct _activity_info_t activity_info_t; + + +#define NETWORK_UPDATE_COUNT 10 +#define NETWORK_UPDATE_INTERVAL (1000 / NETWORK_UPDATE_COUNT) + + +/* Gestion de barre de statut adaptable (instance) */ +struct _GtkStatusStack +{ + GtkBox parent; /* A laisser en premier */ + + GtkStack *main; /* Pile d'informations associée*/ + + GSourceFunc def_source; /* Appel en fin d'activité */ + + /* Navigation */ + + GtkLabel *nav_segment; /* Désignation du segment */ + GtkLabel *nav_phys; /* Adresse physique */ + GtkLabel *nav_virt; /* Adresse virtuelle */ + GtkLabel *nav_offset; /* Position dans le binaire */ + GtkLabel *nav_format; /* Architecture du binaire */ + GtkLabel *nav_details; /* Détails sur l'architecture */ + GtkEntry *zoom; /* Degré de zoom courant */ + + navigation_info_t *nav_info; /* Informations brutes liées */ + + /* Activité */ + + GtkLabel *activity_message; /* Nature de l'activité */ + GtkProgressBar *activity_progress; /* Barre de progression */ + + activity_info_t *activity_info; /* Informations brutes liées */ + + /* Tronc commun */ + + GtkLabel *net_recv_speed; /* Débit en réception */ + GtkLabel *net_send_speed; /* Débit en émission */ + + size_t last_bytes_received[NETWORK_UPDATE_COUNT]; /* Octets reçus */ + size_t last_bytes_sent[NETWORK_UPDATE_COUNT]; /* Octets émis */ + gint64 last_timestamps[NETWORK_UPDATE_COUNT]; /* Dates des mesures */ + size_t next_index; /* Indice d'écriture */ + + guint network_update_tag; /* Identifiant de mise à jour */ + +}; + +/* Gestion de barre de statut adaptable (classe) */ +struct _GtkStatusStackClass +{ + GtkBoxClass parent; /* A laisser en premier */ + +}; + + + +#endif /* _GTKEXT_STATUSSTACK_INT_H */ |