summaryrefslogtreecommitdiff
path: root/iup/src/iup_tree.h
diff options
context:
space:
mode:
Diffstat (limited to 'iup/src/iup_tree.h')
-rwxr-xr-xiup/src/iup_tree.h36
1 files changed, 34 insertions, 2 deletions
diff --git a/iup/src/iup_tree.h b/iup/src/iup_tree.h
index f96a698..44acc83 100755
--- a/iup/src/iup_tree.h
+++ b/iup/src/iup_tree.h
@@ -29,6 +29,36 @@ void iupdrvTreeUpdateMarkMode(Ihandle *ih);
char* iupTreeGetSpacingAttrib(Ihandle* ih);
+#if defined(GTK_MAJOR_VERSION)
+typedef void InodeHandle;
+#elif defined(XmVERSION)
+typedef struct _WidgetRec InodeHandle;
+#elif defined(WINVER)
+typedef struct _TREEITEM InodeHandle;
+#else
+typedef struct _InodeData InodeHandle;
+#endif
+
+typedef struct _InodeData
+{
+ InodeHandle* node_handle;
+ void* userdata;
+} InodeData;
+
+typedef int (*iupTreeNodeFunc)(Ihandle* ih, InodeHandle* node_handle, int id, void* userdata);
+int iupTreeForEach(Ihandle* ih, iupTreeNodeFunc func, void* userdata);
+InodeHandle* iupTreeGetNode(Ihandle* ih, int id);
+InodeHandle* iupTreeGetNodeFromString(Ihandle* ih, const char* name_id);
+int iupTreeFindNodeId(Ihandle* ih, InodeHandle* node_handle);
+
+InodeHandle* iupdrvTreeGetFocusNode(Ihandle* ih);
+int iupdrvTreeTotalChildCount(Ihandle* ih, InodeHandle* node_handle);
+void iupTreeSelectLastCollapsedBranch(Ihandle* ih, int *last_id);
+
+void iupTreeDelFromCache(Ihandle* ih, int id, int count);
+void iupTreeAddToCache(Ihandle* ih, int add, int kindPrev, InodeHandle* prevNode, InodeHandle* node_handle);
+void iupTreeCopyMoveCache(Ihandle* ih, int id_src, int id_dst, int count, int is_copy);
+
/* Structure of the tree */
struct _IcontrolData
{
@@ -36,6 +66,7 @@ struct _IcontrolData
add_expanded,
show_dragdrop,
show_rename,
+ stamp, /* GTK only */
spacing;
void* def_image_leaf; /* Default image leaf */
@@ -44,9 +75,10 @@ struct _IcontrolData
void* def_image_leaf_mask; /* Motif Only */
void* def_image_collapsed_mask;
- void* def_image_expanded_mask;
+ void* def_image_expanded_mask;
- int id_control; /* auxiliary variable for computing or finding the id of a node */
+ InodeData *node_cache;
+ int node_cache_max, node_count;
};