29 #include <vdk/vdkobj.h>
30 #include <vdk/dlist.h>
31 #include <vdk/vdkprops.h>
32 #include <vdk/vdkarray.h>
33 #include <vdk/value_sem_list.h>
55 VDKReadWriteValueProp<VDKTreeViewModelTuple,int>
KeyIndex;
59 VDKReadWriteValueProp<VDKTreeViewModelTuple,VDKStringCompareFunction>
Less;
63 VDKReadWriteValueProp<VDKTreeViewModelTuple,VDKStringCompareFunction>
Equal;
75 VDKStringCompareFunction equal= NULL):
78 Less(
"Less",this,less),
79 Equal(
"Equal",this,equal)
107 VDKStringCompareFunction less =
Less;
109 return less((*
this)[key_index],t[key_index]);
111 return (*
this)[key_index] < t[key_index];
116 VDKStringCompareFunction equal =
Equal;
118 return equal((*
this)[key_index],t[key_index]);
120 return (*
this)[key_index] == t[key_index];
166 void AppendBlank(GtkTreeIter* iter,GtkTreeIter* parent = NULL);
181 void PrependBlank(GtkTreeIter* iter,GtkTreeIter* parent = NULL);
200 void Remove(GtkTreeIter* i);
213 void SetData(GtkTreeIter* node,...);
238 void SetCell(GtkTreeIter* node,
int column,
const char* value);
287 char *
GetCell(GtkTreeIter* node,
int column);
312 bool Root(GtkTreeIter* iter);
317 bool Next(GtkTreeIter* iter);
323 {
return gtk_tree_model_iter_has_child (GTK_TREE_MODEL(model), iter); }
331 bool Child(GtkTreeIter* iter,GtkTreeIter* parent);
351 bool Find(GtkTreeIter* iter,
int column,
char* value);
359 class VDKTreeViewModelIterator
362 GtkTreeIter iter, *internal_iter;
364 VDKTreeViewModelIterator(): model(NULL),internal_iter(NULL) {}
371 VDKTreeViewModelIterator(
VDKTreeViewModel* model,GtkTreeIter* parent = NULL);
375 GtkTreeIter* current() {
return internal_iter; }
379 operator int() {
return internal_iter != NULL; }
415 void operator++(
int);
425 static void edited_callback (GtkCellRendererText *cell,
429 static void toggled_callback (GtkCellRendererToggle *cell,
433 GtkCellRenderer *cell;
434 GtkTreeViewColumn *column;
436 gulong handler_seq_no;
450 VDKReadWriteValueProp<VDKTreeViewColumn,VDKFont*>
Font;
454 VDKReadWriteValueProp<VDKTreeViewColumn,const char*>
Title;
460 VDKReadWriteValueProp<VDKTreeViewColumn,int>
Width;
464 VDKReadWriteValueProp<VDKTreeViewColumn,bool>
Sortable;
534 bool editable =
false,
558 void SetNormalBackground(
VDKRgb rgb);
559 void SetForeground(
VDKRgb rgb);
561 void SetTitle(
const char* title);
562 const char* GetTitle();
563 void SetWidth(
int w);
565 void SetSortable(
bool flag);
570 typedef VDKListIterator<VDKTreeViewColumn> VDKTreeViewColumnListIterator;
587 GtkTreeModel* Model(GtkTreeModel* m = NULL) {
if(m) model = m;
return model; }
623 GtkTreeSelection *selection;
624 VDKTreeViewColumnList *columns;
625 VDKTreeViewIterList selections;
633 VDKReadWriteValueProp<VDKTreeView,VDKTreeViewModel*>
Model;
651 GtkSelectionMode mode = GTK_SELECTION_SINGLE);
665 VDKTreeViewColumnList *
Columns() {
return columns; }
691 void Expand(GtkTreeIter* iter = NULL,
bool expand_all =
false);
696 #ifdef USE_SIGCPLUSPLUS
710 VDKSignal3< void, GtkTreeIter*, int , char* > OnCellEdited;
724 VDKSignal3< void, GtkTreeIter*, int, bool> OnCellToggled;