1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
/* Chrysalide - Outil d'analyse de fichiers binaires
* tweak.h - prototypes pour pour une section d'éléments à paramétrer
*
* Copyright (C) 2025 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_TWEAK_H
#define _GTKEXT_TWEAK_H
#include <gtk/gtk.h>
#include "../glibext/helpers.h"
/* Définition d'une section de configuration */
typedef struct _tweak_info_t
{
const char *parent; /* Ensemble d'appartenance */
const char *category; /* Groupe de rassemblement */
const char *image; /* Eventuelle image associée */
const char *key; /* Désignation de la section */
const char *label; /* Désignation humaine */
union
{
GType panel; /* Accès à la page de config. */
const char *sub; /* Sous-ensemble à presenter */
};
bool has_sub_section; /* Choix du champ valide */
} tweak_info_t;
#define TWEAK_SIMPLE_DEF(p, c, i, k, l, t) \
{ \
.parent = p, \
.category = c, \
.image = i, \
.key = k, \
.label = l, \
.panel = t, \
.has_sub_section = false, \
}
#define GTK_TYPE_TWEAK_SECTION (gtk_tweak_section_get_type())
DECLARE_GTYPE(GtkTweakSection, gtk_tweak_section, GTK, TWEAK_SECTION);
/* Crée une nouvelle section de configuration. */
GtkTweakSection *gtk_tweak_section_new(const tweak_info_t *);
/* Fournit l'étiquette associée à une section de configuration. */
const char *gtk_tweak_section_get_label(const GtkTweakSection *);
/* Indique si la section renvoie vers une sous-section. */
bool gtk_tweak_section_has_sub_section(const GtkTweakSection *);
/* Fournit le type d'un éventuel panneau de configuration lié. */
GType gtk_tweak_section_get_panel(const GtkTweakSection *);
/* Fournit la désignation d'une éventuelle sous-section liée. */
const char *gtk_tweak_section_get_sub_section(const GtkTweakSection *);
#endif /* _GTKEXT_TWEAK_H */
|