WIP: cleaning ...
This commit is contained in:
parent
c849e61e11
commit
e0b05189c3
|
@ -18,5 +18,5 @@
|
|||
#define H_IMAGE_LOCAL H / 16
|
||||
|
||||
GtkWidget *get_selected_rules_vpaned_new();
|
||||
void experimental_activate (GtkApplication *app, gpointer user_data);
|
||||
void experimental_activate_00 (GtkApplication *app, GtkWindow *window);
|
||||
void window_bar(GtkWindow *window, char *title);
|
||||
|
|
|
@ -11,5 +11,14 @@
|
|||
#include "contain.h"
|
||||
#include <assert.h>
|
||||
|
||||
// Simplified TreeNode structure for demonstration purposes
|
||||
struct TreeNode_t
|
||||
{
|
||||
gchar *text;
|
||||
struct TreeNode_t *child;
|
||||
struct TreeNode_t *next;
|
||||
};
|
||||
struct TreeNode_t *create_tree_node (const gchar* text);
|
||||
void add_child_node (struct TreeNode_t *parent, struct TreeNode_t *child);
|
||||
GtkScrolledWindow *get_user_rules_tree ();
|
||||
void let_us_create_a_complex_useless_and_expensive_tree (struct TreeNode_t *tree_root);
|
||||
|
|
|
@ -28,7 +28,13 @@
|
|||
|
||||
#include "../include/base.h"
|
||||
|
||||
#define COMMUTE 0
|
||||
// Gem-graph successive realizations
|
||||
enum
|
||||
{
|
||||
GG_2023,
|
||||
GG_2024_05,
|
||||
GG_2024_06
|
||||
};
|
||||
|
||||
#define W 1920
|
||||
#define H 960
|
||||
|
|
|
@ -22,23 +22,53 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "../../include/base.h"
|
||||
#include "../../include/ui.h"
|
||||
|
||||
struct _GemGraphClientApplication
|
||||
#define COMMUTE 0 // 0 first design (2023) based on <gemgraph.ui> XML data
|
||||
// 1 2024 May design, free of the XML encryption mechanism
|
||||
|
||||
/* Window actual presentation on screen */
|
||||
static void gem_graph_client_application_activate (GApplication *app)
|
||||
{
|
||||
GtkApplication parent_instance;
|
||||
};
|
||||
GtkWindow *window;
|
||||
|
||||
g_assert(GEM_GRAPH_CLIENT_IS_APPLICATION (app));
|
||||
|
||||
window = GTK_WINDOW (gtk_application_get_active_window (GTK_APPLICATION (app)));
|
||||
if (window == NULL)
|
||||
window = GTK_WINDOW (g_object_new (GEM_GRAPH_CLIENT_TYPE_WINDOW,
|
||||
"application", app,
|
||||
NULL));
|
||||
|
||||
switch(COMMUTE) { // enum {...} in ui.h
|
||||
case GG_2023:
|
||||
// Launch with sidebar of gtk_notebook_append_pagef
|
||||
ui_toggle_sidebar();
|
||||
ui_set_stack (HOME_MODE);
|
||||
ui_debug_model_loading (window, "data/models/dimers random walk.xml");
|
||||
// XXX the window closes when a leaf expander is clicked (Erreur de segmentation)
|
||||
break;
|
||||
case GG_2024_05:
|
||||
// see > in contain.c
|
||||
experimental_activate_00 (app, window);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
gtk_window_present (GTK_WINDOW (window));
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
struct _GemGraphClientApplication {GtkApplication parent_instance;};
|
||||
|
||||
G_DEFINE_TYPE (GemGraphClientApplication,
|
||||
gem_graph_client_application,
|
||||
GTK_TYPE_APPLICATION)
|
||||
|
||||
|
||||
static GemGraphClientApplication *application;
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
void ui_enable_action(const char *name) {
|
||||
g_simple_action_set_enabled(
|
||||
(GSimpleAction *)g_action_map_lookup_action(
|
||||
|
@ -55,38 +85,6 @@ void ui_disable_action(const char *name) {
|
|||
false);
|
||||
}
|
||||
|
||||
/*
|
||||
* Window actual presentation on screen
|
||||
*
|
||||
*/
|
||||
static void gem_graph_client_application_activate(GApplication *app)
|
||||
{
|
||||
if (COMMUTE) {
|
||||
|
||||
GtkWindow *window;
|
||||
|
||||
g_assert(GEM_GRAPH_CLIENT_IS_APPLICATION (app));
|
||||
|
||||
window = gtk_application_get_active_window (GTK_APPLICATION (app));
|
||||
if (window == NULL)
|
||||
window = g_object_new (GEM_GRAPH_CLIENT_TYPE_WINDOW,
|
||||
"application", app,
|
||||
NULL);
|
||||
|
||||
// Launch with sidebar off
|
||||
ui_toggle_sidebar();
|
||||
ui_set_stack (HOME_MODE);
|
||||
ui_debug_model_loading (window, "data/models/dimers random walk.xml");
|
||||
|
||||
gtk_window_present (window);
|
||||
|
||||
} else {
|
||||
|
||||
char *user_data = NULL;
|
||||
experimental_activate (app, user_data); // see > contain.c
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Action records are registered here
|
||||
*
|
||||
|
@ -121,7 +119,7 @@ static void gem_graph_client_application_init(GemGraphClientApplication *self)
|
|||
void ui_send_notification(const char *message)
|
||||
{
|
||||
g_print("NOTIFICATION: %s\n", message);
|
||||
g_application_send_notification(G_APPLICATION(application), "notification", g_notification_new(message));
|
||||
g_application_send_notification (G_APPLICATION (application), "notification", g_notification_new(message));
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
|
|
@ -177,8 +177,7 @@ void window_bar(GtkWindow *window, char *title){
|
|||
// gtk_window_controls_set_decoration_layout (GTK_WINDOW_CONTROLS(my_window_controls), NULL); // const char* layout);
|
||||
}
|
||||
|
||||
void experimental_activate (GtkApplication *app, gpointer user_data) {
|
||||
GtkWindow *window = GTK_WINDOW (gtk_application_window_new (app));
|
||||
void experimental_activate_00 (GtkApplication *app, GtkWindow *window) {
|
||||
window_bar (window, "E coli (with permission from David S. Goodsell, 2009)");
|
||||
|
||||
GtkNotebook *run_notebook = GTK_NOTEBOOK(gtk_notebook_new());
|
||||
|
@ -207,7 +206,6 @@ void experimental_activate (GtkApplication *app, gpointer user_data) {
|
|||
gtk_paned_set_end_child (GTK_PANED(run_xor_edit_horizontal_pane), GTK_WIDGET (edit_notebook));
|
||||
gtk_paned_set_position (GTK_PANED (run_xor_edit_horizontal_pane), W_IMAGE + 350); // '350' : AD HOC
|
||||
gtk_window_set_child (window, GTK_WIDGET(run_xor_edit_horizontal_pane));
|
||||
gtk_window_present (GTK_WINDOW (window));
|
||||
|
||||
gtk_notebook_set_current_page (run_notebook, 1); // @see hot.c 2024-05-11 (line 68)
|
||||
gtk_notebook_set_current_page (edit_notebook, 1); // @see hot.c 2024-05-11 (line 68)
|
||||
|
|
|
@ -20,7 +20,7 @@ static struct TreeNode_t *create_user_tree_node (const gchar* text){
|
|||
return node;
|
||||
}
|
||||
|
||||
static struct TreeNode_t *create_tree_node (const gchar* text)
|
||||
struct TreeNode_t *create_tree_node (const gchar* text)
|
||||
{
|
||||
struct TreeNode_t *node = g_malloc0 (sizeof(struct TreeNode_t));
|
||||
node->text = g_strdup(text);
|
||||
|
@ -29,7 +29,7 @@ static struct TreeNode_t *create_tree_node (const gchar* text)
|
|||
}
|
||||
|
||||
// Function to add a child node to a parent node
|
||||
static void add_child_node (struct TreeNode_t *parent, struct TreeNode_t *child)
|
||||
void add_child_node (struct TreeNode_t *parent, struct TreeNode_t *child)
|
||||
{
|
||||
struct TreeNode_t *cur;
|
||||
|
||||
|
@ -44,7 +44,7 @@ static void add_child_node (struct TreeNode_t *parent, struct TreeNode_t *child)
|
|||
}
|
||||
}
|
||||
|
||||
void let_us_create_a_complex_useless_and_expensive_tree (struct TreeNode_t *tree_root){
|
||||
void let_us_create_a_complex_useless_and_expensive_tree (struct TreeNode_t *tree_root) {
|
||||
struct TreeNode_t *a = create_tree_node("We, the people");add_child_node(tree_root, a);
|
||||
struct TreeNode_t *b = create_tree_node("in Order to"); add_child_node(tree_root, b);
|
||||
struct TreeNode_t *c = create_tree_node("do establish"); add_child_node(tree_root, c);
|
||||
|
|
|
@ -32,69 +32,6 @@
|
|||
#include "../../include/ui.h"
|
||||
#include "../../include/hot.h"
|
||||
|
||||
// Simplified TreeNode structure for demonstration purposes
|
||||
struct TreeNode_t
|
||||
{
|
||||
gchar *text;
|
||||
struct TreeNode_t *child;
|
||||
struct TreeNode_t *next;
|
||||
};
|
||||
|
||||
// Function to create a new TreeNode instance
|
||||
static struct TreeNode_t *create_tree_node (const gchar* text)
|
||||
{
|
||||
struct TreeNode_t *node = g_malloc0 (sizeof(struct TreeNode_t));
|
||||
node->text = g_strdup(text);
|
||||
node->child = NULL;
|
||||
return node;
|
||||
}
|
||||
|
||||
// Function to add a child node to a parent node
|
||||
static void add_child_node (struct TreeNode_t *parent, struct TreeNode_t *child)
|
||||
{
|
||||
struct TreeNode_t *cur;
|
||||
|
||||
if (parent->child) {
|
||||
cur = parent->child;
|
||||
while (cur && cur->next) {
|
||||
cur = cur->next;
|
||||
}
|
||||
cur->next = child;
|
||||
} else {
|
||||
parent->child = child;
|
||||
}
|
||||
}
|
||||
|
||||
void create_experimental_tree (struct TreeNode_t *tree_root) // AD HOC XXX & no free()
|
||||
{
|
||||
struct TreeNode_t *a = create_tree_node("We, the people");add_child_node(tree_root, a);
|
||||
struct TreeNode_t *b = create_tree_node("in Order to"); add_child_node(tree_root, b);
|
||||
struct TreeNode_t *c = create_tree_node("do establish"); add_child_node(tree_root, c);
|
||||
struct TreeNode_t *aa = create_tree_node("aware of"); add_child_node(a, aa);
|
||||
struct TreeNode_t *aaa = create_tree_node("our rights"); add_child_node(aa, aaa);
|
||||
struct TreeNode_t *aab = create_tree_node("our duties"); add_child_node(aa, aab);
|
||||
struct TreeNode_t *aaaa = create_tree_node("read"); add_child_node(aaa, aaaa);
|
||||
struct TreeNode_t *aaab = create_tree_node("write"); add_child_node(aaa, aaab);
|
||||
struct TreeNode_t *aaac = create_tree_node("copy"); add_child_node(aaa, aaac);
|
||||
struct TreeNode_t *aaad = create_tree_node("edit"); add_child_node(aaa, aaad);
|
||||
struct TreeNode_t *aaada= create_tree_node("create"); add_child_node(aaad, aaada);
|
||||
struct TreeNode_t *aaadb= create_tree_node("publish"); add_child_node(aaad, aaadb);
|
||||
struct TreeNode_t *aaba = create_tree_node("learn"); add_child_node(aab, aaba);
|
||||
struct TreeNode_t *aabb = create_tree_node("help"); add_child_node(aab, aabb);
|
||||
struct TreeNode_t *ba = create_tree_node("promote"); add_child_node(b, ba);
|
||||
struct TreeNode_t *bb = create_tree_node("individual"); add_child_node(b, bb);
|
||||
struct TreeNode_t *bc = create_tree_node("and common"); add_child_node(b, bc);
|
||||
struct TreeNode_t *bca = create_tree_node("education"); add_child_node(bc, bca);
|
||||
struct TreeNode_t *bcb = create_tree_node("mutual"); add_child_node(bc, bcb);
|
||||
struct TreeNode_t *bcc = create_tree_node("support"); add_child_node(bc, bcc);
|
||||
struct TreeNode_t *bcd = create_tree_node("health"); add_child_node(bc, bcd);
|
||||
struct TreeNode_t *bcda = create_tree_node("mental"); add_child_node(bcd, bcda);
|
||||
struct TreeNode_t *bcdb = create_tree_node("physical"); add_child_node(bcd, bcdb);
|
||||
struct TreeNode_t *ca = create_tree_node("free"); add_child_node(c, ca);
|
||||
struct TreeNode_t *cb = create_tree_node("code"); add_child_node(c, cb);
|
||||
struct TreeNode_t *cc = create_tree_node("access"); add_child_node(c, cc);
|
||||
}
|
||||
|
||||
// Recursive function to free a TreeNode and its children
|
||||
static void free_tree_node (struct TreeNode_t *node)
|
||||
{
|
||||
|
@ -197,9 +134,6 @@ void ui_create_tree (GtkWidget *target_widget)
|
|||
|
||||
struct TreeNode_t *tree_root = create_tree_node("Declaration");
|
||||
let_us_create_a_complex_useless_and_expensive_tree (tree_root);
|
||||
// struct TreeNode_t *tree_root = create_tree_node ("Declaration");
|
||||
// create_experimental_tree (tree_root);
|
||||
// get_user_rules_tree (tree_root);
|
||||
|
||||
model = gtk_string_list_new(NULL);
|
||||
gtk_string_list_append(model, tree_root->text);
|
||||
|
|
Loading…
Reference in New Issue