WIP: cleaning ...
This commit is contained in:
parent
c849e61e11
commit
e0b05189c3
|
@ -18,5 +18,5 @@
|
||||||
#define H_IMAGE_LOCAL H / 16
|
#define H_IMAGE_LOCAL H / 16
|
||||||
|
|
||||||
GtkWidget *get_selected_rules_vpaned_new();
|
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);
|
void window_bar(GtkWindow *window, char *title);
|
||||||
|
|
|
@ -11,5 +11,14 @@
|
||||||
#include "contain.h"
|
#include "contain.h"
|
||||||
#include <assert.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 ();
|
GtkScrolledWindow *get_user_rules_tree ();
|
||||||
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);
|
||||||
|
|
|
@ -28,7 +28,13 @@
|
||||||
|
|
||||||
#include "../include/base.h"
|
#include "../include/base.h"
|
||||||
|
|
||||||
#define COMMUTE 0
|
// Gem-graph successive realizations
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
GG_2023,
|
||||||
|
GG_2024_05,
|
||||||
|
GG_2024_06
|
||||||
|
};
|
||||||
|
|
||||||
#define W 1920
|
#define W 1920
|
||||||
#define H 960
|
#define H 960
|
||||||
|
|
|
@ -22,23 +22,53 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../../include/base.h"
|
|
||||||
#include "../../include/ui.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,
|
G_DEFINE_TYPE (GemGraphClientApplication,
|
||||||
gem_graph_client_application,
|
gem_graph_client_application,
|
||||||
GTK_TYPE_APPLICATION)
|
GTK_TYPE_APPLICATION)
|
||||||
|
|
||||||
|
|
||||||
static GemGraphClientApplication *application;
|
static GemGraphClientApplication *application;
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
void ui_enable_action(const char *name) {
|
void ui_enable_action(const char *name) {
|
||||||
g_simple_action_set_enabled(
|
g_simple_action_set_enabled(
|
||||||
(GSimpleAction *)g_action_map_lookup_action(
|
(GSimpleAction *)g_action_map_lookup_action(
|
||||||
|
@ -55,38 +85,6 @@ void ui_disable_action(const char *name) {
|
||||||
false);
|
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
|
* 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)
|
void ui_send_notification(const char *message)
|
||||||
{
|
{
|
||||||
g_print("NOTIFICATION: %s\n", 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);
|
// gtk_window_controls_set_decoration_layout (GTK_WINDOW_CONTROLS(my_window_controls), NULL); // const char* layout);
|
||||||
}
|
}
|
||||||
|
|
||||||
void experimental_activate (GtkApplication *app, gpointer user_data) {
|
void experimental_activate_00 (GtkApplication *app, GtkWindow *window) {
|
||||||
GtkWindow *window = GTK_WINDOW (gtk_application_window_new (app));
|
|
||||||
window_bar (window, "E coli (with permission from David S. Goodsell, 2009)");
|
window_bar (window, "E coli (with permission from David S. Goodsell, 2009)");
|
||||||
|
|
||||||
GtkNotebook *run_notebook = GTK_NOTEBOOK(gtk_notebook_new());
|
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_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_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_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 (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)
|
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;
|
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));
|
struct TreeNode_t *node = g_malloc0 (sizeof(struct TreeNode_t));
|
||||||
node->text = g_strdup(text);
|
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
|
// 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;
|
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 *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 *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 *c = create_tree_node("do establish"); add_child_node(tree_root, c);
|
||||||
|
|
|
@ -32,69 +32,6 @@
|
||||||
#include "../../include/ui.h"
|
#include "../../include/ui.h"
|
||||||
#include "../../include/hot.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
|
// Recursive function to free a TreeNode and its children
|
||||||
static void free_tree_node (struct TreeNode_t *node)
|
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");
|
struct TreeNode_t *tree_root = create_tree_node("Declaration");
|
||||||
let_us_create_a_complex_useless_and_expensive_tree (tree_root);
|
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);
|
model = gtk_string_list_new(NULL);
|
||||||
gtk_string_list_append(model, tree_root->text);
|
gtk_string_list_append(model, tree_root->text);
|
||||||
|
|
Loading…
Reference in New Issue