mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-09-21 14:24:19 +00:00
new class methods: (sort_list) (insert_row) (remove_row)
Tue Aug 18 00:29:13 1998 Lars Hamann <lars@gtk.org> * gtk/gtkclist.h: (struct _GtkCListClass): new class methods: (sort_list) (insert_row) (remove_row) (set_cell_contents) * gtk/gtkclist.c : (cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext): removed and replaced by (set_cell_contents) (set_cell_contents): function for class method set_cell_contents (real_insert_row): function for class method insert_row (real_remoce_row): function for class method remove_row (real_sort_list): function for class method sort_list (default_compare): fix to avoid problems with cell types != CELL_TEXT * gtk/gtkctree.h : (gtk_ctree_export_to_gnode): new function to export a ctree as gnode (gtk_ctree_node_is_visible): new function to return visibility state of a node (gtk_ctree_show_stub): new function to set visibility of root stub renamed functions : (gtk_ctree_insert) -> (gtk_ctree_insert_node) (gtk_ctree_remove) -> (gtk_ctree_remove_node) (gtk_ctree_find_glist_ptr) -> (gtk_ctree_find_node_ptr) (gtk_ctree_set_text) -> (gtk_ctree_node_set_text) (gtk_ctree_set_pixmap) -> (gtk_ctree_node_set_pixmap) (gtk_ctree_set_pixtext) -> (gtk_ctree_node_set_pixtext) (gtk_ctree_set_shift) -> (gtk_ctree_node_set_shift) (gtk_ctree_get_cell_type) -> (gtk_ctree_node_get_cell_type) (gtk_ctree_get_text) -> (gtk_ctree_node_get_text) (gtk_ctree_get_pixmap) -> (gtk_ctree_node_get_pixmap) (gtk_ctree_get_pixtext) -> (gtk_ctree_node_get_pixtext) (gtk_ctree_set_foreground) -> (gtk_ctree_node_set_foreground) (gtk_ctree_set_background) -> (gtk_ctree_node_set_background) (gtk_ctree_set_row_data) -> (gtk_ctree_node_set_row_data) (gtk_ctree_set_row_data_full) -> (gtk_ctree_node_set_row_data_full) (gtk_ctree_get_row_data) -> (gtk_ctree_node_get_row_data) (gtk_ctree_moveto) -> (gtk_ctree_node_moveto) (gtk_ctree_sort) -> (gtk_ctree_sort_node) (gtk_ctree_is_visibe) -> (gtk_ctree_is_viewable) * gtk/gtkctree.c : (cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext): removed and replaced by (set_cell_contents) (set_cell_contents): function for class method set_cell_contents (real_insert_row): function for class method insert_row (real_remoce_row): function for class method remove_row (real_sort_list): function for class method sort_list (default_compare): removed. CTree now also compares two GtkCTreeRows instead of two GtkCTreeNodes. (gtk_ctree_unlink): call gtk_ctree_collapse if parent is empty after unlinking the node (real_tree_expand) (real_tree_collapse): fix for refcounting of node pixmaps (set_node_info): call gtk_ctree_node_set_pixtext instead of manipulating the row itself * gtk/testgtk.c: use renamed functions of GtkCTree. new sample to show gtk_ctree_export_to_gnode and gtk_ctree_insert_gnode at work.
This commit is contained in:
parent
47215ba403
commit
17d141c8e5
62
ChangeLog
62
ChangeLog
@ -1,3 +1,65 @@
|
||||
Tue Aug 18 00:29:13 1998 Lars Hamann <lars@gtk.org>
|
||||
|
||||
* gtk/gtkclist.h:
|
||||
(struct _GtkCListClass): new class methods:
|
||||
(sort_list) (insert_row) (remove_row) (set_cell_contents)
|
||||
|
||||
* gtk/gtkclist.c :
|
||||
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
|
||||
removed and replaced by (set_cell_contents)
|
||||
(set_cell_contents): function for class method set_cell_contents
|
||||
(real_insert_row): function for class method insert_row
|
||||
(real_remoce_row): function for class method remove_row
|
||||
(real_sort_list): function for class method sort_list
|
||||
(default_compare): fix to avoid problems with cell types != CELL_TEXT
|
||||
|
||||
* gtk/gtkctree.h :
|
||||
(gtk_ctree_export_to_gnode): new function to export a ctree as gnode
|
||||
(gtk_ctree_node_is_visible): new function to return visibility state
|
||||
of a node
|
||||
(gtk_ctree_show_stub): new function to set visibility of root stub
|
||||
|
||||
renamed functions :
|
||||
(gtk_ctree_insert) -> (gtk_ctree_insert_node)
|
||||
(gtk_ctree_remove) -> (gtk_ctree_remove_node)
|
||||
(gtk_ctree_find_glist_ptr) -> (gtk_ctree_find_node_ptr)
|
||||
(gtk_ctree_set_text) -> (gtk_ctree_node_set_text)
|
||||
(gtk_ctree_set_pixmap) -> (gtk_ctree_node_set_pixmap)
|
||||
(gtk_ctree_set_pixtext) -> (gtk_ctree_node_set_pixtext)
|
||||
(gtk_ctree_set_shift) -> (gtk_ctree_node_set_shift)
|
||||
(gtk_ctree_get_cell_type) -> (gtk_ctree_node_get_cell_type)
|
||||
(gtk_ctree_get_text) -> (gtk_ctree_node_get_text)
|
||||
(gtk_ctree_get_pixmap) -> (gtk_ctree_node_get_pixmap)
|
||||
(gtk_ctree_get_pixtext) -> (gtk_ctree_node_get_pixtext)
|
||||
(gtk_ctree_set_foreground) -> (gtk_ctree_node_set_foreground)
|
||||
(gtk_ctree_set_background) -> (gtk_ctree_node_set_background)
|
||||
(gtk_ctree_set_row_data) -> (gtk_ctree_node_set_row_data)
|
||||
(gtk_ctree_set_row_data_full) -> (gtk_ctree_node_set_row_data_full)
|
||||
(gtk_ctree_get_row_data) -> (gtk_ctree_node_get_row_data)
|
||||
(gtk_ctree_moveto) -> (gtk_ctree_node_moveto)
|
||||
(gtk_ctree_sort) -> (gtk_ctree_sort_node)
|
||||
(gtk_ctree_is_visibe) -> (gtk_ctree_is_viewable)
|
||||
|
||||
* gtk/gtkctree.c :
|
||||
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
|
||||
removed and replaced by (set_cell_contents)
|
||||
(set_cell_contents): function for class method set_cell_contents
|
||||
(real_insert_row): function for class method insert_row
|
||||
(real_remoce_row): function for class method remove_row
|
||||
(real_sort_list): function for class method sort_list
|
||||
(default_compare): removed. CTree now also compares two GtkCTreeRows
|
||||
instead of two GtkCTreeNodes.
|
||||
(gtk_ctree_unlink): call gtk_ctree_collapse if parent is empty after
|
||||
unlinking the node
|
||||
(real_tree_expand) (real_tree_collapse): fix for refcounting of
|
||||
node pixmaps
|
||||
(set_node_info): call gtk_ctree_node_set_pixtext instead of
|
||||
manipulating the row itself
|
||||
|
||||
* gtk/testgtk.c: use renamed functions of GtkCTree.
|
||||
new sample to show gtk_ctree_export_to_gnode and gtk_ctree_insert_gnode
|
||||
at work.
|
||||
|
||||
Mon Aug 17 15:31:38 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkmain.c: removed gtk_input_add_interp.
|
||||
|
@ -1,3 +1,65 @@
|
||||
Tue Aug 18 00:29:13 1998 Lars Hamann <lars@gtk.org>
|
||||
|
||||
* gtk/gtkclist.h:
|
||||
(struct _GtkCListClass): new class methods:
|
||||
(sort_list) (insert_row) (remove_row) (set_cell_contents)
|
||||
|
||||
* gtk/gtkclist.c :
|
||||
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
|
||||
removed and replaced by (set_cell_contents)
|
||||
(set_cell_contents): function for class method set_cell_contents
|
||||
(real_insert_row): function for class method insert_row
|
||||
(real_remoce_row): function for class method remove_row
|
||||
(real_sort_list): function for class method sort_list
|
||||
(default_compare): fix to avoid problems with cell types != CELL_TEXT
|
||||
|
||||
* gtk/gtkctree.h :
|
||||
(gtk_ctree_export_to_gnode): new function to export a ctree as gnode
|
||||
(gtk_ctree_node_is_visible): new function to return visibility state
|
||||
of a node
|
||||
(gtk_ctree_show_stub): new function to set visibility of root stub
|
||||
|
||||
renamed functions :
|
||||
(gtk_ctree_insert) -> (gtk_ctree_insert_node)
|
||||
(gtk_ctree_remove) -> (gtk_ctree_remove_node)
|
||||
(gtk_ctree_find_glist_ptr) -> (gtk_ctree_find_node_ptr)
|
||||
(gtk_ctree_set_text) -> (gtk_ctree_node_set_text)
|
||||
(gtk_ctree_set_pixmap) -> (gtk_ctree_node_set_pixmap)
|
||||
(gtk_ctree_set_pixtext) -> (gtk_ctree_node_set_pixtext)
|
||||
(gtk_ctree_set_shift) -> (gtk_ctree_node_set_shift)
|
||||
(gtk_ctree_get_cell_type) -> (gtk_ctree_node_get_cell_type)
|
||||
(gtk_ctree_get_text) -> (gtk_ctree_node_get_text)
|
||||
(gtk_ctree_get_pixmap) -> (gtk_ctree_node_get_pixmap)
|
||||
(gtk_ctree_get_pixtext) -> (gtk_ctree_node_get_pixtext)
|
||||
(gtk_ctree_set_foreground) -> (gtk_ctree_node_set_foreground)
|
||||
(gtk_ctree_set_background) -> (gtk_ctree_node_set_background)
|
||||
(gtk_ctree_set_row_data) -> (gtk_ctree_node_set_row_data)
|
||||
(gtk_ctree_set_row_data_full) -> (gtk_ctree_node_set_row_data_full)
|
||||
(gtk_ctree_get_row_data) -> (gtk_ctree_node_get_row_data)
|
||||
(gtk_ctree_moveto) -> (gtk_ctree_node_moveto)
|
||||
(gtk_ctree_sort) -> (gtk_ctree_sort_node)
|
||||
(gtk_ctree_is_visibe) -> (gtk_ctree_is_viewable)
|
||||
|
||||
* gtk/gtkctree.c :
|
||||
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
|
||||
removed and replaced by (set_cell_contents)
|
||||
(set_cell_contents): function for class method set_cell_contents
|
||||
(real_insert_row): function for class method insert_row
|
||||
(real_remoce_row): function for class method remove_row
|
||||
(real_sort_list): function for class method sort_list
|
||||
(default_compare): removed. CTree now also compares two GtkCTreeRows
|
||||
instead of two GtkCTreeNodes.
|
||||
(gtk_ctree_unlink): call gtk_ctree_collapse if parent is empty after
|
||||
unlinking the node
|
||||
(real_tree_expand) (real_tree_collapse): fix for refcounting of
|
||||
node pixmaps
|
||||
(set_node_info): call gtk_ctree_node_set_pixtext instead of
|
||||
manipulating the row itself
|
||||
|
||||
* gtk/testgtk.c: use renamed functions of GtkCTree.
|
||||
new sample to show gtk_ctree_export_to_gnode and gtk_ctree_insert_gnode
|
||||
at work.
|
||||
|
||||
Mon Aug 17 15:31:38 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkmain.c: removed gtk_input_add_interp.
|
||||
|
@ -1,3 +1,65 @@
|
||||
Tue Aug 18 00:29:13 1998 Lars Hamann <lars@gtk.org>
|
||||
|
||||
* gtk/gtkclist.h:
|
||||
(struct _GtkCListClass): new class methods:
|
||||
(sort_list) (insert_row) (remove_row) (set_cell_contents)
|
||||
|
||||
* gtk/gtkclist.c :
|
||||
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
|
||||
removed and replaced by (set_cell_contents)
|
||||
(set_cell_contents): function for class method set_cell_contents
|
||||
(real_insert_row): function for class method insert_row
|
||||
(real_remoce_row): function for class method remove_row
|
||||
(real_sort_list): function for class method sort_list
|
||||
(default_compare): fix to avoid problems with cell types != CELL_TEXT
|
||||
|
||||
* gtk/gtkctree.h :
|
||||
(gtk_ctree_export_to_gnode): new function to export a ctree as gnode
|
||||
(gtk_ctree_node_is_visible): new function to return visibility state
|
||||
of a node
|
||||
(gtk_ctree_show_stub): new function to set visibility of root stub
|
||||
|
||||
renamed functions :
|
||||
(gtk_ctree_insert) -> (gtk_ctree_insert_node)
|
||||
(gtk_ctree_remove) -> (gtk_ctree_remove_node)
|
||||
(gtk_ctree_find_glist_ptr) -> (gtk_ctree_find_node_ptr)
|
||||
(gtk_ctree_set_text) -> (gtk_ctree_node_set_text)
|
||||
(gtk_ctree_set_pixmap) -> (gtk_ctree_node_set_pixmap)
|
||||
(gtk_ctree_set_pixtext) -> (gtk_ctree_node_set_pixtext)
|
||||
(gtk_ctree_set_shift) -> (gtk_ctree_node_set_shift)
|
||||
(gtk_ctree_get_cell_type) -> (gtk_ctree_node_get_cell_type)
|
||||
(gtk_ctree_get_text) -> (gtk_ctree_node_get_text)
|
||||
(gtk_ctree_get_pixmap) -> (gtk_ctree_node_get_pixmap)
|
||||
(gtk_ctree_get_pixtext) -> (gtk_ctree_node_get_pixtext)
|
||||
(gtk_ctree_set_foreground) -> (gtk_ctree_node_set_foreground)
|
||||
(gtk_ctree_set_background) -> (gtk_ctree_node_set_background)
|
||||
(gtk_ctree_set_row_data) -> (gtk_ctree_node_set_row_data)
|
||||
(gtk_ctree_set_row_data_full) -> (gtk_ctree_node_set_row_data_full)
|
||||
(gtk_ctree_get_row_data) -> (gtk_ctree_node_get_row_data)
|
||||
(gtk_ctree_moveto) -> (gtk_ctree_node_moveto)
|
||||
(gtk_ctree_sort) -> (gtk_ctree_sort_node)
|
||||
(gtk_ctree_is_visibe) -> (gtk_ctree_is_viewable)
|
||||
|
||||
* gtk/gtkctree.c :
|
||||
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
|
||||
removed and replaced by (set_cell_contents)
|
||||
(set_cell_contents): function for class method set_cell_contents
|
||||
(real_insert_row): function for class method insert_row
|
||||
(real_remoce_row): function for class method remove_row
|
||||
(real_sort_list): function for class method sort_list
|
||||
(default_compare): removed. CTree now also compares two GtkCTreeRows
|
||||
instead of two GtkCTreeNodes.
|
||||
(gtk_ctree_unlink): call gtk_ctree_collapse if parent is empty after
|
||||
unlinking the node
|
||||
(real_tree_expand) (real_tree_collapse): fix for refcounting of
|
||||
node pixmaps
|
||||
(set_node_info): call gtk_ctree_node_set_pixtext instead of
|
||||
manipulating the row itself
|
||||
|
||||
* gtk/testgtk.c: use renamed functions of GtkCTree.
|
||||
new sample to show gtk_ctree_export_to_gnode and gtk_ctree_insert_gnode
|
||||
at work.
|
||||
|
||||
Mon Aug 17 15:31:38 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkmain.c: removed gtk_input_add_interp.
|
||||
|
@ -1,3 +1,65 @@
|
||||
Tue Aug 18 00:29:13 1998 Lars Hamann <lars@gtk.org>
|
||||
|
||||
* gtk/gtkclist.h:
|
||||
(struct _GtkCListClass): new class methods:
|
||||
(sort_list) (insert_row) (remove_row) (set_cell_contents)
|
||||
|
||||
* gtk/gtkclist.c :
|
||||
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
|
||||
removed and replaced by (set_cell_contents)
|
||||
(set_cell_contents): function for class method set_cell_contents
|
||||
(real_insert_row): function for class method insert_row
|
||||
(real_remoce_row): function for class method remove_row
|
||||
(real_sort_list): function for class method sort_list
|
||||
(default_compare): fix to avoid problems with cell types != CELL_TEXT
|
||||
|
||||
* gtk/gtkctree.h :
|
||||
(gtk_ctree_export_to_gnode): new function to export a ctree as gnode
|
||||
(gtk_ctree_node_is_visible): new function to return visibility state
|
||||
of a node
|
||||
(gtk_ctree_show_stub): new function to set visibility of root stub
|
||||
|
||||
renamed functions :
|
||||
(gtk_ctree_insert) -> (gtk_ctree_insert_node)
|
||||
(gtk_ctree_remove) -> (gtk_ctree_remove_node)
|
||||
(gtk_ctree_find_glist_ptr) -> (gtk_ctree_find_node_ptr)
|
||||
(gtk_ctree_set_text) -> (gtk_ctree_node_set_text)
|
||||
(gtk_ctree_set_pixmap) -> (gtk_ctree_node_set_pixmap)
|
||||
(gtk_ctree_set_pixtext) -> (gtk_ctree_node_set_pixtext)
|
||||
(gtk_ctree_set_shift) -> (gtk_ctree_node_set_shift)
|
||||
(gtk_ctree_get_cell_type) -> (gtk_ctree_node_get_cell_type)
|
||||
(gtk_ctree_get_text) -> (gtk_ctree_node_get_text)
|
||||
(gtk_ctree_get_pixmap) -> (gtk_ctree_node_get_pixmap)
|
||||
(gtk_ctree_get_pixtext) -> (gtk_ctree_node_get_pixtext)
|
||||
(gtk_ctree_set_foreground) -> (gtk_ctree_node_set_foreground)
|
||||
(gtk_ctree_set_background) -> (gtk_ctree_node_set_background)
|
||||
(gtk_ctree_set_row_data) -> (gtk_ctree_node_set_row_data)
|
||||
(gtk_ctree_set_row_data_full) -> (gtk_ctree_node_set_row_data_full)
|
||||
(gtk_ctree_get_row_data) -> (gtk_ctree_node_get_row_data)
|
||||
(gtk_ctree_moveto) -> (gtk_ctree_node_moveto)
|
||||
(gtk_ctree_sort) -> (gtk_ctree_sort_node)
|
||||
(gtk_ctree_is_visibe) -> (gtk_ctree_is_viewable)
|
||||
|
||||
* gtk/gtkctree.c :
|
||||
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
|
||||
removed and replaced by (set_cell_contents)
|
||||
(set_cell_contents): function for class method set_cell_contents
|
||||
(real_insert_row): function for class method insert_row
|
||||
(real_remoce_row): function for class method remove_row
|
||||
(real_sort_list): function for class method sort_list
|
||||
(default_compare): removed. CTree now also compares two GtkCTreeRows
|
||||
instead of two GtkCTreeNodes.
|
||||
(gtk_ctree_unlink): call gtk_ctree_collapse if parent is empty after
|
||||
unlinking the node
|
||||
(real_tree_expand) (real_tree_collapse): fix for refcounting of
|
||||
node pixmaps
|
||||
(set_node_info): call gtk_ctree_node_set_pixtext instead of
|
||||
manipulating the row itself
|
||||
|
||||
* gtk/testgtk.c: use renamed functions of GtkCTree.
|
||||
new sample to show gtk_ctree_export_to_gnode and gtk_ctree_insert_gnode
|
||||
at work.
|
||||
|
||||
Mon Aug 17 15:31:38 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkmain.c: removed gtk_input_add_interp.
|
||||
|
@ -1,3 +1,65 @@
|
||||
Tue Aug 18 00:29:13 1998 Lars Hamann <lars@gtk.org>
|
||||
|
||||
* gtk/gtkclist.h:
|
||||
(struct _GtkCListClass): new class methods:
|
||||
(sort_list) (insert_row) (remove_row) (set_cell_contents)
|
||||
|
||||
* gtk/gtkclist.c :
|
||||
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
|
||||
removed and replaced by (set_cell_contents)
|
||||
(set_cell_contents): function for class method set_cell_contents
|
||||
(real_insert_row): function for class method insert_row
|
||||
(real_remoce_row): function for class method remove_row
|
||||
(real_sort_list): function for class method sort_list
|
||||
(default_compare): fix to avoid problems with cell types != CELL_TEXT
|
||||
|
||||
* gtk/gtkctree.h :
|
||||
(gtk_ctree_export_to_gnode): new function to export a ctree as gnode
|
||||
(gtk_ctree_node_is_visible): new function to return visibility state
|
||||
of a node
|
||||
(gtk_ctree_show_stub): new function to set visibility of root stub
|
||||
|
||||
renamed functions :
|
||||
(gtk_ctree_insert) -> (gtk_ctree_insert_node)
|
||||
(gtk_ctree_remove) -> (gtk_ctree_remove_node)
|
||||
(gtk_ctree_find_glist_ptr) -> (gtk_ctree_find_node_ptr)
|
||||
(gtk_ctree_set_text) -> (gtk_ctree_node_set_text)
|
||||
(gtk_ctree_set_pixmap) -> (gtk_ctree_node_set_pixmap)
|
||||
(gtk_ctree_set_pixtext) -> (gtk_ctree_node_set_pixtext)
|
||||
(gtk_ctree_set_shift) -> (gtk_ctree_node_set_shift)
|
||||
(gtk_ctree_get_cell_type) -> (gtk_ctree_node_get_cell_type)
|
||||
(gtk_ctree_get_text) -> (gtk_ctree_node_get_text)
|
||||
(gtk_ctree_get_pixmap) -> (gtk_ctree_node_get_pixmap)
|
||||
(gtk_ctree_get_pixtext) -> (gtk_ctree_node_get_pixtext)
|
||||
(gtk_ctree_set_foreground) -> (gtk_ctree_node_set_foreground)
|
||||
(gtk_ctree_set_background) -> (gtk_ctree_node_set_background)
|
||||
(gtk_ctree_set_row_data) -> (gtk_ctree_node_set_row_data)
|
||||
(gtk_ctree_set_row_data_full) -> (gtk_ctree_node_set_row_data_full)
|
||||
(gtk_ctree_get_row_data) -> (gtk_ctree_node_get_row_data)
|
||||
(gtk_ctree_moveto) -> (gtk_ctree_node_moveto)
|
||||
(gtk_ctree_sort) -> (gtk_ctree_sort_node)
|
||||
(gtk_ctree_is_visibe) -> (gtk_ctree_is_viewable)
|
||||
|
||||
* gtk/gtkctree.c :
|
||||
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
|
||||
removed and replaced by (set_cell_contents)
|
||||
(set_cell_contents): function for class method set_cell_contents
|
||||
(real_insert_row): function for class method insert_row
|
||||
(real_remoce_row): function for class method remove_row
|
||||
(real_sort_list): function for class method sort_list
|
||||
(default_compare): removed. CTree now also compares two GtkCTreeRows
|
||||
instead of two GtkCTreeNodes.
|
||||
(gtk_ctree_unlink): call gtk_ctree_collapse if parent is empty after
|
||||
unlinking the node
|
||||
(real_tree_expand) (real_tree_collapse): fix for refcounting of
|
||||
node pixmaps
|
||||
(set_node_info): call gtk_ctree_node_set_pixtext instead of
|
||||
manipulating the row itself
|
||||
|
||||
* gtk/testgtk.c: use renamed functions of GtkCTree.
|
||||
new sample to show gtk_ctree_export_to_gnode and gtk_ctree_insert_gnode
|
||||
at work.
|
||||
|
||||
Mon Aug 17 15:31:38 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkmain.c: removed gtk_input_add_interp.
|
||||
|
@ -1,3 +1,65 @@
|
||||
Tue Aug 18 00:29:13 1998 Lars Hamann <lars@gtk.org>
|
||||
|
||||
* gtk/gtkclist.h:
|
||||
(struct _GtkCListClass): new class methods:
|
||||
(sort_list) (insert_row) (remove_row) (set_cell_contents)
|
||||
|
||||
* gtk/gtkclist.c :
|
||||
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
|
||||
removed and replaced by (set_cell_contents)
|
||||
(set_cell_contents): function for class method set_cell_contents
|
||||
(real_insert_row): function for class method insert_row
|
||||
(real_remoce_row): function for class method remove_row
|
||||
(real_sort_list): function for class method sort_list
|
||||
(default_compare): fix to avoid problems with cell types != CELL_TEXT
|
||||
|
||||
* gtk/gtkctree.h :
|
||||
(gtk_ctree_export_to_gnode): new function to export a ctree as gnode
|
||||
(gtk_ctree_node_is_visible): new function to return visibility state
|
||||
of a node
|
||||
(gtk_ctree_show_stub): new function to set visibility of root stub
|
||||
|
||||
renamed functions :
|
||||
(gtk_ctree_insert) -> (gtk_ctree_insert_node)
|
||||
(gtk_ctree_remove) -> (gtk_ctree_remove_node)
|
||||
(gtk_ctree_find_glist_ptr) -> (gtk_ctree_find_node_ptr)
|
||||
(gtk_ctree_set_text) -> (gtk_ctree_node_set_text)
|
||||
(gtk_ctree_set_pixmap) -> (gtk_ctree_node_set_pixmap)
|
||||
(gtk_ctree_set_pixtext) -> (gtk_ctree_node_set_pixtext)
|
||||
(gtk_ctree_set_shift) -> (gtk_ctree_node_set_shift)
|
||||
(gtk_ctree_get_cell_type) -> (gtk_ctree_node_get_cell_type)
|
||||
(gtk_ctree_get_text) -> (gtk_ctree_node_get_text)
|
||||
(gtk_ctree_get_pixmap) -> (gtk_ctree_node_get_pixmap)
|
||||
(gtk_ctree_get_pixtext) -> (gtk_ctree_node_get_pixtext)
|
||||
(gtk_ctree_set_foreground) -> (gtk_ctree_node_set_foreground)
|
||||
(gtk_ctree_set_background) -> (gtk_ctree_node_set_background)
|
||||
(gtk_ctree_set_row_data) -> (gtk_ctree_node_set_row_data)
|
||||
(gtk_ctree_set_row_data_full) -> (gtk_ctree_node_set_row_data_full)
|
||||
(gtk_ctree_get_row_data) -> (gtk_ctree_node_get_row_data)
|
||||
(gtk_ctree_moveto) -> (gtk_ctree_node_moveto)
|
||||
(gtk_ctree_sort) -> (gtk_ctree_sort_node)
|
||||
(gtk_ctree_is_visibe) -> (gtk_ctree_is_viewable)
|
||||
|
||||
* gtk/gtkctree.c :
|
||||
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
|
||||
removed and replaced by (set_cell_contents)
|
||||
(set_cell_contents): function for class method set_cell_contents
|
||||
(real_insert_row): function for class method insert_row
|
||||
(real_remoce_row): function for class method remove_row
|
||||
(real_sort_list): function for class method sort_list
|
||||
(default_compare): removed. CTree now also compares two GtkCTreeRows
|
||||
instead of two GtkCTreeNodes.
|
||||
(gtk_ctree_unlink): call gtk_ctree_collapse if parent is empty after
|
||||
unlinking the node
|
||||
(real_tree_expand) (real_tree_collapse): fix for refcounting of
|
||||
node pixmaps
|
||||
(set_node_info): call gtk_ctree_node_set_pixtext instead of
|
||||
manipulating the row itself
|
||||
|
||||
* gtk/testgtk.c: use renamed functions of GtkCTree.
|
||||
new sample to show gtk_ctree_export_to_gnode and gtk_ctree_insert_gnode
|
||||
at work.
|
||||
|
||||
Mon Aug 17 15:31:38 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkmain.c: removed gtk_input_add_interp.
|
||||
|
@ -1,3 +1,65 @@
|
||||
Tue Aug 18 00:29:13 1998 Lars Hamann <lars@gtk.org>
|
||||
|
||||
* gtk/gtkclist.h:
|
||||
(struct _GtkCListClass): new class methods:
|
||||
(sort_list) (insert_row) (remove_row) (set_cell_contents)
|
||||
|
||||
* gtk/gtkclist.c :
|
||||
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
|
||||
removed and replaced by (set_cell_contents)
|
||||
(set_cell_contents): function for class method set_cell_contents
|
||||
(real_insert_row): function for class method insert_row
|
||||
(real_remoce_row): function for class method remove_row
|
||||
(real_sort_list): function for class method sort_list
|
||||
(default_compare): fix to avoid problems with cell types != CELL_TEXT
|
||||
|
||||
* gtk/gtkctree.h :
|
||||
(gtk_ctree_export_to_gnode): new function to export a ctree as gnode
|
||||
(gtk_ctree_node_is_visible): new function to return visibility state
|
||||
of a node
|
||||
(gtk_ctree_show_stub): new function to set visibility of root stub
|
||||
|
||||
renamed functions :
|
||||
(gtk_ctree_insert) -> (gtk_ctree_insert_node)
|
||||
(gtk_ctree_remove) -> (gtk_ctree_remove_node)
|
||||
(gtk_ctree_find_glist_ptr) -> (gtk_ctree_find_node_ptr)
|
||||
(gtk_ctree_set_text) -> (gtk_ctree_node_set_text)
|
||||
(gtk_ctree_set_pixmap) -> (gtk_ctree_node_set_pixmap)
|
||||
(gtk_ctree_set_pixtext) -> (gtk_ctree_node_set_pixtext)
|
||||
(gtk_ctree_set_shift) -> (gtk_ctree_node_set_shift)
|
||||
(gtk_ctree_get_cell_type) -> (gtk_ctree_node_get_cell_type)
|
||||
(gtk_ctree_get_text) -> (gtk_ctree_node_get_text)
|
||||
(gtk_ctree_get_pixmap) -> (gtk_ctree_node_get_pixmap)
|
||||
(gtk_ctree_get_pixtext) -> (gtk_ctree_node_get_pixtext)
|
||||
(gtk_ctree_set_foreground) -> (gtk_ctree_node_set_foreground)
|
||||
(gtk_ctree_set_background) -> (gtk_ctree_node_set_background)
|
||||
(gtk_ctree_set_row_data) -> (gtk_ctree_node_set_row_data)
|
||||
(gtk_ctree_set_row_data_full) -> (gtk_ctree_node_set_row_data_full)
|
||||
(gtk_ctree_get_row_data) -> (gtk_ctree_node_get_row_data)
|
||||
(gtk_ctree_moveto) -> (gtk_ctree_node_moveto)
|
||||
(gtk_ctree_sort) -> (gtk_ctree_sort_node)
|
||||
(gtk_ctree_is_visibe) -> (gtk_ctree_is_viewable)
|
||||
|
||||
* gtk/gtkctree.c :
|
||||
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
|
||||
removed and replaced by (set_cell_contents)
|
||||
(set_cell_contents): function for class method set_cell_contents
|
||||
(real_insert_row): function for class method insert_row
|
||||
(real_remoce_row): function for class method remove_row
|
||||
(real_sort_list): function for class method sort_list
|
||||
(default_compare): removed. CTree now also compares two GtkCTreeRows
|
||||
instead of two GtkCTreeNodes.
|
||||
(gtk_ctree_unlink): call gtk_ctree_collapse if parent is empty after
|
||||
unlinking the node
|
||||
(real_tree_expand) (real_tree_collapse): fix for refcounting of
|
||||
node pixmaps
|
||||
(set_node_info): call gtk_ctree_node_set_pixtext instead of
|
||||
manipulating the row itself
|
||||
|
||||
* gtk/testgtk.c: use renamed functions of GtkCTree.
|
||||
new sample to show gtk_ctree_export_to_gnode and gtk_ctree_insert_gnode
|
||||
at work.
|
||||
|
||||
Mon Aug 17 15:31:38 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkmain.c: removed gtk_input_add_interp.
|
||||
|
224
gtk/gtkclist.c
224
gtk/gtkclist.c
@ -293,25 +293,19 @@ static GtkCListRow *row_new (GtkCList * clist);
|
||||
|
||||
static void row_delete (GtkCList * clist,
|
||||
GtkCListRow * clist_row);
|
||||
static void cell_empty (GtkCList * clist,
|
||||
GtkCListRow * clist_row,
|
||||
gint column);
|
||||
static void cell_set_text (GtkCList * clist,
|
||||
GtkCListRow * clist_row,
|
||||
gint column,
|
||||
gchar * text);
|
||||
static void cell_set_pixmap (GtkCList * clist,
|
||||
GtkCListRow * clist_row,
|
||||
gint column,
|
||||
GdkPixmap * pixmap,
|
||||
GdkBitmap * mask);
|
||||
static void cell_set_pixtext (GtkCList * clist,
|
||||
GtkCListRow * clist_row,
|
||||
gint column,
|
||||
gchar * text,
|
||||
guint8 spacing,
|
||||
GdkPixmap * pixmap,
|
||||
GdkBitmap * mask);
|
||||
static void set_cell_contents (GtkCList * clist,
|
||||
GtkCListRow * clist_row,
|
||||
gint column,
|
||||
GtkCellType type,
|
||||
gchar * text,
|
||||
guint8 spacing,
|
||||
GdkPixmap * pixmap,
|
||||
GdkBitmap * mask);
|
||||
static gint real_insert_row (GtkCList * clist,
|
||||
gint row,
|
||||
gchar * text[]);
|
||||
static void real_remove_row (GtkCList * clist,
|
||||
gint row);
|
||||
|
||||
/* Focus handling */
|
||||
static void gtk_clist_draw_focus (GtkWidget *widget);
|
||||
@ -360,6 +354,7 @@ static GList * gtk_clist_merge (GtkCList *clist,
|
||||
static GList * gtk_clist_mergesort (GtkCList *clist,
|
||||
GList *list,
|
||||
gint num);
|
||||
static void real_sort_list (GtkCList *clist);
|
||||
|
||||
/* Fill in data after widget is realized and has style */
|
||||
|
||||
@ -546,7 +541,10 @@ gtk_clist_class_init (GtkCListClass * klass)
|
||||
klass->selection_find = selection_find;
|
||||
klass->click_column = NULL;
|
||||
klass->draw_row = draw_row;
|
||||
klass->insert_row = real_insert_row;
|
||||
klass->remove_row = real_remove_row;
|
||||
klass->clear = real_clear;
|
||||
klass->sort_list = real_sort_list;
|
||||
klass->select_all = real_select_all;
|
||||
klass->unselect_all = real_unselect_all;
|
||||
klass->fake_unselect_all = fake_unselect_all;
|
||||
@ -558,6 +556,7 @@ gtk_clist_class_init (GtkCListClass * klass)
|
||||
klass->start_selection = start_selection;
|
||||
klass->end_selection = end_selection;
|
||||
klass->abort_column_resize = abort_column_resize;
|
||||
klass->set_cell_contents = set_cell_contents;
|
||||
|
||||
klass->scrollbar_spacing = 5;
|
||||
|
||||
@ -1366,10 +1365,8 @@ gtk_clist_set_text (GtkCList * clist,
|
||||
clist_row = (g_list_nth (clist->row_list, row))->data;
|
||||
|
||||
/* if text is null, then the cell is empty */
|
||||
if (text)
|
||||
cell_set_text (clist, clist_row, column, text);
|
||||
else
|
||||
cell_empty (clist, clist_row, column);
|
||||
GTK_CLIST_CLASS_FW (clist)->set_cell_contents
|
||||
(clist, clist_row, column, GTK_CELL_TEXT, text, 0, NULL, NULL);
|
||||
|
||||
/* redraw the list if it's not frozen */
|
||||
if (!GTK_CLIST_FROZEN (clist))
|
||||
@ -1429,7 +1426,8 @@ gtk_clist_set_pixmap (GtkCList * clist,
|
||||
|
||||
if (mask) gdk_pixmap_ref (mask);
|
||||
|
||||
cell_set_pixmap (clist, clist_row, column, pixmap, mask);
|
||||
GTK_CLIST_CLASS_FW (clist)->set_cell_contents
|
||||
(clist, clist_row, column, GTK_CELL_PIXMAP, NULL, 0, pixmap, mask);
|
||||
|
||||
/* redraw the list if it's not frozen */
|
||||
if (!GTK_CLIST_FROZEN (clist))
|
||||
@ -1494,7 +1492,8 @@ gtk_clist_set_pixtext (GtkCList * clist,
|
||||
|
||||
gdk_pixmap_ref (pixmap);
|
||||
if (mask) gdk_pixmap_ref (mask);
|
||||
cell_set_pixtext (clist, clist_row, column, text, spacing, pixmap, mask);
|
||||
GTK_CLIST_CLASS_FW (clist)->set_cell_contents
|
||||
(clist, clist_row, column, GTK_CELL_PIXTEXT, text, spacing, pixmap, mask);
|
||||
|
||||
/* redraw the list if it's not frozen */
|
||||
if (!GTK_CLIST_FROZEN (clist))
|
||||
@ -1632,13 +1631,21 @@ gtk_clist_append (GtkCList * clist,
|
||||
g_return_val_if_fail (GTK_IS_CLIST (clist), -1);
|
||||
g_return_val_if_fail (text != NULL, -1);
|
||||
|
||||
return gtk_clist_insert (clist, clist->rows, text);
|
||||
return GTK_CLIST_CLASS_FW (clist)->insert_row (clist, clist->rows, text);
|
||||
}
|
||||
|
||||
gint
|
||||
gtk_clist_insert (GtkCList * clist,
|
||||
gint row,
|
||||
gchar * text[])
|
||||
{
|
||||
return GTK_CLIST_CLASS_FW (clist)->insert_row (clist, row, text);
|
||||
}
|
||||
|
||||
static gint
|
||||
real_insert_row (GtkCList * clist,
|
||||
gint row,
|
||||
gchar * text[])
|
||||
{
|
||||
gint i;
|
||||
GtkCListRow *clist_row;
|
||||
@ -1657,7 +1664,8 @@ gtk_clist_insert (GtkCList * clist,
|
||||
/* set the text in the row's columns */
|
||||
for (i = 0; i < clist->columns; i++)
|
||||
if (text[i])
|
||||
cell_set_text (clist, clist_row, i, text[i]);
|
||||
GTK_CLIST_CLASS_FW (clist)->set_cell_contents
|
||||
(clist, clist_row, i, GTK_CELL_TEXT, text[i], 0, NULL ,NULL);
|
||||
|
||||
if (!clist->rows)
|
||||
{
|
||||
@ -1725,6 +1733,13 @@ gtk_clist_insert (GtkCList * clist,
|
||||
void
|
||||
gtk_clist_remove (GtkCList * clist,
|
||||
gint row)
|
||||
{
|
||||
GTK_CLIST_CLASS_FW (clist)->remove_row (clist, row);
|
||||
}
|
||||
|
||||
static void
|
||||
real_remove_row (GtkCList * clist,
|
||||
gint row)
|
||||
{
|
||||
gint was_visible, was_selected;
|
||||
GList *list;
|
||||
@ -1966,12 +1981,6 @@ gtk_clist_set_row_data_full (GtkCList * clist,
|
||||
clist_row = (g_list_nth (clist->row_list, row))->data;
|
||||
clist_row->data = data;
|
||||
clist_row->destroy = destroy;
|
||||
|
||||
/* re-send the selected signal if data is changed/added
|
||||
* so the application can respond to the new data --
|
||||
* this could be questionable behavior */
|
||||
if (clist_row->state == GTK_STATE_SELECTED)
|
||||
select_row (clist, row, -1, NULL);
|
||||
}
|
||||
|
||||
gpointer
|
||||
@ -4631,9 +4640,7 @@ hadjustment_value_changed (GtkAdjustment * adjustment,
|
||||
* columns_delete
|
||||
* row_new
|
||||
* row_delete
|
||||
* cell_empty
|
||||
* cell_set_text
|
||||
* cell_set_pixmap
|
||||
* set_cell_contents
|
||||
*/
|
||||
static GtkCListColumn *
|
||||
columns_new (GtkCList * clist)
|
||||
@ -4715,7 +4722,8 @@ row_delete (GtkCList * clist,
|
||||
gint i;
|
||||
|
||||
for (i = 0; i < clist->columns; i++)
|
||||
cell_empty (clist, clist_row, i);
|
||||
GTK_CLIST_CLASS_FW (clist)->set_cell_contents
|
||||
(clist, clist_row, i, GTK_CELL_EMPTY, NULL, 0, NULL, NULL);
|
||||
|
||||
if (clist_row->destroy)
|
||||
clist_row->destroy (clist_row->data);
|
||||
@ -4725,10 +4733,17 @@ row_delete (GtkCList * clist,
|
||||
}
|
||||
|
||||
static void
|
||||
cell_empty (GtkCList * clist,
|
||||
GtkCListRow * clist_row,
|
||||
gint column)
|
||||
set_cell_contents (GtkCList * clist,
|
||||
GtkCListRow * clist_row,
|
||||
gint column,
|
||||
GtkCellType type,
|
||||
gchar * text,
|
||||
guint8 spacing,
|
||||
GdkPixmap * pixmap,
|
||||
GdkBitmap * mask)
|
||||
{
|
||||
g_return_if_fail (clist_row != NULL);
|
||||
|
||||
switch (clist_row->cell[column].type)
|
||||
{
|
||||
case GTK_CELL_EMPTY:
|
||||
@ -4741,14 +4756,14 @@ cell_empty (GtkCList * clist,
|
||||
case GTK_CELL_PIXMAP:
|
||||
gdk_pixmap_unref (GTK_CELL_PIXMAP (clist_row->cell[column])->pixmap);
|
||||
if (GTK_CELL_PIXMAP (clist_row->cell[column])->mask)
|
||||
gdk_bitmap_unref (GTK_CELL_PIXMAP (clist_row->cell[column])->mask);
|
||||
gdk_bitmap_unref (GTK_CELL_PIXMAP (clist_row->cell[column])->mask);
|
||||
break;
|
||||
|
||||
case GTK_CELL_PIXTEXT:
|
||||
g_free (GTK_CELL_PIXTEXT (clist_row->cell[column])->text);
|
||||
gdk_pixmap_unref (GTK_CELL_PIXTEXT (clist_row->cell[column])->pixmap);
|
||||
if (GTK_CELL_PIXTEXT (clist_row->cell[column])->mask)
|
||||
gdk_bitmap_unref (GTK_CELL_PIXTEXT (clist_row->cell[column])->mask);
|
||||
gdk_bitmap_unref (GTK_CELL_PIXTEXT (clist_row->cell[column])->mask);
|
||||
break;
|
||||
|
||||
case GTK_CELL_WIDGET:
|
||||
@ -4760,59 +4775,40 @@ cell_empty (GtkCList * clist,
|
||||
}
|
||||
|
||||
clist_row->cell[column].type = GTK_CELL_EMPTY;
|
||||
}
|
||||
|
||||
static void
|
||||
cell_set_text (GtkCList * clist,
|
||||
GtkCListRow * clist_row,
|
||||
gint column,
|
||||
gchar * text)
|
||||
{
|
||||
cell_empty (clist, clist_row, column);
|
||||
|
||||
if (text)
|
||||
switch (type)
|
||||
{
|
||||
clist_row->cell[column].type = GTK_CELL_TEXT;
|
||||
GTK_CELL_TEXT (clist_row->cell[column])->text = g_strdup (text);
|
||||
}
|
||||
}
|
||||
case GTK_CELL_TEXT:
|
||||
if (text)
|
||||
{
|
||||
clist_row->cell[column].type = GTK_CELL_TEXT;
|
||||
GTK_CELL_TEXT (clist_row->cell[column])->text = g_strdup (text);
|
||||
}
|
||||
break;
|
||||
|
||||
static void
|
||||
cell_set_pixmap (GtkCList * clist,
|
||||
GtkCListRow * clist_row,
|
||||
gint column,
|
||||
GdkPixmap * pixmap,
|
||||
GdkBitmap * mask)
|
||||
{
|
||||
cell_empty (clist, clist_row, column);
|
||||
case GTK_CELL_PIXMAP:
|
||||
if (pixmap)
|
||||
{
|
||||
clist_row->cell[column].type = GTK_CELL_PIXMAP;
|
||||
GTK_CELL_PIXMAP (clist_row->cell[column])->pixmap = pixmap;
|
||||
/* We set the mask even if it is NULL */
|
||||
GTK_CELL_PIXMAP (clist_row->cell[column])->mask = mask;
|
||||
}
|
||||
break;
|
||||
|
||||
if (pixmap)
|
||||
{
|
||||
clist_row->cell[column].type = GTK_CELL_PIXMAP;
|
||||
GTK_CELL_PIXMAP (clist_row->cell[column])->pixmap = pixmap;
|
||||
/* We set the mask even if it is NULL */
|
||||
GTK_CELL_PIXMAP (clist_row->cell[column])->mask = mask;
|
||||
}
|
||||
}
|
||||
case GTK_CELL_PIXTEXT:
|
||||
if (text && pixmap)
|
||||
{
|
||||
clist_row->cell[column].type = GTK_CELL_PIXTEXT;
|
||||
GTK_CELL_PIXTEXT (clist_row->cell[column])->text = g_strdup (text);
|
||||
GTK_CELL_PIXTEXT (clist_row->cell[column])->spacing = spacing;
|
||||
GTK_CELL_PIXTEXT (clist_row->cell[column])->pixmap = pixmap;
|
||||
GTK_CELL_PIXTEXT (clist_row->cell[column])->mask = mask;
|
||||
}
|
||||
break;
|
||||
|
||||
static void
|
||||
cell_set_pixtext (GtkCList * clist,
|
||||
GtkCListRow * clist_row,
|
||||
gint column,
|
||||
gchar * text,
|
||||
guint8 spacing,
|
||||
GdkPixmap * pixmap,
|
||||
GdkBitmap * mask)
|
||||
{
|
||||
cell_empty (clist, clist_row, column);
|
||||
|
||||
if (text && pixmap)
|
||||
{
|
||||
clist_row->cell[column].type = GTK_CELL_PIXTEXT;
|
||||
GTK_CELL_PIXTEXT (clist_row->cell[column])->text = g_strdup (text);
|
||||
GTK_CELL_PIXTEXT (clist_row->cell[column])->spacing = spacing;
|
||||
GTK_CELL_PIXTEXT (clist_row->cell[column])->pixmap = pixmap;
|
||||
GTK_CELL_PIXTEXT (clist_row->cell[column])->mask = mask;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -6005,14 +6001,42 @@ default_compare (GtkCList *clist,
|
||||
gconstpointer ptr1,
|
||||
gconstpointer ptr2)
|
||||
{
|
||||
char *text1 = NULL;
|
||||
char *text2 = NULL;
|
||||
|
||||
GtkCListRow *row1 = (GtkCListRow *) ptr1;
|
||||
GtkCListRow *row2 = (GtkCListRow *) ptr2;
|
||||
char *text1;
|
||||
char *text2;
|
||||
|
||||
text1 = GTK_CELL_TEXT (row1->cell[clist->sort_column])->text;
|
||||
text2 = GTK_CELL_TEXT (row2->cell[clist->sort_column])->text;
|
||||
|
||||
|
||||
switch (row1->cell[clist->sort_column].type)
|
||||
{
|
||||
case GTK_CELL_TEXT:
|
||||
text1 = GTK_CELL_TEXT (row1->cell[clist->sort_column])->text;
|
||||
break;
|
||||
case GTK_CELL_PIXTEXT:
|
||||
text1 = GTK_CELL_PIXTEXT (row1->cell[clist->sort_column])->text;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (row2->cell[clist->sort_column].type)
|
||||
{
|
||||
case GTK_CELL_TEXT:
|
||||
text2 = GTK_CELL_TEXT (row2->cell[clist->sort_column])->text;
|
||||
break;
|
||||
case GTK_CELL_PIXTEXT:
|
||||
text2 = GTK_CELL_PIXTEXT (row2->cell[clist->sort_column])->text;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (!text2)
|
||||
return (text1 != NULL);
|
||||
|
||||
if (!text1)
|
||||
return -1;
|
||||
|
||||
return strcmp (text1, text2);
|
||||
}
|
||||
|
||||
@ -6151,6 +6175,12 @@ gtk_clist_mergesort (GtkCList *clist,
|
||||
|
||||
void
|
||||
gtk_clist_sort (GtkCList *clist)
|
||||
{
|
||||
GTK_CLIST_CLASS_FW (clist)->sort_list (clist);
|
||||
}
|
||||
|
||||
static void
|
||||
real_sort_list (GtkCList *clist)
|
||||
{
|
||||
GList *list;
|
||||
GList *work;
|
||||
@ -6163,7 +6193,7 @@ gtk_clist_sort (GtkCList *clist)
|
||||
if (clist->rows <= 1)
|
||||
return;
|
||||
|
||||
if (GTK_WIDGET_HAS_GRAB (GTK_WIDGET (clist)))
|
||||
if (gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (clist))
|
||||
return;
|
||||
|
||||
if (clist->anchor != -1 && clist->selection_mode == GTK_SELECTION_EXTENDED)
|
||||
|
@ -232,6 +232,20 @@ struct _GtkCListClass
|
||||
void (*clear) (GtkCList * clist);
|
||||
void (*fake_unselect_all) (GtkCList * clist,
|
||||
gint row);
|
||||
void (*sort_list) (GtkCList * clist);
|
||||
gint (*insert_row) (GtkCList * clist,
|
||||
gint row,
|
||||
gchar * text[]);
|
||||
void (*remove_row) (GtkCList * clist,
|
||||
gint row);
|
||||
void (*set_cell_contents) (GtkCList * clist,
|
||||
GtkCListRow * clist_row,
|
||||
gint column,
|
||||
GtkCellType type,
|
||||
gchar * text,
|
||||
guint8 spacing,
|
||||
GdkPixmap * pixmap,
|
||||
GdkBitmap * mask);
|
||||
|
||||
gint scrollbar_spacing;
|
||||
};
|
||||
|
858
gtk/gtkctree.c
858
gtk/gtkctree.c
File diff suppressed because it is too large
Load Diff
398
gtk/gtkctree.h
398
gtk/gtkctree.h
@ -42,9 +42,6 @@ extern "C"
|
||||
#define GTK_CTREE_NODE(_node_) ((GtkCTreeNode *)((_node_)))
|
||||
#define GTK_CTREE_NODE_NEXT(_nnode_) ((GtkCTreeNode *)(((GList *)(_nnode_))->next))
|
||||
#define GTK_CTREE_NODE_PREV(_pnode_) ((GtkCTreeNode *)(((GList *)(_pnode_))->prev))
|
||||
#define GTK_CTREE_TREE(_ctree_, _glist_) \
|
||||
((GtkCellTree *) &(((GtkCTreeRow *)((_glist_)->data))->cell[(_ctree_)->tree_col]))
|
||||
|
||||
#define GTK_CTREE_FUNC(_func_) ((GtkCTreeFunc)(_func_))
|
||||
|
||||
typedef enum
|
||||
@ -114,6 +111,7 @@ struct _GtkCTree
|
||||
guint in_drag : 1;
|
||||
guint drag_rect : 1;
|
||||
guint line_style : 2;
|
||||
guint show_stub : 1;
|
||||
|
||||
GtkCTreeCompareDragFunc drag_compare;
|
||||
};
|
||||
@ -168,228 +166,238 @@ struct _GtkCTreeNode {
|
||||
* Creation, insertion, deletion *
|
||||
***********************************************************/
|
||||
|
||||
GtkType gtk_ctree_get_type (void);
|
||||
void gtk_ctree_construct (GtkCTree *ctree,
|
||||
gint columns,
|
||||
gint tree_column,
|
||||
gchar *titles[]);
|
||||
GtkWidget * gtk_ctree_new_with_titles (gint columns,
|
||||
gint tree_column,
|
||||
gchar *titles[]);
|
||||
GtkWidget * gtk_ctree_new (gint columns,
|
||||
gint tree_column);
|
||||
GtkCTreeNode * gtk_ctree_insert (GtkCTree *ctree,
|
||||
GtkCTreeNode *parent,
|
||||
GtkCTreeNode *sibling,
|
||||
gchar *text[],
|
||||
guint8 spacing,
|
||||
GdkPixmap *pixmap_closed,
|
||||
GdkBitmap *mask_closed,
|
||||
GdkPixmap *pixmap_opened,
|
||||
GdkBitmap *mask_opened,
|
||||
gboolean is_leaf,
|
||||
gboolean expanded);
|
||||
GtkCTreeNode * gtk_ctree_insert_gnode (GtkCTree *ctree,
|
||||
GtkCTreeNode *parent,
|
||||
GtkCTreeNode *sibling,
|
||||
GNode *gnode,
|
||||
GtkCTreeGNodeFunc func,
|
||||
gpointer data);
|
||||
void gtk_ctree_remove (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
GtkType gtk_ctree_get_type (void);
|
||||
void gtk_ctree_construct (GtkCTree *ctree,
|
||||
gint columns,
|
||||
gint tree_column,
|
||||
gchar *titles[]);
|
||||
GtkWidget * gtk_ctree_new_with_titles (gint columns,
|
||||
gint tree_column,
|
||||
gchar *titles[]);
|
||||
GtkWidget * gtk_ctree_new (gint columns,
|
||||
gint tree_column);
|
||||
GtkCTreeNode * gtk_ctree_insert_node (GtkCTree *ctree,
|
||||
GtkCTreeNode *parent,
|
||||
GtkCTreeNode *sibling,
|
||||
gchar *text[],
|
||||
guint8 spacing,
|
||||
GdkPixmap *pixmap_closed,
|
||||
GdkBitmap *mask_closed,
|
||||
GdkPixmap *pixmap_opened,
|
||||
GdkBitmap *mask_opened,
|
||||
gboolean is_leaf,
|
||||
gboolean expanded);
|
||||
void gtk_ctree_remove_node (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
GtkCTreeNode * gtk_ctree_insert_gnode (GtkCTree *ctree,
|
||||
GtkCTreeNode *parent,
|
||||
GtkCTreeNode *sibling,
|
||||
GNode *gnode,
|
||||
GtkCTreeGNodeFunc func,
|
||||
gpointer data);
|
||||
GNode * gtk_ctree_export_to_gnode (GtkCTree *ctree,
|
||||
GNode *parent,
|
||||
GNode *sibling,
|
||||
GtkCTreeNode *node,
|
||||
GtkCTreeGNodeFunc func,
|
||||
gpointer data);
|
||||
|
||||
/***********************************************************
|
||||
* Generic recursive functions, querying / finding tree *
|
||||
* information *
|
||||
***********************************************************/
|
||||
|
||||
void gtk_ctree_post_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
GtkCTreeFunc func,
|
||||
gpointer data);
|
||||
void gtk_ctree_post_recursive_to_depth (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint depth,
|
||||
GtkCTreeFunc func,
|
||||
gpointer data);
|
||||
void gtk_ctree_pre_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
GtkCTreeFunc func,
|
||||
gpointer data);
|
||||
void gtk_ctree_pre_recursive_to_depth (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint depth,
|
||||
GtkCTreeFunc func,
|
||||
gpointer data);
|
||||
gboolean gtk_ctree_is_visible (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
GtkCTreeNode * gtk_ctree_last (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
GtkCTreeNode * gtk_ctree_find_glist_ptr (GtkCTree *ctree,
|
||||
GtkCTreeRow *ctree_row);
|
||||
gboolean gtk_ctree_find (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
GtkCTreeNode *child);
|
||||
gboolean gtk_ctree_is_ancestor (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
GtkCTreeNode *child);
|
||||
GtkCTreeNode * gtk_ctree_find_by_row_data (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gpointer data);
|
||||
void gtk_ctree_post_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
GtkCTreeFunc func,
|
||||
gpointer data);
|
||||
void gtk_ctree_post_recursive_to_depth (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint depth,
|
||||
GtkCTreeFunc func,
|
||||
gpointer data);
|
||||
void gtk_ctree_pre_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
GtkCTreeFunc func,
|
||||
gpointer data);
|
||||
void gtk_ctree_pre_recursive_to_depth (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint depth,
|
||||
GtkCTreeFunc func,
|
||||
gpointer data);
|
||||
gboolean gtk_ctree_is_viewable (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
GtkCTreeNode * gtk_ctree_last (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
GtkCTreeNode * gtk_ctree_find_node_ptr (GtkCTree *ctree,
|
||||
GtkCTreeRow *ctree_row);
|
||||
gboolean gtk_ctree_find (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
GtkCTreeNode *child);
|
||||
gboolean gtk_ctree_is_ancestor (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
GtkCTreeNode *child);
|
||||
GtkCTreeNode * gtk_ctree_find_by_row_data (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gpointer data);
|
||||
GtkCTreeNode * gtk_ctree_find_by_row_data_custom (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gpointer data,
|
||||
GCompareFunc func);
|
||||
gboolean gtk_ctree_is_hot_spot (GtkCTree *ctree,
|
||||
gint x,
|
||||
gint y);
|
||||
gboolean gtk_ctree_is_hot_spot (GtkCTree *ctree,
|
||||
gint x,
|
||||
gint y);
|
||||
|
||||
/***********************************************************
|
||||
* Tree signals : move, expand, collapse, (un)select *
|
||||
***********************************************************/
|
||||
|
||||
void gtk_ctree_move (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
GtkCTreeNode *new_parent,
|
||||
GtkCTreeNode *new_sibling);
|
||||
void gtk_ctree_expand (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_expand_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_expand_to_depth (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint depth);
|
||||
void gtk_ctree_collapse (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_collapse_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_collapse_to_depth (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint depth);
|
||||
void gtk_ctree_toggle_expansion (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_toggle_expansion_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_select (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_select_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_unselect (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_unselect_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_real_select_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint state);
|
||||
void gtk_ctree_move (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
GtkCTreeNode *new_parent,
|
||||
GtkCTreeNode *new_sibling);
|
||||
void gtk_ctree_expand (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_expand_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_expand_to_depth (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint depth);
|
||||
void gtk_ctree_collapse (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_collapse_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_collapse_to_depth (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint depth);
|
||||
void gtk_ctree_toggle_expansion (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_toggle_expansion_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_select (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_select_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_unselect (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_unselect_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_real_select_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint state);
|
||||
|
||||
/***********************************************************
|
||||
* Analogons of GtkCList functions *
|
||||
***********************************************************/
|
||||
|
||||
void gtk_ctree_set_text (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
gchar *text);
|
||||
void gtk_ctree_set_pixmap (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
GdkPixmap *pixmap,
|
||||
GdkBitmap *mask);
|
||||
void gtk_ctree_set_pixtext (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
gchar *text,
|
||||
guint8 spacing,
|
||||
GdkPixmap *pixmap,
|
||||
GdkBitmap *mask);
|
||||
void gtk_ctree_set_node_info (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gchar *text,
|
||||
guint8 spacing,
|
||||
GdkPixmap *pixmap_closed,
|
||||
GdkBitmap *mask_closed,
|
||||
GdkPixmap *pixmap_opened,
|
||||
GdkBitmap *mask_opened,
|
||||
gboolean is_leaf,
|
||||
gboolean expanded);
|
||||
void gtk_ctree_set_shift (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
gint vertical,
|
||||
gint horizontal);
|
||||
GtkCellType gtk_ctree_get_cell_type (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column);
|
||||
gint gtk_ctree_get_text (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
gchar **text);
|
||||
gint gtk_ctree_get_pixmap (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
GdkPixmap **pixmap,
|
||||
GdkBitmap **mask);
|
||||
gint gtk_ctree_get_pixtext (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
gchar **text,
|
||||
guint8 *spacing,
|
||||
GdkPixmap **pixmap,
|
||||
GdkBitmap **mask);
|
||||
gint gtk_ctree_get_node_info (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gchar **text,
|
||||
guint8 *spacing,
|
||||
GdkPixmap **pixmap_closed,
|
||||
GdkBitmap **mask_closed,
|
||||
GdkPixmap **pixmap_opened,
|
||||
GdkBitmap **mask_opened,
|
||||
gboolean *is_leaf,
|
||||
gboolean *expanded);
|
||||
void gtk_ctree_set_foreground (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
GdkColor *color);
|
||||
void gtk_ctree_set_background (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
GdkColor *color);
|
||||
void gtk_ctree_set_row_data (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gpointer data);
|
||||
void gtk_ctree_set_row_data_full (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gpointer data,
|
||||
GtkDestroyNotify destroy);
|
||||
gpointer gtk_ctree_get_row_data (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_moveto (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
gfloat row_align,
|
||||
gfloat col_align);
|
||||
void gtk_ctree_node_set_text (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
gchar *text);
|
||||
void gtk_ctree_node_set_pixmap (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
GdkPixmap *pixmap,
|
||||
GdkBitmap *mask);
|
||||
void gtk_ctree_node_set_pixtext (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
gchar *text,
|
||||
guint8 spacing,
|
||||
GdkPixmap *pixmap,
|
||||
GdkBitmap *mask);
|
||||
void gtk_ctree_set_node_info (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gchar *text,
|
||||
guint8 spacing,
|
||||
GdkPixmap *pixmap_closed,
|
||||
GdkBitmap *mask_closed,
|
||||
GdkPixmap *pixmap_opened,
|
||||
GdkBitmap *mask_opened,
|
||||
gboolean is_leaf,
|
||||
gboolean expanded);
|
||||
void gtk_ctree_node_set_shift (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
gint vertical,
|
||||
gint horizontal);
|
||||
GtkCellType gtk_ctree_node_get_cell_type (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column);
|
||||
gint gtk_ctree_node_get_text (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
gchar **text);
|
||||
gint gtk_ctree_node_get_pixmap (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
GdkPixmap **pixmap,
|
||||
GdkBitmap **mask);
|
||||
gint gtk_ctree_node_get_pixtext (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
gchar **text,
|
||||
guint8 *spacing,
|
||||
GdkPixmap **pixmap,
|
||||
GdkBitmap **mask);
|
||||
gint gtk_ctree_get_node_info (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gchar **text,
|
||||
guint8 *spacing,
|
||||
GdkPixmap **pixmap_closed,
|
||||
GdkBitmap **mask_closed,
|
||||
GdkPixmap **pixmap_opened,
|
||||
GdkBitmap **mask_opened,
|
||||
gboolean *is_leaf,
|
||||
gboolean *expanded);
|
||||
void gtk_ctree_node_set_foreground (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
GdkColor *color);
|
||||
void gtk_ctree_node_set_background (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
GdkColor *color);
|
||||
void gtk_ctree_node_set_row_data (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gpointer data);
|
||||
void gtk_ctree_node_set_row_data_full (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gpointer data,
|
||||
GtkDestroyNotify destroy);
|
||||
gpointer gtk_ctree_node_get_row_data (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_node_moveto (GtkCTree *ctree,
|
||||
GtkCTreeNode *node,
|
||||
gint column,
|
||||
gfloat row_align,
|
||||
gfloat col_align);
|
||||
GtkVisibility gtk_ctree_node_is_visible (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
|
||||
/***********************************************************
|
||||
* GtkCTree specific functions *
|
||||
***********************************************************/
|
||||
|
||||
void gtk_ctree_set_indent (GtkCTree *ctree,
|
||||
gint indent);
|
||||
void gtk_ctree_set_reorderable (GtkCTree *ctree,
|
||||
gboolean reorderable);
|
||||
void gtk_ctree_set_use_drag_icons (GtkCTree *ctree,
|
||||
gboolean use_icons);
|
||||
void gtk_ctree_set_line_style (GtkCTree *ctree,
|
||||
GtkCTreeLineStyle line_style);
|
||||
void gtk_ctree_set_drag_compare_func (GtkCTree *ctree,
|
||||
GtkCTreeCompareDragFunc cmp_func);
|
||||
void gtk_ctree_set_indent (GtkCTree *ctree,
|
||||
gint indent);
|
||||
void gtk_ctree_show_stub (GtkCTree *ctree,
|
||||
gboolean show_stub);
|
||||
void gtk_ctree_set_reorderable (GtkCTree *ctree,
|
||||
gboolean reorderable);
|
||||
void gtk_ctree_set_use_drag_icons (GtkCTree *ctree,
|
||||
gboolean use_icons);
|
||||
void gtk_ctree_set_line_style (GtkCTree *ctree,
|
||||
GtkCTreeLineStyle line_style);
|
||||
void gtk_ctree_set_drag_compare_func (GtkCTree *ctree,
|
||||
GtkCTreeCompareDragFunc cmp_func);
|
||||
|
||||
/***********************************************************
|
||||
* Tree sorting functions *
|
||||
***********************************************************/
|
||||
|
||||
void gtk_ctree_sort (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_sort_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_sort_node (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
void gtk_ctree_sort_recursive (GtkCTree *ctree,
|
||||
GtkCTreeNode *node);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
@ -2254,7 +2254,7 @@ gtk_list_focus (GtkContainer *container,
|
||||
!GTK_WIDGET_HAS_FOCUS (container->focus_child))
|
||||
{
|
||||
if (*GTK_CONTAINER_CLASS (parent_class)->focus)
|
||||
return_val = (*GTK_CONTAINER_CLASS (parent_class)->focus)
|
||||
return_val = GTK_CONTAINER_CLASS (parent_class)->focus
|
||||
(container, direction);
|
||||
}
|
||||
|
||||
|
176
gtk/testgtk.c
176
gtk/testgtk.c
@ -4077,7 +4077,7 @@ void remove_selection (GtkWidget *widget, GtkCTree *ctree)
|
||||
}
|
||||
}
|
||||
|
||||
gtk_ctree_remove (ctree, work);
|
||||
gtk_ctree_remove_node (ctree, work);
|
||||
selection = GTK_CLIST (ctree)->selection;
|
||||
}
|
||||
|
||||
@ -4093,6 +4093,144 @@ void sort_all (GtkWidget *widget, GtkCTree *ctree)
|
||||
gtk_ctree_sort_recursive (ctree, NULL);
|
||||
}
|
||||
|
||||
struct _ExportStruct {
|
||||
gchar *tree;
|
||||
gchar *info;
|
||||
gboolean is_leaf;
|
||||
};
|
||||
|
||||
typedef struct _ExportStruct ExportStruct;
|
||||
|
||||
gboolean
|
||||
gnode2ctree (GtkCTree *ctree,
|
||||
guint depth,
|
||||
GNode *gnode,
|
||||
GtkCTreeNode *cnode,
|
||||
gpointer data)
|
||||
{
|
||||
ExportStruct *es;
|
||||
GdkPixmap *pixmap_closed;
|
||||
GdkBitmap *mask_closed;
|
||||
GdkPixmap *pixmap_opened;
|
||||
GdkBitmap *mask_opened;
|
||||
|
||||
if (!cnode || !gnode || (!(es = gnode->data)))
|
||||
return FALSE;
|
||||
|
||||
if (es->is_leaf)
|
||||
{
|
||||
pixmap_closed = pixmap3;
|
||||
mask_closed = mask3;
|
||||
pixmap_opened = NULL;
|
||||
mask_opened = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
pixmap_closed = pixmap1;
|
||||
mask_closed = mask1;
|
||||
pixmap_opened = pixmap2;
|
||||
mask_opened = mask2;
|
||||
}
|
||||
|
||||
gtk_ctree_set_node_info (ctree, cnode, es->tree, 2, pixmap_closed,
|
||||
mask_closed, pixmap_opened, mask_opened,
|
||||
es->is_leaf, (depth < 3));
|
||||
gtk_ctree_node_set_text (ctree, cnode, 1, es->info);
|
||||
g_free (es);
|
||||
gnode->data = NULL;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
ctree2gnode (GtkCTree *ctree,
|
||||
guint depth,
|
||||
GNode *gnode,
|
||||
GtkCTreeNode *cnode,
|
||||
gpointer data)
|
||||
{
|
||||
ExportStruct *es;
|
||||
|
||||
if (!cnode || !gnode)
|
||||
return FALSE;
|
||||
|
||||
es = g_new (ExportStruct, 1);
|
||||
gnode->data = es;
|
||||
es->is_leaf = GTK_CTREE_ROW (cnode)->is_leaf;
|
||||
es->tree = GTK_CELL_PIXTEXT (GTK_CTREE_ROW (cnode)->row.cell[0])->text;
|
||||
es->info = GTK_CELL_PIXTEXT (GTK_CTREE_ROW (cnode)->row.cell[1])->text;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void export_ctree (GtkWidget *widget, GtkCTree *ctree)
|
||||
{
|
||||
char *title[] = { "Tree" , "Info" };
|
||||
static GtkWidget *export_window = NULL;
|
||||
static GtkCTree *export_ctree;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *button;
|
||||
GtkWidget *sep;
|
||||
GNode *gnode;
|
||||
GtkCTreeNode *node;
|
||||
|
||||
if (!export_window)
|
||||
{
|
||||
export_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (export_window), "destroy",
|
||||
GTK_SIGNAL_FUNC (gtk_widget_destroyed),
|
||||
&export_window);
|
||||
|
||||
gtk_window_set_title (GTK_WINDOW (export_window), "exported ctree");
|
||||
gtk_container_border_width (GTK_CONTAINER (export_window), 5);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (export_window), vbox);
|
||||
|
||||
button = gtk_button_new_with_label ("Close");
|
||||
gtk_box_pack_end (GTK_BOX (vbox), button, FALSE, TRUE, 0);
|
||||
|
||||
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
|
||||
(GtkSignalFunc) gtk_widget_destroy,
|
||||
GTK_OBJECT(export_window));
|
||||
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_box_pack_end (GTK_BOX (vbox), sep, FALSE, TRUE, 10);
|
||||
|
||||
export_ctree = GTK_CTREE (gtk_ctree_new_with_titles (2, 0, title));
|
||||
gtk_ctree_set_line_style (export_ctree, GTK_CTREE_LINES_DOTTED);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (export_ctree),
|
||||
TRUE, TRUE, 0);
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (export_ctree),
|
||||
GTK_SELECTION_EXTENDED);
|
||||
gtk_clist_set_policy (GTK_CLIST (export_ctree), GTK_POLICY_ALWAYS,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_clist_set_column_width (GTK_CLIST (export_ctree), 0, 200);
|
||||
gtk_clist_set_column_width (GTK_CLIST (export_ctree), 1, 200);
|
||||
gtk_widget_set_usize (GTK_WIDGET (export_ctree), 300, 200);
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (export_window))
|
||||
gtk_widget_show_all (export_window);
|
||||
|
||||
gtk_clist_clear (GTK_CLIST (export_ctree));
|
||||
|
||||
node = GTK_CTREE_NODE (g_list_nth (GTK_CLIST (ctree)->row_list,
|
||||
GTK_CLIST (ctree)->focus_row));
|
||||
if (!node)
|
||||
return;
|
||||
|
||||
gnode = gtk_ctree_export_to_gnode (ctree, NULL, NULL, node,
|
||||
ctree2gnode, NULL);
|
||||
if (gnode)
|
||||
{
|
||||
gtk_ctree_insert_gnode (export_ctree, NULL, NULL, gnode,
|
||||
gnode2ctree, NULL);
|
||||
g_node_destroy (gnode);
|
||||
}
|
||||
}
|
||||
|
||||
void change_indent (GtkWidget *widget, GtkCTree *ctree)
|
||||
{
|
||||
gtk_ctree_set_indent (ctree, GTK_ADJUSTMENT (widget)->value);
|
||||
@ -4118,15 +4256,16 @@ void set_background (GtkCTree *ctree, GtkCTreeNode *node, gpointer data)
|
||||
if (GTK_CTREE_ROW (node)->is_leaf)
|
||||
{
|
||||
if (GTK_CTREE_ROW (node)->parent)
|
||||
gtk_ctree_set_background
|
||||
gtk_ctree_node_set_background
|
||||
(ctree, node,
|
||||
GTK_CTREE_ROW (GTK_CTREE_ROW (node)->parent)->row.data);
|
||||
}
|
||||
else
|
||||
gtk_ctree_set_background (ctree, node, GTK_CTREE_ROW (node)->row.data);
|
||||
gtk_ctree_node_set_background (ctree, node,
|
||||
GTK_CTREE_ROW (node)->row.data);
|
||||
}
|
||||
else
|
||||
gtk_ctree_set_background (ctree, node, NULL);
|
||||
gtk_ctree_node_set_background (ctree, node, NULL);
|
||||
}
|
||||
|
||||
void ctree_toggle_line_style (GtkWidget *widget, GtkCTree *ctree)
|
||||
@ -4193,11 +4332,12 @@ void build_recursive (GtkCTree *ctree, gint cur_depth, gint depth,
|
||||
pages++;
|
||||
sprintf (buf1, "Page %02d", (gint) rand() % 100);
|
||||
sprintf (buf2, "Item %d-%d", cur_depth, i);
|
||||
sibling = gtk_ctree_insert (ctree, parent, sibling, text, 5, pixmap3,
|
||||
mask3, NULL, NULL, TRUE, FALSE);
|
||||
sibling = gtk_ctree_insert_node (ctree, parent, sibling, text, 5,
|
||||
pixmap3, mask3, NULL, NULL,
|
||||
TRUE, FALSE);
|
||||
|
||||
if (ctree->line_style == GTK_CTREE_LINES_TABBED)
|
||||
gtk_ctree_set_background (ctree, sibling, col_bg);
|
||||
gtk_ctree_node_set_background (ctree, sibling, col_bg);
|
||||
}
|
||||
|
||||
if (cur_depth == depth)
|
||||
@ -4208,8 +4348,9 @@ void build_recursive (GtkCTree *ctree, gint cur_depth, gint depth,
|
||||
books++;
|
||||
sprintf (buf1, "Book %02d", (gint) rand() % 100);
|
||||
sprintf (buf2, "Item %d-%d", cur_depth, i);
|
||||
sibling = gtk_ctree_insert (ctree, parent, sibling, text, 5, pixmap1,
|
||||
mask1, pixmap2, mask2, FALSE, FALSE);
|
||||
sibling = gtk_ctree_insert_node (ctree, parent, sibling, text, 5,
|
||||
pixmap1, mask1, pixmap2, mask2,
|
||||
FALSE, FALSE);
|
||||
|
||||
col_bg = g_new (GdkColor, 1);
|
||||
|
||||
@ -4233,10 +4374,10 @@ void build_recursive (GtkCTree *ctree, gint cur_depth, gint depth,
|
||||
}
|
||||
|
||||
gdk_color_alloc (gtk_widget_get_colormap (GTK_WIDGET (ctree)), col_bg);
|
||||
gtk_ctree_set_row_data_full (ctree, sibling, col_bg, g_free);
|
||||
gtk_ctree_node_set_row_data_full (ctree, sibling, col_bg, g_free);
|
||||
|
||||
if (ctree->line_style == GTK_CTREE_LINES_TABBED)
|
||||
gtk_ctree_set_background (ctree, sibling, col_bg);
|
||||
gtk_ctree_node_set_background (ctree, sibling, col_bg);
|
||||
|
||||
build_recursive (ctree, cur_depth + 1, depth, num_books, num_pages,
|
||||
sibling);
|
||||
@ -4272,17 +4413,17 @@ void rebuild_tree (GtkWidget *widget, GtkCTree *ctree)
|
||||
books = 1;
|
||||
pages = 0;
|
||||
|
||||
parent = gtk_ctree_insert (ctree, NULL, NULL, text, 5, pixmap1,
|
||||
mask1, pixmap2, mask2, FALSE, TRUE);
|
||||
parent = gtk_ctree_insert_node (ctree, NULL, NULL, text, 5, pixmap1,
|
||||
mask1, pixmap2, mask2, FALSE, TRUE);
|
||||
|
||||
col_bg = g_new (GdkColor, 1);
|
||||
col_bg->red = 0;
|
||||
col_bg->green = 45000;
|
||||
col_bg->blue = 55000;
|
||||
gdk_color_alloc (gtk_widget_get_colormap (GTK_WIDGET (ctree)), col_bg);
|
||||
gtk_ctree_set_row_data_full (ctree, parent, col_bg, g_free);
|
||||
gtk_ctree_node_set_row_data_full (ctree, parent, col_bg, g_free);
|
||||
if (ctree->line_style == GTK_CTREE_LINES_TABBED)
|
||||
gtk_ctree_set_background (ctree, parent, col_bg);
|
||||
gtk_ctree_node_set_background (ctree, parent, col_bg);
|
||||
|
||||
build_recursive (ctree, 1, d, b, p, parent);
|
||||
gtk_clist_thaw (GTK_CLIST (ctree));
|
||||
@ -4462,6 +4603,11 @@ void create_ctree (void)
|
||||
GTK_SIGNAL_FUNC (sort_all), ctree);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
|
||||
|
||||
button = gtk_button_new_with_label ("Export tree");
|
||||
gtk_signal_connect (GTK_OBJECT (button), "clicked",
|
||||
GTK_SIGNAL_FUNC (export_ctree), ctree);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 5);
|
||||
gtk_container_border_width (GTK_CONTAINER (hbox), 5);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
|
||||
|
176
tests/testgtk.c
176
tests/testgtk.c
@ -4077,7 +4077,7 @@ void remove_selection (GtkWidget *widget, GtkCTree *ctree)
|
||||
}
|
||||
}
|
||||
|
||||
gtk_ctree_remove (ctree, work);
|
||||
gtk_ctree_remove_node (ctree, work);
|
||||
selection = GTK_CLIST (ctree)->selection;
|
||||
}
|
||||
|
||||
@ -4093,6 +4093,144 @@ void sort_all (GtkWidget *widget, GtkCTree *ctree)
|
||||
gtk_ctree_sort_recursive (ctree, NULL);
|
||||
}
|
||||
|
||||
struct _ExportStruct {
|
||||
gchar *tree;
|
||||
gchar *info;
|
||||
gboolean is_leaf;
|
||||
};
|
||||
|
||||
typedef struct _ExportStruct ExportStruct;
|
||||
|
||||
gboolean
|
||||
gnode2ctree (GtkCTree *ctree,
|
||||
guint depth,
|
||||
GNode *gnode,
|
||||
GtkCTreeNode *cnode,
|
||||
gpointer data)
|
||||
{
|
||||
ExportStruct *es;
|
||||
GdkPixmap *pixmap_closed;
|
||||
GdkBitmap *mask_closed;
|
||||
GdkPixmap *pixmap_opened;
|
||||
GdkBitmap *mask_opened;
|
||||
|
||||
if (!cnode || !gnode || (!(es = gnode->data)))
|
||||
return FALSE;
|
||||
|
||||
if (es->is_leaf)
|
||||
{
|
||||
pixmap_closed = pixmap3;
|
||||
mask_closed = mask3;
|
||||
pixmap_opened = NULL;
|
||||
mask_opened = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
pixmap_closed = pixmap1;
|
||||
mask_closed = mask1;
|
||||
pixmap_opened = pixmap2;
|
||||
mask_opened = mask2;
|
||||
}
|
||||
|
||||
gtk_ctree_set_node_info (ctree, cnode, es->tree, 2, pixmap_closed,
|
||||
mask_closed, pixmap_opened, mask_opened,
|
||||
es->is_leaf, (depth < 3));
|
||||
gtk_ctree_node_set_text (ctree, cnode, 1, es->info);
|
||||
g_free (es);
|
||||
gnode->data = NULL;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
ctree2gnode (GtkCTree *ctree,
|
||||
guint depth,
|
||||
GNode *gnode,
|
||||
GtkCTreeNode *cnode,
|
||||
gpointer data)
|
||||
{
|
||||
ExportStruct *es;
|
||||
|
||||
if (!cnode || !gnode)
|
||||
return FALSE;
|
||||
|
||||
es = g_new (ExportStruct, 1);
|
||||
gnode->data = es;
|
||||
es->is_leaf = GTK_CTREE_ROW (cnode)->is_leaf;
|
||||
es->tree = GTK_CELL_PIXTEXT (GTK_CTREE_ROW (cnode)->row.cell[0])->text;
|
||||
es->info = GTK_CELL_PIXTEXT (GTK_CTREE_ROW (cnode)->row.cell[1])->text;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void export_ctree (GtkWidget *widget, GtkCTree *ctree)
|
||||
{
|
||||
char *title[] = { "Tree" , "Info" };
|
||||
static GtkWidget *export_window = NULL;
|
||||
static GtkCTree *export_ctree;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *button;
|
||||
GtkWidget *sep;
|
||||
GNode *gnode;
|
||||
GtkCTreeNode *node;
|
||||
|
||||
if (!export_window)
|
||||
{
|
||||
export_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (export_window), "destroy",
|
||||
GTK_SIGNAL_FUNC (gtk_widget_destroyed),
|
||||
&export_window);
|
||||
|
||||
gtk_window_set_title (GTK_WINDOW (export_window), "exported ctree");
|
||||
gtk_container_border_width (GTK_CONTAINER (export_window), 5);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (export_window), vbox);
|
||||
|
||||
button = gtk_button_new_with_label ("Close");
|
||||
gtk_box_pack_end (GTK_BOX (vbox), button, FALSE, TRUE, 0);
|
||||
|
||||
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
|
||||
(GtkSignalFunc) gtk_widget_destroy,
|
||||
GTK_OBJECT(export_window));
|
||||
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_box_pack_end (GTK_BOX (vbox), sep, FALSE, TRUE, 10);
|
||||
|
||||
export_ctree = GTK_CTREE (gtk_ctree_new_with_titles (2, 0, title));
|
||||
gtk_ctree_set_line_style (export_ctree, GTK_CTREE_LINES_DOTTED);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (export_ctree),
|
||||
TRUE, TRUE, 0);
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (export_ctree),
|
||||
GTK_SELECTION_EXTENDED);
|
||||
gtk_clist_set_policy (GTK_CLIST (export_ctree), GTK_POLICY_ALWAYS,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_clist_set_column_width (GTK_CLIST (export_ctree), 0, 200);
|
||||
gtk_clist_set_column_width (GTK_CLIST (export_ctree), 1, 200);
|
||||
gtk_widget_set_usize (GTK_WIDGET (export_ctree), 300, 200);
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (export_window))
|
||||
gtk_widget_show_all (export_window);
|
||||
|
||||
gtk_clist_clear (GTK_CLIST (export_ctree));
|
||||
|
||||
node = GTK_CTREE_NODE (g_list_nth (GTK_CLIST (ctree)->row_list,
|
||||
GTK_CLIST (ctree)->focus_row));
|
||||
if (!node)
|
||||
return;
|
||||
|
||||
gnode = gtk_ctree_export_to_gnode (ctree, NULL, NULL, node,
|
||||
ctree2gnode, NULL);
|
||||
if (gnode)
|
||||
{
|
||||
gtk_ctree_insert_gnode (export_ctree, NULL, NULL, gnode,
|
||||
gnode2ctree, NULL);
|
||||
g_node_destroy (gnode);
|
||||
}
|
||||
}
|
||||
|
||||
void change_indent (GtkWidget *widget, GtkCTree *ctree)
|
||||
{
|
||||
gtk_ctree_set_indent (ctree, GTK_ADJUSTMENT (widget)->value);
|
||||
@ -4118,15 +4256,16 @@ void set_background (GtkCTree *ctree, GtkCTreeNode *node, gpointer data)
|
||||
if (GTK_CTREE_ROW (node)->is_leaf)
|
||||
{
|
||||
if (GTK_CTREE_ROW (node)->parent)
|
||||
gtk_ctree_set_background
|
||||
gtk_ctree_node_set_background
|
||||
(ctree, node,
|
||||
GTK_CTREE_ROW (GTK_CTREE_ROW (node)->parent)->row.data);
|
||||
}
|
||||
else
|
||||
gtk_ctree_set_background (ctree, node, GTK_CTREE_ROW (node)->row.data);
|
||||
gtk_ctree_node_set_background (ctree, node,
|
||||
GTK_CTREE_ROW (node)->row.data);
|
||||
}
|
||||
else
|
||||
gtk_ctree_set_background (ctree, node, NULL);
|
||||
gtk_ctree_node_set_background (ctree, node, NULL);
|
||||
}
|
||||
|
||||
void ctree_toggle_line_style (GtkWidget *widget, GtkCTree *ctree)
|
||||
@ -4193,11 +4332,12 @@ void build_recursive (GtkCTree *ctree, gint cur_depth, gint depth,
|
||||
pages++;
|
||||
sprintf (buf1, "Page %02d", (gint) rand() % 100);
|
||||
sprintf (buf2, "Item %d-%d", cur_depth, i);
|
||||
sibling = gtk_ctree_insert (ctree, parent, sibling, text, 5, pixmap3,
|
||||
mask3, NULL, NULL, TRUE, FALSE);
|
||||
sibling = gtk_ctree_insert_node (ctree, parent, sibling, text, 5,
|
||||
pixmap3, mask3, NULL, NULL,
|
||||
TRUE, FALSE);
|
||||
|
||||
if (ctree->line_style == GTK_CTREE_LINES_TABBED)
|
||||
gtk_ctree_set_background (ctree, sibling, col_bg);
|
||||
gtk_ctree_node_set_background (ctree, sibling, col_bg);
|
||||
}
|
||||
|
||||
if (cur_depth == depth)
|
||||
@ -4208,8 +4348,9 @@ void build_recursive (GtkCTree *ctree, gint cur_depth, gint depth,
|
||||
books++;
|
||||
sprintf (buf1, "Book %02d", (gint) rand() % 100);
|
||||
sprintf (buf2, "Item %d-%d", cur_depth, i);
|
||||
sibling = gtk_ctree_insert (ctree, parent, sibling, text, 5, pixmap1,
|
||||
mask1, pixmap2, mask2, FALSE, FALSE);
|
||||
sibling = gtk_ctree_insert_node (ctree, parent, sibling, text, 5,
|
||||
pixmap1, mask1, pixmap2, mask2,
|
||||
FALSE, FALSE);
|
||||
|
||||
col_bg = g_new (GdkColor, 1);
|
||||
|
||||
@ -4233,10 +4374,10 @@ void build_recursive (GtkCTree *ctree, gint cur_depth, gint depth,
|
||||
}
|
||||
|
||||
gdk_color_alloc (gtk_widget_get_colormap (GTK_WIDGET (ctree)), col_bg);
|
||||
gtk_ctree_set_row_data_full (ctree, sibling, col_bg, g_free);
|
||||
gtk_ctree_node_set_row_data_full (ctree, sibling, col_bg, g_free);
|
||||
|
||||
if (ctree->line_style == GTK_CTREE_LINES_TABBED)
|
||||
gtk_ctree_set_background (ctree, sibling, col_bg);
|
||||
gtk_ctree_node_set_background (ctree, sibling, col_bg);
|
||||
|
||||
build_recursive (ctree, cur_depth + 1, depth, num_books, num_pages,
|
||||
sibling);
|
||||
@ -4272,17 +4413,17 @@ void rebuild_tree (GtkWidget *widget, GtkCTree *ctree)
|
||||
books = 1;
|
||||
pages = 0;
|
||||
|
||||
parent = gtk_ctree_insert (ctree, NULL, NULL, text, 5, pixmap1,
|
||||
mask1, pixmap2, mask2, FALSE, TRUE);
|
||||
parent = gtk_ctree_insert_node (ctree, NULL, NULL, text, 5, pixmap1,
|
||||
mask1, pixmap2, mask2, FALSE, TRUE);
|
||||
|
||||
col_bg = g_new (GdkColor, 1);
|
||||
col_bg->red = 0;
|
||||
col_bg->green = 45000;
|
||||
col_bg->blue = 55000;
|
||||
gdk_color_alloc (gtk_widget_get_colormap (GTK_WIDGET (ctree)), col_bg);
|
||||
gtk_ctree_set_row_data_full (ctree, parent, col_bg, g_free);
|
||||
gtk_ctree_node_set_row_data_full (ctree, parent, col_bg, g_free);
|
||||
if (ctree->line_style == GTK_CTREE_LINES_TABBED)
|
||||
gtk_ctree_set_background (ctree, parent, col_bg);
|
||||
gtk_ctree_node_set_background (ctree, parent, col_bg);
|
||||
|
||||
build_recursive (ctree, 1, d, b, p, parent);
|
||||
gtk_clist_thaw (GTK_CLIST (ctree));
|
||||
@ -4462,6 +4603,11 @@ void create_ctree (void)
|
||||
GTK_SIGNAL_FUNC (sort_all), ctree);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
|
||||
|
||||
button = gtk_button_new_with_label ("Export tree");
|
||||
gtk_signal_connect (GTK_OBJECT (button), "clicked",
|
||||
GTK_SIGNAL_FUNC (export_ctree), ctree);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 5);
|
||||
gtk_container_border_width (GTK_CONTAINER (hbox), 5);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user