Provides a wrapper for GtkTreeModel basically it stores data to be viewed with a VDKTreeView.
More...
#include <vdktreeview.h>
List of all members.
Public Member Functions
- GtkTreeStore * GtkModel ()
- VDKTreeViewModel (GType *types, int ncol)
- ~VDKTreeViewModel ()
- void AppendBlank (GtkTreeIter *iter, GtkTreeIter *parent=NULL)
- void PrependBlank (GtkTreeIter *iter, GtkTreeIter *parent=NULL)
- void InsertTuple (GtkTreeIter *iter, VDKTreeViewModelTuple &tuple, GtkTreeIter *parent=NULL, bool recurse=false)
- void Clear ()
- void Remove (GtkTreeIter *i)
- void SetData (GtkTreeIter *node,...)
- void SetCell (GtkTreeIter *node, int column, const char *value)
- char * GetCell (GtkTreeIter *node, int column)
- void GetTuple (GtkTreeIter *node, VDKTreeViewModelTuple &tuple)
- bool HasChild ()
- void operator++ ()
- void operator++ (int)
Detailed Description
Provides a wrapper for GtkTreeModel basically it stores data to be viewed with a VDKTreeView.
Constructor & Destructor Documentation
VDKTreeViewModel::VDKTreeViewModel |
( |
GType * |
types, |
|
|
int |
ncol |
|
) |
| |
constructor
- Parameters:
-
types | a GType array |
ncol | the number of columns into the model |
VDKTreeViewModel::~VDKTreeViewModel |
( |
| ) |
|
Member Function Documentation
void VDKTreeViewModel::AppendBlank |
( |
GtkTreeIter * |
iter, |
|
|
GtkTreeIter * |
parent = NULL |
|
) |
| |
Appends a new blank tree row
- Parameters:
-
iter | a not initialized iter address that will be filled with newly constructed tree row |
parent | if not NULL the row will appended as a child otherwise it will be appended as a sibling. TIP:
- appending all rows as sibling will degenerate the tree into a list
GtkTreeIter iter;
model->AppendBlank();
model->SetData(&iter,...);
|
void VDKTreeViewModel::Clear |
( |
| ) |
|
char * VDKTreeViewModel::GetCell |
( |
GtkTreeIter * |
node, |
|
|
int |
column |
|
) |
| |
Get data from a cell, data type will be converted into their string representation accordlying with GType.
- Parameters:
-
node | iterator to be retrieved |
column | cell column |
Supported GType's:
- G_TYPE_CHAR
- G_TYPE_STRING
- G_TYPE_BOOLEAN
- G_TYPE_INT
- G_TYPE_UINT
- G_TYPE_LONG
- G_TYPE_ULONG
- G_TYPE_FLOAT
- G_TYPE_DOUBLE
Tip: Returned buffer address should be freed by user if not NULL.
bool
TvForm::OnTreeViewSelectRow(VDKObject* sender)
{
treeview->GetSelections();
if(treeview->Selections().size() == 1)
{
VDKTreeViewModel* model = treeview->Model;
GtkTreeIter iter = treeview->Selections()[0];
char* firstname = model->GetCell(&iter,0);
char* lastname = model->GetCell(&iter,1);
if(firstname && lastname)
{
printf("\n[%s %s]",firstname,lastname);
fflush(stdout);
delete[] firstname;
delete[] lastname;
}
}
treeview->Selections().flush();
return true;
}
Gets and fill a tuple with row data converted into their string representation
- Parameters:
-
node | iterator to be retrieved |
tuple | a tuple reference (tuple can be empty since it will be resized and filled by the method |
GtkTreeStore* VDKTreeViewModel::GtkModel |
( |
| ) |
[inline] |
Return underlying GtkTreeStore object
bool VDKTreeViewModel::HasChild |
( |
| ) |
|
Move iterator to root node
- Parameters:
-
iter | a not initialized iter address that will be filled with root node pointer |
GtkTreeIter iter;
if(model->Root(&iter))
{
char* cell = model->GetCell(&iter,0);
if(cell)
{
delete[] cell;
}
}
*/
bool Root(GtkTreeIter* iter);
bool Next(GtkTreeIter* iter);
bool HasChild(GtkTreeIter* iter)
{ return gtk_tree_model_iter_has_child (GTK_TREE_MODEL(model), iter); }
bool Child(GtkTreeIter* iter,GtkTreeIter* parent);
bool Find(GtkTreeIter* iter,int column, char* value);
};
class VDKTreeViewModelIterator
{
VDKTreeViewModel* model;
GtkTreeIter iter, *internal_iter;
public:
VDKTreeViewModelIterator(): model(NULL),internal_iter(NULL) {}
VDKTreeViewModelIterator(VDKTreeViewModel* model,GtkTreeIter* parent = NULL);
GtkTreeIter* current() { return internal_iter; }
operator int() { return internal_iter != NULL; }
void VDKTreeViewModel::InsertTuple |
( |
GtkTreeIter * |
iter, |
|
|
VDKTreeViewModelTuple & |
tuple, |
|
|
GtkTreeIter * |
parent = NULL , |
|
|
bool |
recurse = false |
|
) |
| |
Insert a tuple into model, tuple will be inserted in order.
- Parameters:
-
iter | a not initialized iter address that will be filled with newly constructed tree row |
tuple | to be inserted |
parent | if is NULL tuple will be inserted in order into top level nodes list otherwise will be inserted in order into parent children list |
recurse | if true scans children/sibling list recursively to search insertion position |
void VDKTreeViewModel::operator++ |
( |
| ) |
|
Incremental operator (postfix), visit next sibling node
void VDKTreeViewModel::operator++ |
( |
int |
| ) |
|
Incremental operator (infix), visit next sibling node
void VDKTreeViewModel::PrependBlank |
( |
GtkTreeIter * |
iter, |
|
|
GtkTreeIter * |
parent = NULL |
|
) |
| |
Prepends a new blank tree row
- Parameters:
-
iter | a not initialized iter address that will be filled with newly constructed tree row |
parent | if not NULL the row will prepended as a child otherwise it will be prepended as a sibling. TIP:
- prepending all rows as sibling will degenerate the tree into a list
|
void VDKTreeViewModel::Remove |
( |
GtkTreeIter * |
i | ) |
|
Removes the row at iter
- Parameters:
-
void VDKTreeViewModel::SetCell |
( |
GtkTreeIter * |
node, |
|
|
int |
column, |
|
|
const char * |
value |
|
) |
| |
Sets data into a cell
- Parameters:
-
node | the iterator to be set |
column | cell column |
value | a string representation of GType value that will be converted into a GType accordlying with the model |
Supported GType's:
- G_TYPE_CHAR
- G_TYPE_STRING
- G_TYPE_BOOLEAN
- G_TYPE_INT
- G_TYPE_UINT
- G_TYPE_LONG
- G_TYPE_ULONG
- G_TYPE_FLOAT
- G_TYPE_DOUBLE
void VDKTreeViewModel::SetData |
( |
GtkTreeIter * |
node, |
|
|
|
... |
|
) |
| |
Sets data into a row
- Parameters:
-
node | the iterator to be set |
a | list of pairs <column ordinal number,type value> the list must be -1 terminated. |
GtkTreeIter iter;
model->AppendBlank();
model->SetData(&iter, 0, "This is row 1", 1, FALSE, 2, NULL, -1);
The documentation for this class was generated from the following files: