How to learn from examples ? window = do_listview_words(NULL); line 944 in main.c
This commit is contained in:
parent
8107c7d2e3
commit
5a604fa05d
|
@ -5,7 +5,9 @@
|
||||||
/* guix shell: Tout va bien ! Le shell a les bonnes variables d'environnement. */
|
/* guix shell: Tout va bien ! Le shell a les bonnes variables d'environnement. */
|
||||||
/* jean@Project:~/Gem-Graph/gem-graph-client/tree (learning)/The_Gnome_way/gtk [env] $ cd builddir/ */
|
/* jean@Project:~/Gem-Graph/gem-graph-client/tree (learning)/The_Gnome_way/gtk [env] $ cd builddir/ */
|
||||||
/* jean@Project:~/Gem-Graph/gem-graph-client/tree (learning)/The_Gnome_way/gtk/builddir [env] $ */
|
/* jean@Project:~/Gem-Graph/gem-graph-client/tree (learning)/The_Gnome_way/gtk/builddir [env] $ */
|
||||||
/* jean@Project:~/Gem-Graph/gem-graph-client/tree (learning)/The_Gnome_way/gtk/builddir [env] $ */
|
/* */
|
||||||
|
/* >>>>>>>>>>>>>>>>>> Modify line 944 in this file to run examples <<<<<<<<<<<<<<<<< */
|
||||||
|
/* */
|
||||||
/* jean@Project:~/Gem-Graph/gem-graph-client/tree...way/gtk/builddir [env] $ clear && meson compile && demos/gtk-demo/gtk4-demo */
|
/* jean@Project:~/Gem-Graph/gem-graph-client/tree...way/gtk/builddir [env] $ clear && meson compile && demos/gtk-demo/gtk4-demo */
|
||||||
/* */
|
/* */
|
||||||
/* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- A Session -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
|
/* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- A Session -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
|
||||||
|
@ -932,7 +934,17 @@ activate (GApplication *app)
|
||||||
// GtkFilter *filter;
|
// GtkFilter *filter;
|
||||||
// GSimpleAction *action;
|
// GSimpleAction *action;
|
||||||
|
|
||||||
window= do_tree_store(NULL);
|
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* */
|
||||||
|
/* W I N D O W = D O _ S O M E _ A P P L I C A T I O N _ E X A M P L E */
|
||||||
|
/* */
|
||||||
|
// window = do_tree_store(NULL);
|
||||||
|
window = do_listview_words(NULL);
|
||||||
|
/* */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
gtk_application_add_window (GTK_APPLICATION (app), GTK_WINDOW (window));
|
gtk_application_add_window (GTK_APPLICATION (app), GTK_WINDOW (window));
|
||||||
|
|
||||||
/* builder = gtk_builder_new_from_resource ("/ui/main.ui"); */
|
/* builder = gtk_builder_new_from_resource ("/ui/main.ui"); */
|
||||||
|
|
|
@ -8,11 +8,34 @@
|
||||||
/* */
|
/* */
|
||||||
/* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- A Session -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
|
/* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- A Session -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */
|
||||||
/* */
|
/* */
|
||||||
|
/* >>>>>>>>>>>>>>>>>> Modify line 944 in the main file to run examples <<<<<<<<<<<<<<<<< */
|
||||||
|
/* */
|
||||||
|
/* */
|
||||||
/* jean@Project:~/Gem-Graph/gem-graph-client/tree (learning)/The_Gnome_way/gtk/builddir [env] $ ctrl D (avant de fermer builder) */
|
/* jean@Project:~/Gem-Graph/gem-graph-client/tree (learning)/The_Gnome_way/gtk/builddir [env] $ ctrl D (avant de fermer builder) */
|
||||||
/* */
|
/* */
|
||||||
/****************************************************************************************************************************************/
|
/****************************************************************************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************** The basic ideas behind list views: ************************************************/
|
||||||
|
/* */
|
||||||
|
/* The data for items is provided in the form of a model (containing objects) */
|
||||||
|
/* Widgets are created just for the viewable range of items */
|
||||||
|
/* Widgets can be recycled by binding them to different items */
|
||||||
|
/* Avoid iterating over all items in the model as much as possible, */
|
||||||
|
/* and just deal with the items in the visible range which are bound to widgets */
|
||||||
|
/* from https://blog.gtk.org/2020/06/07/scalable-lists-in-gtk-4/ */
|
||||||
|
/* */
|
||||||
|
/****************************************************************************************************************************************/
|
||||||
|
|
||||||
|
// GtkListItemFactory is the object that is tasked with creating widgets for the items in the model.
|
||||||
|
// One implementations of this factory, GtkBuilderListItemFactory, is using ui files as templates for the list item widgets.
|
||||||
|
// https://gitlab.gnome.org/GNOME/gtk/-/blob/main/demos/gtk-demo/listview_settings.ui
|
||||||
|
|
||||||
|
|
||||||
|
/* Lists/Application launcher #Keywords: GtkListItemFactory, GListModel
|
||||||
|
* This demo uses the GtkListView widget as a fancy application launcher. It is also a very small introduction to listviews.
|
||||||
|
* https://gitlab.gnome.org/GNOME/gtk/-/blob/main/demos/gtk-demo/listview_applauncher.c */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************** W I D G E T S ********************************************************/
|
/************************************************** W I D G E T S ********************************************************/
|
||||||
|
@ -25,7 +48,8 @@
|
||||||
/* It provides a way to specify how temporary widgets should be configured for editing, get the new value, etc. */
|
/* It provides a way to specify how temporary widgets should be configured for editing, get the new value, etc. */
|
||||||
/* _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ */
|
/* _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ */
|
||||||
/* _ _ _ _ _ _ _ _ _ _ _ _ _ _ T R E E _ _ _ _ _ _ _ _ _ _ _ _ _ _ */
|
/* _ _ _ _ _ _ _ _ _ _ _ _ _ _ T R E E _ _ _ _ _ _ _ _ _ _ _ _ _ _ */
|
||||||
/* https://toshiocp.github.io/Gtk4-tutorial/sec29.html <<< TODO */
|
/* */
|
||||||
|
/* https://toshiocp.github.io/Gtk4-tutorial/sec29.html <<< TODO */
|
||||||
/* https://docs.gtk.org/gtk4/ */
|
/* https://docs.gtk.org/gtk4/ */
|
||||||
/* https://docs.gtk.org/gtk4/section-list-widget.html << (see below the "quick comparison chart of equivalent functionalities") */
|
/* https://docs.gtk.org/gtk4/section-list-widget.html << (see below the "quick comparison chart of equivalent functionalities") */
|
||||||
/* https://docs.gtk.org/gtk4/class.TreeListModel.html */
|
/* https://docs.gtk.org/gtk4/class.TreeListModel.html */
|
||||||
|
@ -111,6 +135,8 @@
|
||||||
*
|
*
|
||||||
* GListModel is an interface that represents a mutable list of GObjects.
|
* GListModel is an interface that represents a mutable list of GObjects.
|
||||||
* https://gnome.pages.gitlab.gnome.org/libsoup/gio/GListModel.html
|
* https://gnome.pages.gitlab.gnome.org/libsoup/gio/GListModel.html
|
||||||
|
* https://docs.gtk.org/gio/iface.ListModel.html < +++
|
||||||
|
* https://blog.gtk.org/2020/09/08/on-list-models/
|
||||||
*
|
*
|
||||||
*............................................................................*/
|
*............................................................................*/
|
||||||
|
|
||||||
|
@ -149,7 +175,7 @@ static TreeItem R[] = {{"A", A}, {"B", B}, {"C", C}, {NULL}};
|
||||||
static TreeItem O[] = {{"ROOT", R}, {NULL}}; // Artefact added for symmetry
|
static TreeItem O[] = {{"ROOT", R}, {NULL}}; // Artefact added for symmetry
|
||||||
|
|
||||||
|
|
||||||
static GListStore *create_node_recursive (GtkTreeStore *model, // GListStore* g_list_store_new (GType item_type)
|
static GListStore *create_node_recursive (GListModel *model, // GListStore* g_list_store_new (GType item_type)
|
||||||
TreeItem *current_item,
|
TreeItem *current_item,
|
||||||
GtkTreeIter *iter_parent,
|
GtkTreeIter *iter_parent,
|
||||||
int depth)
|
int depth)
|
||||||
|
@ -173,7 +199,7 @@ static GListStore *create_node_recursive (GtkTreeStore *model, // GListStore*
|
||||||
}
|
}
|
||||||
|
|
||||||
if (depth == 0)
|
if (depth == 0)
|
||||||
return G_LIST_STORE(model); // can cast to GListModel or to GtkTreeStore ?
|
return G_LIST_MODEL(model); // can cast to GListModel or to GtkTreeStore ?
|
||||||
else
|
else
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue