Added focus handling, horizontal and vertical autoscrolling, extended
* gtk/gtkctree.h : * gtk/gtkctree.c : Added focus handling, horizontal and vertical autoscrolling, extended Selection Mode, key bindings Added gtk_ctree_toggle_expansion & gtk_ctree_toggle_expansion_recursive Changed gtk_ctree_scroll_to to gtk_ctree_moveto. Removed gtk_ctree_clear. * gtk/gtkclist.h : * gtk/gtkclist.c : Added focus handling, horizontal and vertical autoscrolling, extended Selection Mode, key bindings
This commit is contained in:
parent
b665608816
commit
8b9b7b9d04
16
ChangeLog
16
ChangeLog
@ -1,3 +1,18 @@
|
||||
Thu Jul 16 01:10:02 1998 Lars Hamann <lars@gtk.org>
|
||||
|
||||
* gtk/gtkctree.h :
|
||||
* gtk/gtkctree.c :
|
||||
Added focus handling, horizontal and vertical autoscrolling,
|
||||
extended Selection Mode, key bindings
|
||||
Added gtk_ctree_toggle_expansion & gtk_ctree_toggle_expansion_recursive
|
||||
Changed gtk_ctree_scroll_to to gtk_ctree_moveto.
|
||||
Removed gtk_ctree_clear.
|
||||
|
||||
* gtk/gtkclist.h :
|
||||
* gtk/gtkclist.c :
|
||||
Added focus handling, horizontal and vertical autoscrolling,
|
||||
extended Selection Mode, key bindings
|
||||
|
||||
Wed Jul 15 12:39:27 1998 Raph Levien <raph@acm.org>
|
||||
|
||||
* This checkin integrates GdkRgb version 0.0.3 into the Gtk 1.1
|
||||
@ -30,6 +45,7 @@ Tue Jul 14 19:12:12 1998 Tim Janik <timj@gtk.org>
|
||||
* gtk/gtkbutton.c (gtk_button_set_arg): don't destroy a buttons
|
||||
child if it isn't a label.
|
||||
|
||||
>>>>>>> 1.520
|
||||
Tue Jul 14 11:41:38 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkdialog.h:
|
||||
|
@ -1,3 +1,18 @@
|
||||
Thu Jul 16 01:10:02 1998 Lars Hamann <lars@gtk.org>
|
||||
|
||||
* gtk/gtkctree.h :
|
||||
* gtk/gtkctree.c :
|
||||
Added focus handling, horizontal and vertical autoscrolling,
|
||||
extended Selection Mode, key bindings
|
||||
Added gtk_ctree_toggle_expansion & gtk_ctree_toggle_expansion_recursive
|
||||
Changed gtk_ctree_scroll_to to gtk_ctree_moveto.
|
||||
Removed gtk_ctree_clear.
|
||||
|
||||
* gtk/gtkclist.h :
|
||||
* gtk/gtkclist.c :
|
||||
Added focus handling, horizontal and vertical autoscrolling,
|
||||
extended Selection Mode, key bindings
|
||||
|
||||
Wed Jul 15 12:39:27 1998 Raph Levien <raph@acm.org>
|
||||
|
||||
* This checkin integrates GdkRgb version 0.0.3 into the Gtk 1.1
|
||||
@ -30,6 +45,7 @@ Tue Jul 14 19:12:12 1998 Tim Janik <timj@gtk.org>
|
||||
* gtk/gtkbutton.c (gtk_button_set_arg): don't destroy a buttons
|
||||
child if it isn't a label.
|
||||
|
||||
>>>>>>> 1.520
|
||||
Tue Jul 14 11:41:38 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkdialog.h:
|
||||
|
@ -1,3 +1,18 @@
|
||||
Thu Jul 16 01:10:02 1998 Lars Hamann <lars@gtk.org>
|
||||
|
||||
* gtk/gtkctree.h :
|
||||
* gtk/gtkctree.c :
|
||||
Added focus handling, horizontal and vertical autoscrolling,
|
||||
extended Selection Mode, key bindings
|
||||
Added gtk_ctree_toggle_expansion & gtk_ctree_toggle_expansion_recursive
|
||||
Changed gtk_ctree_scroll_to to gtk_ctree_moveto.
|
||||
Removed gtk_ctree_clear.
|
||||
|
||||
* gtk/gtkclist.h :
|
||||
* gtk/gtkclist.c :
|
||||
Added focus handling, horizontal and vertical autoscrolling,
|
||||
extended Selection Mode, key bindings
|
||||
|
||||
Wed Jul 15 12:39:27 1998 Raph Levien <raph@acm.org>
|
||||
|
||||
* This checkin integrates GdkRgb version 0.0.3 into the Gtk 1.1
|
||||
@ -30,6 +45,7 @@ Tue Jul 14 19:12:12 1998 Tim Janik <timj@gtk.org>
|
||||
* gtk/gtkbutton.c (gtk_button_set_arg): don't destroy a buttons
|
||||
child if it isn't a label.
|
||||
|
||||
>>>>>>> 1.520
|
||||
Tue Jul 14 11:41:38 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkdialog.h:
|
||||
|
@ -1,3 +1,18 @@
|
||||
Thu Jul 16 01:10:02 1998 Lars Hamann <lars@gtk.org>
|
||||
|
||||
* gtk/gtkctree.h :
|
||||
* gtk/gtkctree.c :
|
||||
Added focus handling, horizontal and vertical autoscrolling,
|
||||
extended Selection Mode, key bindings
|
||||
Added gtk_ctree_toggle_expansion & gtk_ctree_toggle_expansion_recursive
|
||||
Changed gtk_ctree_scroll_to to gtk_ctree_moveto.
|
||||
Removed gtk_ctree_clear.
|
||||
|
||||
* gtk/gtkclist.h :
|
||||
* gtk/gtkclist.c :
|
||||
Added focus handling, horizontal and vertical autoscrolling,
|
||||
extended Selection Mode, key bindings
|
||||
|
||||
Wed Jul 15 12:39:27 1998 Raph Levien <raph@acm.org>
|
||||
|
||||
* This checkin integrates GdkRgb version 0.0.3 into the Gtk 1.1
|
||||
@ -30,6 +45,7 @@ Tue Jul 14 19:12:12 1998 Tim Janik <timj@gtk.org>
|
||||
* gtk/gtkbutton.c (gtk_button_set_arg): don't destroy a buttons
|
||||
child if it isn't a label.
|
||||
|
||||
>>>>>>> 1.520
|
||||
Tue Jul 14 11:41:38 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkdialog.h:
|
||||
|
@ -1,3 +1,18 @@
|
||||
Thu Jul 16 01:10:02 1998 Lars Hamann <lars@gtk.org>
|
||||
|
||||
* gtk/gtkctree.h :
|
||||
* gtk/gtkctree.c :
|
||||
Added focus handling, horizontal and vertical autoscrolling,
|
||||
extended Selection Mode, key bindings
|
||||
Added gtk_ctree_toggle_expansion & gtk_ctree_toggle_expansion_recursive
|
||||
Changed gtk_ctree_scroll_to to gtk_ctree_moveto.
|
||||
Removed gtk_ctree_clear.
|
||||
|
||||
* gtk/gtkclist.h :
|
||||
* gtk/gtkclist.c :
|
||||
Added focus handling, horizontal and vertical autoscrolling,
|
||||
extended Selection Mode, key bindings
|
||||
|
||||
Wed Jul 15 12:39:27 1998 Raph Levien <raph@acm.org>
|
||||
|
||||
* This checkin integrates GdkRgb version 0.0.3 into the Gtk 1.1
|
||||
@ -30,6 +45,7 @@ Tue Jul 14 19:12:12 1998 Tim Janik <timj@gtk.org>
|
||||
* gtk/gtkbutton.c (gtk_button_set_arg): don't destroy a buttons
|
||||
child if it isn't a label.
|
||||
|
||||
>>>>>>> 1.520
|
||||
Tue Jul 14 11:41:38 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkdialog.h:
|
||||
|
@ -1,3 +1,18 @@
|
||||
Thu Jul 16 01:10:02 1998 Lars Hamann <lars@gtk.org>
|
||||
|
||||
* gtk/gtkctree.h :
|
||||
* gtk/gtkctree.c :
|
||||
Added focus handling, horizontal and vertical autoscrolling,
|
||||
extended Selection Mode, key bindings
|
||||
Added gtk_ctree_toggle_expansion & gtk_ctree_toggle_expansion_recursive
|
||||
Changed gtk_ctree_scroll_to to gtk_ctree_moveto.
|
||||
Removed gtk_ctree_clear.
|
||||
|
||||
* gtk/gtkclist.h :
|
||||
* gtk/gtkclist.c :
|
||||
Added focus handling, horizontal and vertical autoscrolling,
|
||||
extended Selection Mode, key bindings
|
||||
|
||||
Wed Jul 15 12:39:27 1998 Raph Levien <raph@acm.org>
|
||||
|
||||
* This checkin integrates GdkRgb version 0.0.3 into the Gtk 1.1
|
||||
@ -30,6 +45,7 @@ Tue Jul 14 19:12:12 1998 Tim Janik <timj@gtk.org>
|
||||
* gtk/gtkbutton.c (gtk_button_set_arg): don't destroy a buttons
|
||||
child if it isn't a label.
|
||||
|
||||
>>>>>>> 1.520
|
||||
Tue Jul 14 11:41:38 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkdialog.h:
|
||||
|
@ -1,3 +1,18 @@
|
||||
Thu Jul 16 01:10:02 1998 Lars Hamann <lars@gtk.org>
|
||||
|
||||
* gtk/gtkctree.h :
|
||||
* gtk/gtkctree.c :
|
||||
Added focus handling, horizontal and vertical autoscrolling,
|
||||
extended Selection Mode, key bindings
|
||||
Added gtk_ctree_toggle_expansion & gtk_ctree_toggle_expansion_recursive
|
||||
Changed gtk_ctree_scroll_to to gtk_ctree_moveto.
|
||||
Removed gtk_ctree_clear.
|
||||
|
||||
* gtk/gtkclist.h :
|
||||
* gtk/gtkclist.c :
|
||||
Added focus handling, horizontal and vertical autoscrolling,
|
||||
extended Selection Mode, key bindings
|
||||
|
||||
Wed Jul 15 12:39:27 1998 Raph Levien <raph@acm.org>
|
||||
|
||||
* This checkin integrates GdkRgb version 0.0.3 into the Gtk 1.1
|
||||
@ -30,6 +45,7 @@ Tue Jul 14 19:12:12 1998 Tim Janik <timj@gtk.org>
|
||||
* gtk/gtkbutton.c (gtk_button_set_arg): don't destroy a buttons
|
||||
child if it isn't a label.
|
||||
|
||||
>>>>>>> 1.520
|
||||
Tue Jul 14 11:41:38 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkdialog.h:
|
||||
|
8
TODO
8
TODO
@ -5,14 +5,6 @@ For 1.2.0 release:
|
||||
non-functional ones.
|
||||
|
||||
Bugs:
|
||||
* gtk_ctree_set_selection_mode should be a mere alias of
|
||||
gtk_clist_set_selection_mode, and clist should implement a new member
|
||||
function `set_selection_mode' (doesn't need to have a gtk_signal_new
|
||||
declaration) that can be overridden by ctree, this
|
||||
is needed for proper widget argument support on GtkCList basis.
|
||||
this applies similarly to `gtk_ctree_clear', one should be able to
|
||||
get the same effect by invoking gtk_clist_clear (GTK_CLIST (ctree));
|
||||
|
||||
* Widget redrawing when the window resizes sometimes messes up.
|
||||
GtkLabels sometimes redraw without clearing up the underlying background on
|
||||
window resizes.
|
||||
|
2833
gtk/gtkclist.c
2833
gtk/gtkclist.c
File diff suppressed because it is too large
Load Diff
@ -27,6 +27,7 @@
|
||||
#include <gtk/gtkbutton.h>
|
||||
#include <gtk/gtkhscrollbar.h>
|
||||
#include <gtk/gtkvscrollbar.h>
|
||||
#include <gtk/gtkenums.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
@ -38,9 +39,12 @@ enum
|
||||
{
|
||||
GTK_CLIST_FROZEN = 1 << 0,
|
||||
GTK_CLIST_IN_DRAG = 1 << 1,
|
||||
GTK_CLIST_ROW_HEIGHT_SET = 1 << 2,
|
||||
GTK_CLIST_SHOW_TITLES = 1 << 3,
|
||||
GTK_CLIST_CONSTRUCTED = 1 << 4
|
||||
GTK_CLIST_DRAG_SELECTION = 1 << 2,
|
||||
GTK_CLIST_ROW_HEIGHT_SET = 1 << 3,
|
||||
GTK_CLIST_SHOW_TITLES = 1 << 4,
|
||||
GTK_CLIST_CONSTRUCTED = 1 << 5,
|
||||
GTK_CLIST_CHILD_HAS_FOCUS = 1 << 6,
|
||||
GTK_CLIST_ADD_MODE = 1 << 7
|
||||
};
|
||||
|
||||
/* cell types */
|
||||
@ -53,11 +57,11 @@ typedef enum
|
||||
GTK_CELL_WIDGET
|
||||
} GtkCellType;
|
||||
|
||||
#define GTK_TYPE_CLIST (gtk_clist_get_type ())
|
||||
#define GTK_CLIST(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_CLIST, GtkCList))
|
||||
#define GTK_CLIST_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_CLIST, GtkCListClass))
|
||||
#define GTK_IS_CLIST(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_CLIST))
|
||||
#define GTK_IS_CLIST_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_CLIST))
|
||||
#define GTK_TYPE_CLIST (gtk_clist_get_type ())
|
||||
#define GTK_CLIST(obj) (GTK_CHECK_CAST ((obj), gtk_clist_get_type (), GtkCList))
|
||||
#define GTK_CLIST_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), gtk_clist_get_type (), GtkCListClass))
|
||||
#define GTK_IS_CLIST(obj) (GTK_CHECK_TYPE ((obj), gtk_clist_get_type ()))
|
||||
#define GTK_IS_CLIST_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_CLIST))
|
||||
|
||||
#define GTK_CLIST_FLAGS(clist) (GTK_CLIST (clist)->flags)
|
||||
#define GTK_CLIST_SET_FLAG(clist,flag) (GTK_CLIST_FLAGS (clist) |= (GTK_ ## flag))
|
||||
@ -68,6 +72,11 @@ typedef enum
|
||||
#define GTK_CLIST_ROW_HEIGHT_SET(clist) (GTK_CLIST_FLAGS (clist) & GTK_CLIST_ROW_HEIGHT_SET)
|
||||
#define GTK_CLIST_SHOW_TITLES(clist) (GTK_CLIST_FLAGS (clist) & GTK_CLIST_SHOW_TITLES)
|
||||
#define GTK_CLIST_CONSTRUCTED(clist) (GTK_CLIST_FLAGS (clist) & GTK_CLIST_CONSTRUCTED)
|
||||
#define GTK_CLIST_CHILD_HAS_FOCUS(clist) (GTK_CLIST_FLAGS (clist) & GTK_CLIST_CHILD_HAS_FOCUS)
|
||||
#define GTK_CLIST_DRAG_SELECTION(clist) (GTK_CLIST_FLAGS (clist) & GTK_CLIST_DRAG_SELECTION)
|
||||
#define GTK_CLIST_ADD_MODE(clist) (GTK_CLIST_FLAGS (clist) & GTK_CLIST_ADD_MODE)
|
||||
|
||||
#define GTK_CLIST_ROW(_glist_) ((GtkCListRow *)((_glist_)->data))
|
||||
|
||||
/* pointer casting for cells */
|
||||
#define GTK_CELL_TEXT(cell) (((GtkCellText *) &(cell)))
|
||||
@ -90,7 +99,7 @@ struct _GtkCList
|
||||
{
|
||||
GtkContainer container;
|
||||
|
||||
guint8 flags;
|
||||
guint16 flags;
|
||||
|
||||
/* mem chunks */
|
||||
GMemChunk *row_mem_chunk;
|
||||
@ -133,6 +142,11 @@ struct _GtkCList
|
||||
|
||||
/* list of selected rows */
|
||||
GList *selection;
|
||||
GList *selection_end;
|
||||
|
||||
GList *undo_selection;
|
||||
GList *undo_unselection;
|
||||
gint undo_anchor;
|
||||
|
||||
/* scrollbars */
|
||||
GtkWidget *vscrollbar;
|
||||
@ -152,6 +166,16 @@ struct _GtkCList
|
||||
|
||||
/* the current x-pixel location of the xor-drag line */
|
||||
gint x_drag;
|
||||
|
||||
/* focus handling */
|
||||
gint focus_row;
|
||||
|
||||
/* dragging the selection */
|
||||
gint anchor;
|
||||
GtkStateType anchor_state;
|
||||
gint drag_pos;
|
||||
gint htimer;
|
||||
gint vtimer;
|
||||
};
|
||||
|
||||
struct _GtkCListClass
|
||||
@ -161,17 +185,48 @@ struct _GtkCListClass
|
||||
void (*select_row) (GtkCList * clist,
|
||||
gint row,
|
||||
gint column,
|
||||
GdkEventButton * event);
|
||||
GdkEvent * event);
|
||||
void (*unselect_row) (GtkCList * clist,
|
||||
gint row,
|
||||
gint column,
|
||||
GdkEventButton * event);
|
||||
GdkEvent * event);
|
||||
void (*click_column) (GtkCList * clist,
|
||||
gint column);
|
||||
|
||||
void (*toggle_focus_row) (GtkCList * clist);
|
||||
void (*select_all) (GtkCList * clist);
|
||||
void (*unselect_all) (GtkCList * clist);
|
||||
void (*undo_selection) (GtkCList * clist);
|
||||
void (*start_selection) (GtkCList * clist);
|
||||
void (*end_selection) (GtkCList * clist);
|
||||
void (*extend_selection) (GtkCList * clist,
|
||||
GtkScrollType scroll_type,
|
||||
gfloat position,
|
||||
gboolean auto_start_selection);
|
||||
void (*scroll_horizontal) (GtkCList * clist,
|
||||
GtkScrollType scroll_type,
|
||||
gfloat position);
|
||||
void (*scroll_vertical) (GtkCList * clist,
|
||||
GtkScrollType scroll_type,
|
||||
gfloat position);
|
||||
void (*toggle_add_mode) (GtkCList * clist);
|
||||
void (*abort_column_resize) (GtkCList * clist);
|
||||
|
||||
void (*resync_selection) (GtkCList * clist,
|
||||
GdkEvent * event);
|
||||
GList * (*selection_find) (GtkCList *clist,
|
||||
gint row_number,
|
||||
GList *row_list_element);
|
||||
void (*draw_row) (GtkCList * clist,
|
||||
GdkRectangle * area,
|
||||
gint row,
|
||||
GtkCListRow * clist_row);
|
||||
void (*clear) (GtkCList * clist);
|
||||
void (*fake_unselect_all) (GtkCList * clist,
|
||||
gint row);
|
||||
|
||||
|
||||
|
||||
gint scrollbar_spacing;
|
||||
};
|
||||
|
||||
@ -364,9 +419,6 @@ void gtk_clist_moveto (GtkCList * clist,
|
||||
GtkVisibility gtk_clist_row_is_visible (GtkCList * clist,
|
||||
gint row);
|
||||
|
||||
GtkAdjustment* gtk_clist_get_vadjustment (GtkCList * clist);
|
||||
GtkAdjustment* gtk_clist_get_hadjustment (GtkCList * clist);
|
||||
|
||||
/* returns the cell type */
|
||||
GtkCellType gtk_clist_get_cell_type (GtkCList * clist,
|
||||
gint row,
|
||||
@ -480,6 +532,9 @@ void gtk_clist_unselect_row (GtkCList * clist,
|
||||
gint row,
|
||||
gint column);
|
||||
|
||||
/* undo the last select/unselect operation */
|
||||
void gtk_clist_undo_selection (GtkCList *clist);
|
||||
|
||||
/* clear the entire list -- this is much faster than removing each item
|
||||
* with gtk_clist_remove */
|
||||
void gtk_clist_clear (GtkCList * clist);
|
||||
@ -491,11 +546,15 @@ gint gtk_clist_get_selection_info (GtkCList * clist,
|
||||
gint * row,
|
||||
gint * column);
|
||||
|
||||
/* in multiple or extended mode, select all rows */
|
||||
void gtk_clist_select_all (GtkCList *clist);
|
||||
|
||||
/* in all modes except browse mode, deselect all rows */
|
||||
void gtk_clist_unselect_all (GtkCList *clist);
|
||||
|
||||
/* swap the position of two rows */
|
||||
void gtk_clist_swap_rows (GtkCList * clist, gint row1, gint row2);
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
1226
gtk/gtkctree.c
1226
gtk/gtkctree.c
File diff suppressed because it is too large
Load Diff
@ -37,7 +37,7 @@ extern "C"
|
||||
(GTK_CHECK_CLASS_CAST ((klass), gtk_ctree_get_type (), GtkCTreeClass))
|
||||
#define GTK_IS_CTREE(obj) \
|
||||
(GTK_CHECK_TYPE ((obj), gtk_ctree_get_type ()))
|
||||
#define GTK_CTREE_ROW(glist) ((GtkCTreeRow *)((glist)->data))
|
||||
#define GTK_CTREE_ROW(_glist_) ((GtkCTreeRow *)((_glist_)->data))
|
||||
#define GTK_CTREE_TREE(_ctree_, _glist_) \
|
||||
((GtkCellTree *) &(((GtkCTreeRow *)((_glist_)->data))->cell[(_ctree_)->tree_col]))
|
||||
|
||||
@ -58,6 +58,16 @@ typedef enum
|
||||
GTK_CTREE_LINES_NONE
|
||||
} GtkCTreeLineStyle;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GTK_CTREE_EXPANSION_EXPAND,
|
||||
GTK_CTREE_EXPANSION_EXPAND_RECURSIVE,
|
||||
GTK_CTREE_EXPANSION_COLLAPSE,
|
||||
GTK_CTREE_EXPANSION_COLLAPSE_RECURSIVE,
|
||||
GTK_CTREE_EXPANSION_TOGGLE,
|
||||
GTK_CTREE_EXPANSION_TOGGLE_RECURSIVE
|
||||
} GtkCTreeExpansion;
|
||||
|
||||
typedef struct _GtkCTree GtkCTree;
|
||||
typedef struct _GtkCTreeClass GtkCTreeClass;
|
||||
typedef struct _GtkCTreeRow GtkCTreeRow;
|
||||
@ -82,7 +92,6 @@ struct _GtkCTree
|
||||
|
||||
gint tree_indent;
|
||||
gint tree_column;
|
||||
GList *selection_last;
|
||||
gint drag_row;
|
||||
GList *drag_source;
|
||||
GList *drag_target;
|
||||
@ -115,6 +124,8 @@ struct _GtkCTreeClass
|
||||
GList *node,
|
||||
GList *new_parent,
|
||||
GList *new_sibling);
|
||||
void (*change_focus_row_expansion) (GtkCTree *ctree,
|
||||
GtkCTreeExpansion action);
|
||||
};
|
||||
|
||||
struct _GtkCTreeRow
|
||||
@ -164,7 +175,6 @@ GList * gtk_ctree_insert (GtkCTree *ctree,
|
||||
gboolean expanded);
|
||||
void gtk_ctree_remove (GtkCTree *ctree,
|
||||
GList *node);
|
||||
void gtk_ctree_clear (GtkCTree *ctree);
|
||||
|
||||
/***********************************************************
|
||||
* Generic recursive functions, querying / finding tree *
|
||||
@ -214,6 +224,10 @@ void gtk_ctree_collapse (GtkCTree *ctree,
|
||||
GList *node);
|
||||
void gtk_ctree_collapse_recursive (GtkCTree *ctree,
|
||||
GList *node);
|
||||
void gtk_ctree_toggle_expansion (GtkCTree *ctree,
|
||||
GList *node);
|
||||
void gtk_ctree_toggle_expansion_recursive (GtkCTree *ctree,
|
||||
GList *node);
|
||||
void gtk_ctree_select (GtkCTree *ctree,
|
||||
GList *node);
|
||||
void gtk_ctree_select_recursive (GtkCTree *ctree,
|
||||
@ -296,8 +310,6 @@ void gtk_ctree_set_foreground (GtkCTree *ctree,
|
||||
void gtk_ctree_set_background (GtkCTree *ctree,
|
||||
GList *node,
|
||||
GdkColor *color);
|
||||
void gtk_ctree_set_selection_mode (GtkCTree *ctree,
|
||||
GtkSelectionMode mode);
|
||||
void gtk_ctree_set_row_data (GtkCTree *ctree,
|
||||
GList *node,
|
||||
gpointer data);
|
||||
@ -307,7 +319,7 @@ void gtk_ctree_set_row_data_full (GtkCTree *ctree,
|
||||
GtkDestroyNotify destroy);
|
||||
gpointer gtk_ctree_get_row_data (GtkCTree *ctree,
|
||||
GList *node);
|
||||
void gtk_ctree_scroll_to (GtkCTree *ctree,
|
||||
void gtk_ctree_moveto (GtkCTree *ctree,
|
||||
GList *node,
|
||||
gint column,
|
||||
gfloat row_align,
|
||||
|
239
gtk/testgtk.c
239
gtk/testgtk.c
@ -3034,12 +3034,14 @@ create_list (void)
|
||||
gtk_widget_destroy (window);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* GtkCList
|
||||
*/
|
||||
#define TESTGTK_CLIST_COLUMNS 7
|
||||
|
||||
#define TESTGTK_CLIST_COLUMNS 20
|
||||
static gint clist_rows = 0;
|
||||
static gint clist_selected_row = 0;
|
||||
static GtkWidget *clist_omenu;
|
||||
|
||||
static void
|
||||
add1000_clist (GtkWidget *widget, gpointer data)
|
||||
@ -3101,7 +3103,6 @@ add10000_clist (GtkWidget *widget, gpointer data)
|
||||
gtk_clist_append (GTK_CLIST (data), texts);
|
||||
}
|
||||
gtk_clist_thaw (GTK_CLIST (data));
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
@ -3114,7 +3115,7 @@ clear_clist (GtkWidget *widget, gpointer data)
|
||||
void
|
||||
remove_row_clist (GtkWidget *widget, gpointer data)
|
||||
{
|
||||
gtk_clist_remove (GTK_CLIST (data), clist_selected_row);
|
||||
gtk_clist_remove (GTK_CLIST (data), GTK_CLIST (data)->focus_row);
|
||||
clist_rows--;
|
||||
}
|
||||
|
||||
@ -3134,7 +3135,8 @@ void
|
||||
select_clist (GtkWidget *widget,
|
||||
gint row,
|
||||
gint column,
|
||||
GdkEventButton * bevent)
|
||||
GdkEventButton * bevent,
|
||||
GtkWidget *button)
|
||||
{
|
||||
gint i;
|
||||
guint8 spacing;
|
||||
@ -3187,15 +3189,14 @@ select_clist (GtkWidget *widget,
|
||||
}
|
||||
|
||||
g_print ("\n\n\n");
|
||||
|
||||
clist_selected_row = row;
|
||||
}
|
||||
|
||||
void
|
||||
unselect_clist (GtkWidget *widget,
|
||||
gint row,
|
||||
gint column,
|
||||
GdkEventButton * bevent)
|
||||
GdkEventButton * bevent,
|
||||
GtkWidget *button)
|
||||
{
|
||||
gint i;
|
||||
guint8 spacing;
|
||||
@ -3248,8 +3249,6 @@ unselect_clist (GtkWidget *widget,
|
||||
}
|
||||
|
||||
g_print ("\n\n\n");
|
||||
|
||||
clist_selected_row = row;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -3257,16 +3256,14 @@ insert_row_clist (GtkWidget *widget, gpointer data)
|
||||
{
|
||||
static char *text[] =
|
||||
{
|
||||
"This",
|
||||
"is",
|
||||
"a",
|
||||
"inserted",
|
||||
"row",
|
||||
"la la la la la",
|
||||
"la la la la"
|
||||
"This", "is", "a", "inserted", "row.",
|
||||
"This", "is", "a", "inserted", "row.",
|
||||
"This", "is", "a", "inserted", "row.",
|
||||
"This", "is", "a", "inserted", "row."
|
||||
};
|
||||
|
||||
gtk_clist_insert (GTK_CLIST (data), clist_selected_row, text);
|
||||
gtk_clist_insert (GTK_CLIST (data), GTK_CLIST (data)->focus_row, text);
|
||||
|
||||
clist_rows++;
|
||||
}
|
||||
|
||||
@ -3296,6 +3293,36 @@ clist_warning_test (GtkWidget *button,
|
||||
gtk_widget_unref (child);
|
||||
}
|
||||
|
||||
static void
|
||||
undo_selection (GtkWidget *button, GtkCList *clist)
|
||||
{
|
||||
gtk_clist_undo_selection (clist);
|
||||
}
|
||||
|
||||
#define RADIOMENUTOGGLED(_rmi_, __i) { \
|
||||
GSList * __g; \
|
||||
__i = 0; \
|
||||
__g = gtk_radio_menu_item_group(_rmi_); \
|
||||
while( __g && !((GtkCheckMenuItem *)(__g->data))->active) { \
|
||||
__g = __g->next; \
|
||||
__i++; \
|
||||
}\
|
||||
}
|
||||
|
||||
static void
|
||||
clist_toggle_sel_mode (GtkWidget *widget, GtkCList *clist)
|
||||
{
|
||||
gint i;
|
||||
|
||||
if (!GTK_WIDGET_MAPPED (widget))
|
||||
return;
|
||||
|
||||
RADIOMENUTOGGLED ((GtkRadioMenuItem *)
|
||||
(((GtkOptionMenu *)clist_omenu)->menu_item), i);
|
||||
|
||||
gtk_clist_set_selection_mode (clist, (GtkSelectionMode) (3-i));
|
||||
}
|
||||
|
||||
static void
|
||||
create_clist (void)
|
||||
{
|
||||
@ -3310,7 +3337,20 @@ create_clist (void)
|
||||
"Title 3",
|
||||
"Title 4",
|
||||
"Title 5",
|
||||
"Title 6"
|
||||
"Title 6",
|
||||
"Title 7",
|
||||
"Title 8",
|
||||
"Title 9",
|
||||
"Title 10",
|
||||
"Title 11",
|
||||
"Title 12",
|
||||
"Title 13",
|
||||
"Title 14",
|
||||
"Title 15",
|
||||
"Title 16",
|
||||
"Title 17",
|
||||
"Title 18",
|
||||
"Title 19"
|
||||
};
|
||||
|
||||
char text[TESTGTK_CLIST_COLUMNS][50];
|
||||
@ -3322,9 +3362,15 @@ create_clist (void)
|
||||
GtkWidget *button;
|
||||
GtkWidget *separator;
|
||||
|
||||
GtkWidget *undo_button;
|
||||
GtkWidget *label;
|
||||
GtkWidget *menu;
|
||||
GtkWidget *menu_item;
|
||||
GSList *group;
|
||||
|
||||
if (!window)
|
||||
{
|
||||
clist_rows = 0;
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (window), "destroy",
|
||||
@ -3334,16 +3380,12 @@ create_clist (void)
|
||||
gtk_window_set_title (GTK_WINDOW (window), "clist");
|
||||
gtk_container_border_width (GTK_CONTAINER (window), 0);
|
||||
|
||||
|
||||
box1 = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (window), box1);
|
||||
gtk_widget_show (box1);
|
||||
|
||||
|
||||
box2 = gtk_hbox_new (FALSE, 10);
|
||||
gtk_container_border_width (GTK_CONTAINER (box2), 10);
|
||||
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
|
||||
gtk_widget_show (box2);
|
||||
|
||||
/* create GtkCList here so we have a pointer to throw at the
|
||||
* button callbacks -- more is done with it later */
|
||||
@ -3359,9 +3401,6 @@ create_clist (void)
|
||||
(GtkSignalFunc) add1000_clist,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
|
||||
button = gtk_button_new_with_label ("Add 10,000 Rows");
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
|
||||
@ -3370,8 +3409,6 @@ create_clist (void)
|
||||
(GtkSignalFunc) add10000_clist,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
button = gtk_button_new_with_label ("Clear List");
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
|
||||
@ -3380,8 +3417,6 @@ create_clist (void)
|
||||
(GtkSignalFunc) clear_clist,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
button = gtk_button_new_with_label ("Remove Row");
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
|
||||
@ -3390,13 +3425,10 @@ create_clist (void)
|
||||
(GtkSignalFunc) remove_row_clist,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
/* second layer of buttons */
|
||||
box2 = gtk_hbox_new (FALSE, 10);
|
||||
gtk_container_border_width (GTK_CONTAINER (box2), 10);
|
||||
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
|
||||
gtk_widget_show (box2);
|
||||
|
||||
button = gtk_button_new_with_label ("Insert Row");
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
@ -3406,8 +3438,6 @@ create_clist (void)
|
||||
(GtkSignalFunc) insert_row_clist,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
button = gtk_button_new_with_label ("Show Title Buttons");
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
|
||||
@ -3416,8 +3446,6 @@ create_clist (void)
|
||||
(GtkSignalFunc) show_titles_clist,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
button = gtk_button_new_with_label ("Hide Title Buttons");
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
|
||||
@ -3426,8 +3454,6 @@ create_clist (void)
|
||||
(GtkSignalFunc) hide_titles_clist,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
button = gtk_button_new_with_label ("Warning Test");
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
|
||||
@ -3436,41 +3462,96 @@ create_clist (void)
|
||||
(GtkSignalFunc) clist_warning_test,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
box2 = gtk_hbox_new (FALSE, 10);
|
||||
gtk_container_border_width (GTK_CONTAINER (box2), 10);
|
||||
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
|
||||
|
||||
undo_button = gtk_button_new_with_label ("Undo last selection");
|
||||
gtk_box_pack_start (GTK_BOX (box2), undo_button, TRUE, TRUE, 0);
|
||||
gtk_signal_connect (GTK_OBJECT (undo_button),
|
||||
"clicked",
|
||||
(GtkSignalFunc) undo_selection,
|
||||
(gpointer) clist);
|
||||
|
||||
label = gtk_label_new ("Selection Mode :");
|
||||
gtk_box_pack_start (GTK_BOX (box2), label, FALSE, TRUE, 0);
|
||||
|
||||
clist_omenu = gtk_option_menu_new ();
|
||||
|
||||
menu = gtk_menu_new ();
|
||||
group = NULL;
|
||||
|
||||
menu_item = gtk_radio_menu_item_new_with_label (group, "Single");
|
||||
gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
|
||||
GTK_SIGNAL_FUNC (clist_toggle_sel_mode), clist);
|
||||
group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item));
|
||||
gtk_menu_append (GTK_MENU (menu), menu_item);
|
||||
gtk_widget_show (menu_item);
|
||||
|
||||
menu_item = gtk_radio_menu_item_new_with_label (group, "Browse");
|
||||
gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
|
||||
GTK_SIGNAL_FUNC (clist_toggle_sel_mode), clist);
|
||||
group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item));
|
||||
gtk_menu_append (GTK_MENU (menu), menu_item);
|
||||
gtk_widget_show (menu_item);
|
||||
|
||||
menu_item = gtk_radio_menu_item_new_with_label (group, "Multiple");
|
||||
gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
|
||||
GTK_SIGNAL_FUNC (clist_toggle_sel_mode), clist);
|
||||
group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item));
|
||||
gtk_menu_append (GTK_MENU (menu), menu_item);
|
||||
gtk_widget_show (menu_item);
|
||||
|
||||
menu_item = gtk_radio_menu_item_new_with_label (group, "Extended");
|
||||
gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
|
||||
GTK_SIGNAL_FUNC (clist_toggle_sel_mode), clist);
|
||||
group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item));
|
||||
gtk_menu_append (GTK_MENU (menu), menu_item);
|
||||
gtk_check_menu_item_set_state (GTK_CHECK_MENU_ITEM (menu_item), TRUE);
|
||||
gtk_widget_show (menu_item);
|
||||
|
||||
gtk_option_menu_set_menu (GTK_OPTION_MENU (clist_omenu), menu);
|
||||
gtk_box_pack_start (GTK_BOX (box2), clist_omenu, FALSE, TRUE, 0);
|
||||
|
||||
gtk_option_menu_set_history (GTK_OPTION_MENU (clist_omenu), 3);
|
||||
|
||||
/* vbox for the list itself */
|
||||
box2 = gtk_vbox_new (FALSE, 10);
|
||||
gtk_container_border_width (GTK_CONTAINER (box2), 10);
|
||||
gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
|
||||
gtk_widget_show (box2);
|
||||
|
||||
/*
|
||||
* the rest of the clist configuration
|
||||
*/
|
||||
gtk_clist_set_row_height (GTK_CLIST (clist), 20);
|
||||
|
||||
|
||||
/*
|
||||
gtk_signal_connect (GTK_OBJECT (clist),
|
||||
"select_row",
|
||||
(GtkSignalFunc) select_clist,
|
||||
NULL);
|
||||
undo_button);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (clist),
|
||||
"unselect_row",
|
||||
(GtkSignalFunc) unselect_clist,
|
||||
NULL);
|
||||
undo_button);
|
||||
*/
|
||||
|
||||
gtk_clist_set_row_height (GTK_CLIST (clist), 18);
|
||||
gtk_widget_set_usize (clist, -1, 300);
|
||||
|
||||
gtk_clist_set_column_width (GTK_CLIST (clist), 0, 100);
|
||||
|
||||
for (i = 1; i < TESTGTK_CLIST_COLUMNS; i++)
|
||||
gtk_clist_set_column_width (GTK_CLIST (clist), i, 80);
|
||||
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (clist), GTK_SELECTION_BROWSE);
|
||||
gtk_clist_set_policy (GTK_CLIST (clist),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (clist), GTK_SELECTION_EXTENDED);
|
||||
gtk_clist_set_policy (GTK_CLIST (clist), GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
|
||||
gtk_clist_set_column_justification (GTK_CLIST (clist), 1, GTK_JUSTIFY_RIGHT);
|
||||
gtk_clist_set_column_justification (GTK_CLIST (clist), 2, GTK_JUSTIFY_CENTER);
|
||||
gtk_clist_set_column_justification (GTK_CLIST (clist), 1,
|
||||
GTK_JUSTIFY_RIGHT);
|
||||
gtk_clist_set_column_justification (GTK_CLIST (clist), 2,
|
||||
GTK_JUSTIFY_CENTER);
|
||||
|
||||
for (i = 0; i < TESTGTK_CLIST_COLUMNS; i++)
|
||||
{
|
||||
@ -3481,7 +3562,7 @@ create_clist (void)
|
||||
sprintf (text[1], "Right");
|
||||
sprintf (text[2], "Center");
|
||||
|
||||
for (i = 0; i < 100; i++)
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
sprintf (text[0], "Row %d", clist_rows++);
|
||||
gtk_clist_append (GTK_CLIST (clist), texts);
|
||||
@ -3489,17 +3570,13 @@ create_clist (void)
|
||||
|
||||
gtk_container_border_width (GTK_CONTAINER (clist), 5);
|
||||
gtk_box_pack_start (GTK_BOX (box2), clist, TRUE, TRUE, 0);
|
||||
gtk_widget_show (clist);
|
||||
|
||||
|
||||
separator = gtk_hseparator_new ();
|
||||
gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
|
||||
gtk_widget_show (separator);
|
||||
|
||||
box2 = gtk_vbox_new (FALSE, 10);
|
||||
gtk_container_border_width (GTK_CONTAINER (box2), 10);
|
||||
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
|
||||
gtk_widget_show (box2);
|
||||
|
||||
button = gtk_button_new_with_label ("close");
|
||||
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
|
||||
@ -3509,21 +3586,17 @@ create_clist (void)
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
|
||||
gtk_widget_grab_default (button);
|
||||
|
||||
gtk_widget_show (button);
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (window))
|
||||
gtk_widget_show (window);
|
||||
gtk_widget_show_all (window);
|
||||
else
|
||||
{
|
||||
clist_rows = 0;
|
||||
gtk_widget_destroy (window);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* GtkCTree
|
||||
*/
|
||||
@ -3621,26 +3694,6 @@ static GtkWidget *spin2;
|
||||
static GtkWidget *spin3;
|
||||
static GdkColor *col_bg;
|
||||
|
||||
#define RADIOMENUTOGGLED(_rmi_, __i) { \
|
||||
GSList * __g; \
|
||||
__i = 0; \
|
||||
__g = gtk_radio_menu_item_group(_rmi_); \
|
||||
while( __g && !((GtkCheckMenuItem *)(__g->data))->active) { \
|
||||
__g = __g->next; \
|
||||
__i++; \
|
||||
}\
|
||||
}
|
||||
|
||||
#define RADIOBUTTONTOGGLED(_rb_, __i) { \
|
||||
GSList * __g; \
|
||||
__i = 0; \
|
||||
__g = gtk_radio_button_group(_rb_); \
|
||||
while( __g && !((GtkToggleButton *)(__g->data))->active) { \
|
||||
__g = __g->next; \
|
||||
__i++; \
|
||||
}\
|
||||
}
|
||||
|
||||
void after_press (GtkCTree *ctree, gpointer data)
|
||||
{
|
||||
char buf[80];
|
||||
@ -3708,7 +3761,7 @@ gint button_press (GtkCTree *ctree, GdkEventButton *event, gpointer data)
|
||||
else
|
||||
gtk_ctree_expand_recursive (ctree, work);
|
||||
after_press (ctree, NULL);
|
||||
gtk_signal_emit_stop_by_name (GTK_OBJECT (ctree),
|
||||
gtk_signal_emit_stop_by_name (GTK_OBJECT (ctree),
|
||||
"button_press_event");
|
||||
}
|
||||
break;
|
||||
@ -3907,7 +3960,7 @@ void toggle_sel_mode (GtkWidget *widget, GtkCTree *ctree)
|
||||
RADIOMENUTOGGLED ((GtkRadioMenuItem *)
|
||||
(((GtkOptionMenu *)omenu)->menu_item), i);
|
||||
|
||||
gtk_ctree_set_selection_mode (ctree, (GtkSelectionMode) (3-i));
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (ctree), (GtkSelectionMode) (3-i));
|
||||
after_press (ctree, NULL);
|
||||
}
|
||||
|
||||
@ -3996,14 +4049,14 @@ void rebuild_tree (GtkWidget *widget, GtkCTree *ctree)
|
||||
|
||||
n = ((pow (b, d) - 1) / (b - 1)) * (p + 1);
|
||||
|
||||
if (n > 200000)
|
||||
if (n > 100000)
|
||||
{
|
||||
g_print ("%d total items? Try less\n",n);
|
||||
return;
|
||||
}
|
||||
|
||||
gtk_clist_freeze (GTK_CLIST (ctree));
|
||||
gtk_ctree_clear (ctree);
|
||||
gtk_clist_clear (GTK_CLIST (ctree));
|
||||
|
||||
books = 1;
|
||||
pages = 0;
|
||||
@ -4117,9 +4170,20 @@ void create_ctree (void)
|
||||
GTK_SIGNAL_FUNC (after_press), NULL);
|
||||
gtk_signal_connect_after (GTK_OBJECT (ctree), "tree_move",
|
||||
GTK_SIGNAL_FUNC (after_move), NULL);
|
||||
gtk_signal_connect_after (GTK_OBJECT (ctree), "end_selection",
|
||||
GTK_SIGNAL_FUNC (after_press), NULL);
|
||||
gtk_signal_connect_after (GTK_OBJECT (ctree), "toggle_focus_row",
|
||||
GTK_SIGNAL_FUNC (after_press), NULL);
|
||||
gtk_signal_connect_after (GTK_OBJECT (ctree), "select_all",
|
||||
GTK_SIGNAL_FUNC (after_press), NULL);
|
||||
gtk_signal_connect_after (GTK_OBJECT (ctree), "unselect_all",
|
||||
GTK_SIGNAL_FUNC (after_press), NULL);
|
||||
gtk_signal_connect_after (GTK_OBJECT (ctree), "scroll_vertical",
|
||||
GTK_SIGNAL_FUNC (after_press), NULL);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (ctree), TRUE, TRUE, 0);
|
||||
gtk_clist_column_titles_passive (GTK_CLIST (ctree));
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (ctree), GTK_SELECTION_MULTIPLE);
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (ctree), GTK_SELECTION_EXTENDED);
|
||||
gtk_clist_set_policy (GTK_CLIST (ctree), GTK_POLICY_ALWAYS,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_clist_set_column_width (GTK_CLIST (ctree), 0, 200);
|
||||
@ -4299,7 +4363,6 @@ void create_ctree (void)
|
||||
GTK_SIGNAL_FUNC (toggle_sel_mode), ctree);
|
||||
group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item));
|
||||
gtk_menu_append (GTK_MENU (menu), menu_item);
|
||||
gtk_check_menu_item_set_state (GTK_CHECK_MENU_ITEM (menu_item), TRUE);
|
||||
gtk_widget_show (menu_item);
|
||||
|
||||
menu_item = gtk_radio_menu_item_new_with_label (group, "Extended");
|
||||
@ -4307,12 +4370,13 @@ void create_ctree (void)
|
||||
GTK_SIGNAL_FUNC (toggle_sel_mode), ctree);
|
||||
group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item));
|
||||
gtk_menu_append (GTK_MENU (menu), menu_item);
|
||||
gtk_check_menu_item_set_state (GTK_CHECK_MENU_ITEM (menu_item), TRUE);
|
||||
gtk_widget_show (menu_item);
|
||||
|
||||
gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), omenu, FALSE, TRUE, 0);
|
||||
|
||||
gtk_option_menu_set_history (GTK_OPTION_MENU (omenu), 2);
|
||||
gtk_option_menu_set_history (GTK_OPTION_MENU (omenu), 3);
|
||||
|
||||
gtk_widget_realize (window);
|
||||
|
||||
@ -4403,7 +4467,6 @@ void create_ctree (void)
|
||||
gtk_widget_destroy (window);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* GtkColorSelect
|
||||
*/
|
||||
|
239
tests/testgtk.c
239
tests/testgtk.c
@ -3034,12 +3034,14 @@ create_list (void)
|
||||
gtk_widget_destroy (window);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* GtkCList
|
||||
*/
|
||||
#define TESTGTK_CLIST_COLUMNS 7
|
||||
|
||||
#define TESTGTK_CLIST_COLUMNS 20
|
||||
static gint clist_rows = 0;
|
||||
static gint clist_selected_row = 0;
|
||||
static GtkWidget *clist_omenu;
|
||||
|
||||
static void
|
||||
add1000_clist (GtkWidget *widget, gpointer data)
|
||||
@ -3101,7 +3103,6 @@ add10000_clist (GtkWidget *widget, gpointer data)
|
||||
gtk_clist_append (GTK_CLIST (data), texts);
|
||||
}
|
||||
gtk_clist_thaw (GTK_CLIST (data));
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
@ -3114,7 +3115,7 @@ clear_clist (GtkWidget *widget, gpointer data)
|
||||
void
|
||||
remove_row_clist (GtkWidget *widget, gpointer data)
|
||||
{
|
||||
gtk_clist_remove (GTK_CLIST (data), clist_selected_row);
|
||||
gtk_clist_remove (GTK_CLIST (data), GTK_CLIST (data)->focus_row);
|
||||
clist_rows--;
|
||||
}
|
||||
|
||||
@ -3134,7 +3135,8 @@ void
|
||||
select_clist (GtkWidget *widget,
|
||||
gint row,
|
||||
gint column,
|
||||
GdkEventButton * bevent)
|
||||
GdkEventButton * bevent,
|
||||
GtkWidget *button)
|
||||
{
|
||||
gint i;
|
||||
guint8 spacing;
|
||||
@ -3187,15 +3189,14 @@ select_clist (GtkWidget *widget,
|
||||
}
|
||||
|
||||
g_print ("\n\n\n");
|
||||
|
||||
clist_selected_row = row;
|
||||
}
|
||||
|
||||
void
|
||||
unselect_clist (GtkWidget *widget,
|
||||
gint row,
|
||||
gint column,
|
||||
GdkEventButton * bevent)
|
||||
GdkEventButton * bevent,
|
||||
GtkWidget *button)
|
||||
{
|
||||
gint i;
|
||||
guint8 spacing;
|
||||
@ -3248,8 +3249,6 @@ unselect_clist (GtkWidget *widget,
|
||||
}
|
||||
|
||||
g_print ("\n\n\n");
|
||||
|
||||
clist_selected_row = row;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -3257,16 +3256,14 @@ insert_row_clist (GtkWidget *widget, gpointer data)
|
||||
{
|
||||
static char *text[] =
|
||||
{
|
||||
"This",
|
||||
"is",
|
||||
"a",
|
||||
"inserted",
|
||||
"row",
|
||||
"la la la la la",
|
||||
"la la la la"
|
||||
"This", "is", "a", "inserted", "row.",
|
||||
"This", "is", "a", "inserted", "row.",
|
||||
"This", "is", "a", "inserted", "row.",
|
||||
"This", "is", "a", "inserted", "row."
|
||||
};
|
||||
|
||||
gtk_clist_insert (GTK_CLIST (data), clist_selected_row, text);
|
||||
gtk_clist_insert (GTK_CLIST (data), GTK_CLIST (data)->focus_row, text);
|
||||
|
||||
clist_rows++;
|
||||
}
|
||||
|
||||
@ -3296,6 +3293,36 @@ clist_warning_test (GtkWidget *button,
|
||||
gtk_widget_unref (child);
|
||||
}
|
||||
|
||||
static void
|
||||
undo_selection (GtkWidget *button, GtkCList *clist)
|
||||
{
|
||||
gtk_clist_undo_selection (clist);
|
||||
}
|
||||
|
||||
#define RADIOMENUTOGGLED(_rmi_, __i) { \
|
||||
GSList * __g; \
|
||||
__i = 0; \
|
||||
__g = gtk_radio_menu_item_group(_rmi_); \
|
||||
while( __g && !((GtkCheckMenuItem *)(__g->data))->active) { \
|
||||
__g = __g->next; \
|
||||
__i++; \
|
||||
}\
|
||||
}
|
||||
|
||||
static void
|
||||
clist_toggle_sel_mode (GtkWidget *widget, GtkCList *clist)
|
||||
{
|
||||
gint i;
|
||||
|
||||
if (!GTK_WIDGET_MAPPED (widget))
|
||||
return;
|
||||
|
||||
RADIOMENUTOGGLED ((GtkRadioMenuItem *)
|
||||
(((GtkOptionMenu *)clist_omenu)->menu_item), i);
|
||||
|
||||
gtk_clist_set_selection_mode (clist, (GtkSelectionMode) (3-i));
|
||||
}
|
||||
|
||||
static void
|
||||
create_clist (void)
|
||||
{
|
||||
@ -3310,7 +3337,20 @@ create_clist (void)
|
||||
"Title 3",
|
||||
"Title 4",
|
||||
"Title 5",
|
||||
"Title 6"
|
||||
"Title 6",
|
||||
"Title 7",
|
||||
"Title 8",
|
||||
"Title 9",
|
||||
"Title 10",
|
||||
"Title 11",
|
||||
"Title 12",
|
||||
"Title 13",
|
||||
"Title 14",
|
||||
"Title 15",
|
||||
"Title 16",
|
||||
"Title 17",
|
||||
"Title 18",
|
||||
"Title 19"
|
||||
};
|
||||
|
||||
char text[TESTGTK_CLIST_COLUMNS][50];
|
||||
@ -3322,9 +3362,15 @@ create_clist (void)
|
||||
GtkWidget *button;
|
||||
GtkWidget *separator;
|
||||
|
||||
GtkWidget *undo_button;
|
||||
GtkWidget *label;
|
||||
GtkWidget *menu;
|
||||
GtkWidget *menu_item;
|
||||
GSList *group;
|
||||
|
||||
if (!window)
|
||||
{
|
||||
clist_rows = 0;
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (window), "destroy",
|
||||
@ -3334,16 +3380,12 @@ create_clist (void)
|
||||
gtk_window_set_title (GTK_WINDOW (window), "clist");
|
||||
gtk_container_border_width (GTK_CONTAINER (window), 0);
|
||||
|
||||
|
||||
box1 = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (window), box1);
|
||||
gtk_widget_show (box1);
|
||||
|
||||
|
||||
box2 = gtk_hbox_new (FALSE, 10);
|
||||
gtk_container_border_width (GTK_CONTAINER (box2), 10);
|
||||
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
|
||||
gtk_widget_show (box2);
|
||||
|
||||
/* create GtkCList here so we have a pointer to throw at the
|
||||
* button callbacks -- more is done with it later */
|
||||
@ -3359,9 +3401,6 @@ create_clist (void)
|
||||
(GtkSignalFunc) add1000_clist,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
|
||||
button = gtk_button_new_with_label ("Add 10,000 Rows");
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
|
||||
@ -3370,8 +3409,6 @@ create_clist (void)
|
||||
(GtkSignalFunc) add10000_clist,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
button = gtk_button_new_with_label ("Clear List");
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
|
||||
@ -3380,8 +3417,6 @@ create_clist (void)
|
||||
(GtkSignalFunc) clear_clist,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
button = gtk_button_new_with_label ("Remove Row");
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
|
||||
@ -3390,13 +3425,10 @@ create_clist (void)
|
||||
(GtkSignalFunc) remove_row_clist,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
/* second layer of buttons */
|
||||
box2 = gtk_hbox_new (FALSE, 10);
|
||||
gtk_container_border_width (GTK_CONTAINER (box2), 10);
|
||||
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
|
||||
gtk_widget_show (box2);
|
||||
|
||||
button = gtk_button_new_with_label ("Insert Row");
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
@ -3406,8 +3438,6 @@ create_clist (void)
|
||||
(GtkSignalFunc) insert_row_clist,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
button = gtk_button_new_with_label ("Show Title Buttons");
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
|
||||
@ -3416,8 +3446,6 @@ create_clist (void)
|
||||
(GtkSignalFunc) show_titles_clist,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
button = gtk_button_new_with_label ("Hide Title Buttons");
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
|
||||
@ -3426,8 +3454,6 @@ create_clist (void)
|
||||
(GtkSignalFunc) hide_titles_clist,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
button = gtk_button_new_with_label ("Warning Test");
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
|
||||
@ -3436,41 +3462,96 @@ create_clist (void)
|
||||
(GtkSignalFunc) clist_warning_test,
|
||||
(gpointer) clist);
|
||||
|
||||
gtk_widget_show (button);
|
||||
box2 = gtk_hbox_new (FALSE, 10);
|
||||
gtk_container_border_width (GTK_CONTAINER (box2), 10);
|
||||
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
|
||||
|
||||
undo_button = gtk_button_new_with_label ("Undo last selection");
|
||||
gtk_box_pack_start (GTK_BOX (box2), undo_button, TRUE, TRUE, 0);
|
||||
gtk_signal_connect (GTK_OBJECT (undo_button),
|
||||
"clicked",
|
||||
(GtkSignalFunc) undo_selection,
|
||||
(gpointer) clist);
|
||||
|
||||
label = gtk_label_new ("Selection Mode :");
|
||||
gtk_box_pack_start (GTK_BOX (box2), label, FALSE, TRUE, 0);
|
||||
|
||||
clist_omenu = gtk_option_menu_new ();
|
||||
|
||||
menu = gtk_menu_new ();
|
||||
group = NULL;
|
||||
|
||||
menu_item = gtk_radio_menu_item_new_with_label (group, "Single");
|
||||
gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
|
||||
GTK_SIGNAL_FUNC (clist_toggle_sel_mode), clist);
|
||||
group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item));
|
||||
gtk_menu_append (GTK_MENU (menu), menu_item);
|
||||
gtk_widget_show (menu_item);
|
||||
|
||||
menu_item = gtk_radio_menu_item_new_with_label (group, "Browse");
|
||||
gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
|
||||
GTK_SIGNAL_FUNC (clist_toggle_sel_mode), clist);
|
||||
group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item));
|
||||
gtk_menu_append (GTK_MENU (menu), menu_item);
|
||||
gtk_widget_show (menu_item);
|
||||
|
||||
menu_item = gtk_radio_menu_item_new_with_label (group, "Multiple");
|
||||
gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
|
||||
GTK_SIGNAL_FUNC (clist_toggle_sel_mode), clist);
|
||||
group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item));
|
||||
gtk_menu_append (GTK_MENU (menu), menu_item);
|
||||
gtk_widget_show (menu_item);
|
||||
|
||||
menu_item = gtk_radio_menu_item_new_with_label (group, "Extended");
|
||||
gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
|
||||
GTK_SIGNAL_FUNC (clist_toggle_sel_mode), clist);
|
||||
group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item));
|
||||
gtk_menu_append (GTK_MENU (menu), menu_item);
|
||||
gtk_check_menu_item_set_state (GTK_CHECK_MENU_ITEM (menu_item), TRUE);
|
||||
gtk_widget_show (menu_item);
|
||||
|
||||
gtk_option_menu_set_menu (GTK_OPTION_MENU (clist_omenu), menu);
|
||||
gtk_box_pack_start (GTK_BOX (box2), clist_omenu, FALSE, TRUE, 0);
|
||||
|
||||
gtk_option_menu_set_history (GTK_OPTION_MENU (clist_omenu), 3);
|
||||
|
||||
/* vbox for the list itself */
|
||||
box2 = gtk_vbox_new (FALSE, 10);
|
||||
gtk_container_border_width (GTK_CONTAINER (box2), 10);
|
||||
gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
|
||||
gtk_widget_show (box2);
|
||||
|
||||
/*
|
||||
* the rest of the clist configuration
|
||||
*/
|
||||
gtk_clist_set_row_height (GTK_CLIST (clist), 20);
|
||||
|
||||
|
||||
/*
|
||||
gtk_signal_connect (GTK_OBJECT (clist),
|
||||
"select_row",
|
||||
(GtkSignalFunc) select_clist,
|
||||
NULL);
|
||||
undo_button);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (clist),
|
||||
"unselect_row",
|
||||
(GtkSignalFunc) unselect_clist,
|
||||
NULL);
|
||||
undo_button);
|
||||
*/
|
||||
|
||||
gtk_clist_set_row_height (GTK_CLIST (clist), 18);
|
||||
gtk_widget_set_usize (clist, -1, 300);
|
||||
|
||||
gtk_clist_set_column_width (GTK_CLIST (clist), 0, 100);
|
||||
|
||||
for (i = 1; i < TESTGTK_CLIST_COLUMNS; i++)
|
||||
gtk_clist_set_column_width (GTK_CLIST (clist), i, 80);
|
||||
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (clist), GTK_SELECTION_BROWSE);
|
||||
gtk_clist_set_policy (GTK_CLIST (clist),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (clist), GTK_SELECTION_EXTENDED);
|
||||
gtk_clist_set_policy (GTK_CLIST (clist), GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
|
||||
gtk_clist_set_column_justification (GTK_CLIST (clist), 1, GTK_JUSTIFY_RIGHT);
|
||||
gtk_clist_set_column_justification (GTK_CLIST (clist), 2, GTK_JUSTIFY_CENTER);
|
||||
gtk_clist_set_column_justification (GTK_CLIST (clist), 1,
|
||||
GTK_JUSTIFY_RIGHT);
|
||||
gtk_clist_set_column_justification (GTK_CLIST (clist), 2,
|
||||
GTK_JUSTIFY_CENTER);
|
||||
|
||||
for (i = 0; i < TESTGTK_CLIST_COLUMNS; i++)
|
||||
{
|
||||
@ -3481,7 +3562,7 @@ create_clist (void)
|
||||
sprintf (text[1], "Right");
|
||||
sprintf (text[2], "Center");
|
||||
|
||||
for (i = 0; i < 100; i++)
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
sprintf (text[0], "Row %d", clist_rows++);
|
||||
gtk_clist_append (GTK_CLIST (clist), texts);
|
||||
@ -3489,17 +3570,13 @@ create_clist (void)
|
||||
|
||||
gtk_container_border_width (GTK_CONTAINER (clist), 5);
|
||||
gtk_box_pack_start (GTK_BOX (box2), clist, TRUE, TRUE, 0);
|
||||
gtk_widget_show (clist);
|
||||
|
||||
|
||||
separator = gtk_hseparator_new ();
|
||||
gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
|
||||
gtk_widget_show (separator);
|
||||
|
||||
box2 = gtk_vbox_new (FALSE, 10);
|
||||
gtk_container_border_width (GTK_CONTAINER (box2), 10);
|
||||
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
|
||||
gtk_widget_show (box2);
|
||||
|
||||
button = gtk_button_new_with_label ("close");
|
||||
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
|
||||
@ -3509,21 +3586,17 @@ create_clist (void)
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
|
||||
gtk_widget_grab_default (button);
|
||||
|
||||
gtk_widget_show (button);
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (window))
|
||||
gtk_widget_show (window);
|
||||
gtk_widget_show_all (window);
|
||||
else
|
||||
{
|
||||
clist_rows = 0;
|
||||
gtk_widget_destroy (window);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* GtkCTree
|
||||
*/
|
||||
@ -3621,26 +3694,6 @@ static GtkWidget *spin2;
|
||||
static GtkWidget *spin3;
|
||||
static GdkColor *col_bg;
|
||||
|
||||
#define RADIOMENUTOGGLED(_rmi_, __i) { \
|
||||
GSList * __g; \
|
||||
__i = 0; \
|
||||
__g = gtk_radio_menu_item_group(_rmi_); \
|
||||
while( __g && !((GtkCheckMenuItem *)(__g->data))->active) { \
|
||||
__g = __g->next; \
|
||||
__i++; \
|
||||
}\
|
||||
}
|
||||
|
||||
#define RADIOBUTTONTOGGLED(_rb_, __i) { \
|
||||
GSList * __g; \
|
||||
__i = 0; \
|
||||
__g = gtk_radio_button_group(_rb_); \
|
||||
while( __g && !((GtkToggleButton *)(__g->data))->active) { \
|
||||
__g = __g->next; \
|
||||
__i++; \
|
||||
}\
|
||||
}
|
||||
|
||||
void after_press (GtkCTree *ctree, gpointer data)
|
||||
{
|
||||
char buf[80];
|
||||
@ -3708,7 +3761,7 @@ gint button_press (GtkCTree *ctree, GdkEventButton *event, gpointer data)
|
||||
else
|
||||
gtk_ctree_expand_recursive (ctree, work);
|
||||
after_press (ctree, NULL);
|
||||
gtk_signal_emit_stop_by_name (GTK_OBJECT (ctree),
|
||||
gtk_signal_emit_stop_by_name (GTK_OBJECT (ctree),
|
||||
"button_press_event");
|
||||
}
|
||||
break;
|
||||
@ -3907,7 +3960,7 @@ void toggle_sel_mode (GtkWidget *widget, GtkCTree *ctree)
|
||||
RADIOMENUTOGGLED ((GtkRadioMenuItem *)
|
||||
(((GtkOptionMenu *)omenu)->menu_item), i);
|
||||
|
||||
gtk_ctree_set_selection_mode (ctree, (GtkSelectionMode) (3-i));
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (ctree), (GtkSelectionMode) (3-i));
|
||||
after_press (ctree, NULL);
|
||||
}
|
||||
|
||||
@ -3996,14 +4049,14 @@ void rebuild_tree (GtkWidget *widget, GtkCTree *ctree)
|
||||
|
||||
n = ((pow (b, d) - 1) / (b - 1)) * (p + 1);
|
||||
|
||||
if (n > 200000)
|
||||
if (n > 100000)
|
||||
{
|
||||
g_print ("%d total items? Try less\n",n);
|
||||
return;
|
||||
}
|
||||
|
||||
gtk_clist_freeze (GTK_CLIST (ctree));
|
||||
gtk_ctree_clear (ctree);
|
||||
gtk_clist_clear (GTK_CLIST (ctree));
|
||||
|
||||
books = 1;
|
||||
pages = 0;
|
||||
@ -4117,9 +4170,20 @@ void create_ctree (void)
|
||||
GTK_SIGNAL_FUNC (after_press), NULL);
|
||||
gtk_signal_connect_after (GTK_OBJECT (ctree), "tree_move",
|
||||
GTK_SIGNAL_FUNC (after_move), NULL);
|
||||
gtk_signal_connect_after (GTK_OBJECT (ctree), "end_selection",
|
||||
GTK_SIGNAL_FUNC (after_press), NULL);
|
||||
gtk_signal_connect_after (GTK_OBJECT (ctree), "toggle_focus_row",
|
||||
GTK_SIGNAL_FUNC (after_press), NULL);
|
||||
gtk_signal_connect_after (GTK_OBJECT (ctree), "select_all",
|
||||
GTK_SIGNAL_FUNC (after_press), NULL);
|
||||
gtk_signal_connect_after (GTK_OBJECT (ctree), "unselect_all",
|
||||
GTK_SIGNAL_FUNC (after_press), NULL);
|
||||
gtk_signal_connect_after (GTK_OBJECT (ctree), "scroll_vertical",
|
||||
GTK_SIGNAL_FUNC (after_press), NULL);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (ctree), TRUE, TRUE, 0);
|
||||
gtk_clist_column_titles_passive (GTK_CLIST (ctree));
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (ctree), GTK_SELECTION_MULTIPLE);
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (ctree), GTK_SELECTION_EXTENDED);
|
||||
gtk_clist_set_policy (GTK_CLIST (ctree), GTK_POLICY_ALWAYS,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_clist_set_column_width (GTK_CLIST (ctree), 0, 200);
|
||||
@ -4299,7 +4363,6 @@ void create_ctree (void)
|
||||
GTK_SIGNAL_FUNC (toggle_sel_mode), ctree);
|
||||
group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item));
|
||||
gtk_menu_append (GTK_MENU (menu), menu_item);
|
||||
gtk_check_menu_item_set_state (GTK_CHECK_MENU_ITEM (menu_item), TRUE);
|
||||
gtk_widget_show (menu_item);
|
||||
|
||||
menu_item = gtk_radio_menu_item_new_with_label (group, "Extended");
|
||||
@ -4307,12 +4370,13 @@ void create_ctree (void)
|
||||
GTK_SIGNAL_FUNC (toggle_sel_mode), ctree);
|
||||
group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item));
|
||||
gtk_menu_append (GTK_MENU (menu), menu_item);
|
||||
gtk_check_menu_item_set_state (GTK_CHECK_MENU_ITEM (menu_item), TRUE);
|
||||
gtk_widget_show (menu_item);
|
||||
|
||||
gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), omenu, FALSE, TRUE, 0);
|
||||
|
||||
gtk_option_menu_set_history (GTK_OPTION_MENU (omenu), 2);
|
||||
gtk_option_menu_set_history (GTK_OPTION_MENU (omenu), 3);
|
||||
|
||||
gtk_widget_realize (window);
|
||||
|
||||
@ -4403,7 +4467,6 @@ void create_ctree (void)
|
||||
gtk_widget_destroy (window);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* GtkColorSelect
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user