gtktree.pp 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. {
  2. }
  3. {****************************************************************************
  4. Interface
  5. ****************************************************************************}
  6. {$ifdef read_interface}
  7. type
  8. TGtkTreeViewMode = longint;
  9. const
  10. GTK_TREE_VIEW_LINE = 0;
  11. GTK_TREE_VIEW_ITEM = 1;
  12. type
  13. PGtkTree = ^TGtkTree;
  14. TGtkTree = record
  15. container : TGtkContainer;
  16. children : PGList;
  17. root_tree : PGtkTree;
  18. tree_owner : PGtkWidget;
  19. selection : PGList;
  20. level : guint;
  21. indent_value : guint;
  22. current_indent : guint;
  23. flag0 : {$ifdef win32}longint{$else}word{$endif};
  24. end;
  25. const
  26. bm_TGtkTree_selection_mode = $3;
  27. bp_TGtkTree_selection_mode = 0;
  28. bm_TGtkTree_view_mode = $4;
  29. bp_TGtkTree_view_mode = 2;
  30. bm_TGtkTree_view_line = $8;
  31. bp_TGtkTree_view_line = 3;
  32. function selection_mode(var a : TGtkTree) : guint;
  33. procedure set_selection_mode(var a : TGtkTree; __selection_mode : guint);
  34. function view_mode(var a : TGtkTree) : guint;
  35. procedure set_view_mode(var a : TGtkTree; __view_mode : guint);
  36. function view_line(var a : TGtkTree) : guint;
  37. procedure set_view_line(var a : TGtkTree; __view_line : guint);
  38. type
  39. PGtkTreeClass = ^TGtkTreeClass;
  40. TGtkTreeClass = record
  41. parent_class : TGtkContainerClass;
  42. selection_changed : procedure (tree:PGtkTree); cdecl;
  43. select_child : procedure (tree:PGtkTree; child:PGtkWidget); cdecl;
  44. unselect_child : procedure (tree:PGtkTree; child:PGtkWidget); cdecl;
  45. end;
  46. Type
  47. GTK_TREE = PGtkTree;
  48. GTK_TREE_CLASS = PGtkTreeClass;
  49. function GTK_IS_ROOT_TREE(obj : PGtkTree) : gboolean;
  50. function GTK_TREE_ROOT_TREE(obj : PGtkTree) : PGtkTree;
  51. function GTK_TREE_SELECTION(obj : PGtkTree) : PGList;
  52. function gtk_tree_get_type:TGtkType;cdecl;external gtkdll name 'gtk_tree_get_type';
  53. function gtk_tree_new:PGtkWidget;cdecl;external gtkdll name 'gtk_tree_new';
  54. procedure gtk_tree_append(tree:PGtkTree; tree_item:PGtkWidget);cdecl;external gtkdll name 'gtk_tree_append';
  55. procedure gtk_tree_prepend(tree:PGtkTree; tree_item:PGtkWidget);cdecl;external gtkdll name 'gtk_tree_prepend';
  56. procedure gtk_tree_insert(tree:PGtkTree; tree_item:PGtkWidget; position:gint);cdecl;external gtkdll name 'gtk_tree_insert';
  57. procedure gtk_tree_remove_items(tree:PGtkTree; items:PGList);cdecl;external gtkdll name 'gtk_tree_remove_items';
  58. procedure gtk_tree_clear_items(tree:PGtkTree; start:gint; theend:gint);cdecl;external gtkdll name 'gtk_tree_clear_items';
  59. procedure gtk_tree_select_item(tree:PGtkTree; item:gint);cdecl;external gtkdll name 'gtk_tree_select_item';
  60. procedure gtk_tree_unselect_item(tree:PGtkTree; item:gint);cdecl;external gtkdll name 'gtk_tree_unselect_item';
  61. procedure gtk_tree_select_child(tree:PGtkTree; tree_item:PGtkWidget);cdecl;external gtkdll name 'gtk_tree_select_child';
  62. procedure gtk_tree_unselect_child(tree:PGtkTree; tree_item:PGtkWidget);cdecl;external gtkdll name 'gtk_tree_unselect_child';
  63. function gtk_tree_child_position(tree:PGtkTree; child:PGtkWidget):gint;cdecl;external gtkdll name 'gtk_tree_child_position';
  64. procedure gtk_tree_set_selection_mode(tree:PGtkTree; mode:TGtkSelectionMode);cdecl;external gtkdll name 'gtk_tree_set_selection_mode';
  65. procedure gtk_tree_set_view_mode(tree:PGtkTree; mode:TGtkTreeViewMode);cdecl;external gtkdll name 'gtk_tree_set_view_mode';
  66. procedure gtk_tree_set_view_lines(tree:PGtkTree; flag:guint);cdecl;external gtkdll name 'gtk_tree_set_view_lines';
  67. procedure gtk_tree_remove_item(tree:PGtkTree; child:PGtkWidget);cdecl;external gtkdll name 'gtk_tree_remove_item';
  68. {$endif read_interface}
  69. {****************************************************************************
  70. Implementation
  71. ****************************************************************************}
  72. {$ifdef read_implementation}
  73. function selection_mode(var a : TGtkTree) : guint;
  74. begin
  75. selection_mode:=(a.flag0 and bm_TGtkTree_selection_mode) shr bp_TGtkTree_selection_mode;
  76. end;
  77. procedure set_selection_mode(var a : TGtkTree; __selection_mode : guint);
  78. begin
  79. a.flag0:=a.flag0 or ((__selection_mode shl bp_TGtkTree_selection_mode) and bm_TGtkTree_selection_mode);
  80. end;
  81. function view_mode(var a : TGtkTree) : guint;
  82. begin
  83. view_mode:=(a.flag0 and bm_TGtkTree_view_mode) shr bp_TGtkTree_view_mode;
  84. end;
  85. procedure set_view_mode(var a : TGtkTree; __view_mode : guint);
  86. begin
  87. a.flag0:=a.flag0 or ((__view_mode shl bp_TGtkTree_view_mode) and bm_TGtkTree_view_mode);
  88. end;
  89. function view_line(var a : TGtkTree) : guint;
  90. begin
  91. view_line:=(a.flag0 and bm_TGtkTree_view_line) shr bp_TGtkTree_view_line;
  92. end;
  93. procedure set_view_line(var a : TGtkTree; __view_line : guint);
  94. begin
  95. a.flag0:=a.flag0 or ((__view_line shl bp_TGtkTree_view_line) and bm_TGtkTree_view_line);
  96. end;
  97. function GTK_IS_ROOT_TREE(obj : PGtkTree) : gboolean;
  98. begin
  99. GTK_IS_ROOT_TREE:=(obj^.root_tree=obj);
  100. end;
  101. function GTK_TREE_ROOT_TREE(obj : PGtkTree) : PGtkTree;
  102. begin
  103. if (GTK_TREE(obj))^.root_tree<>nil then
  104. GTK_TREE_ROOT_TREE:=(GTK_TREE(obj))^.root_tree
  105. else
  106. GTK_TREE_ROOT_TREE:=GTK_TREE(obj);
  107. end;
  108. function GTK_TREE_SELECTION(obj : PGtkTree) : PGList;
  109. begin
  110. GTK_TREE_SELECTION:=(GTK_TREE_ROOT_TREE(obj))^.selection;
  111. end;
  112. {$endif read_implementation}