/* 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 . */ #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 */