Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

wxTreeCtrl (3erl)

Name

wxTreeCtrl - Functions for wxTreeCtrl class

Synopsis

Please see following description for synopsis

Description

wxTreeCtrl(3)              Erlang Module Definition              wxTreeCtrl(3)



NAME
       wxTreeCtrl - Functions for wxTreeCtrl class

DESCRIPTION
       A tree control presents information as a hierarchy, with items that may
       be expanded to show further items. Items in a tree control  are  refer-
       enced  by  wxTreeItemId  (not  implemented in wx) handles, which may be
       tested for validity by calling wxTreeItemId::IsOk() (not implemented in
       wx).

       A similar control with a fully native implementation for GTK+ and macOS
       as well is wxDataViewTreeCtrl (not implemented in wx).

       To intercept events from a tree control, use  the  event  table  macros
       described in wxTreeEvent.

       Styles

       This class supports the following styles:

       See also overview_windowstyles.

       Win32 notes:

       wxTreeCtrl  class uses the standard common treeview control under Win32
       implemented in the system library comctl32.dll. Some versions  of  this
       library  are known to have bugs with handling the tree control colours:
       the usual symptom is that the expanded items leave black (or  otherwise
       incorrectly  coloured)  background behind them, especially for the con-
       trols using non-default background colour. The recommended solution  is
       to  upgrade  the comctl32.dll to a newer version: see http://www.micro-
       soft.com/downloads/details.aspx?fami-
       lyid=cb2cf3a2-8025-4e8f-8511-9b476a8d35d2

       See: wxDataViewTreeCtrl (not implemented in wx), wxTreeEvent, wxTreeIt-
       emData (not implemented in wx), Overview treectrl, wxListBox,  wxListC-
       trl, wxImageList

       This  class is derived (and can use functions) from: wxControl wxWindow
       wxEvtHandler

       wxWidgets docs: wxTreeCtrl

EVENTS
       Event types emitted  from  this  class:  command_tree_begin_drag,  com-
       mand_tree_begin_rdrag,            command_tree_end_drag,           com-
       mand_tree_begin_label_edit,      command_tree_end_label_edit,      com-
       mand_tree_delete_item,   command_tree_get_info,  command_tree_set_info,
       command_tree_item_activated,     command_tree_item_collapsed,      com-
       mand_tree_item_collapsing,       command_tree_item_expanded,       com-
       mand_tree_item_expanding,      command_tree_item_right_click,      com-
       mand_tree_item_middle_click,       command_tree_sel_changed,       com-
       mand_tree_sel_changing,  command_tree_key_down,  command_tree_item_get-
       tooltip, command_tree_item_menu, command_tree_state_image_click

DATA TYPES
       wxTreeCtrl() = wx:wx_object()

EXPORTS
       new() -> wxTreeCtrl()

              Default Constructor.

       new(Parent) -> wxTreeCtrl()

              Types:

                 Parent = wxWindow:wxWindow()

       new(Parent, Options :: [Option]) -> wxTreeCtrl()

              Types:

                 Parent = wxWindow:wxWindow()
                 Option =
                     {id, integer()} |
                     {pos, {X :: integer(), Y :: integer()}} |
                     {size, {W :: integer(), H :: integer()}} |
                     {style, integer()} |
                     {validator, wx:wx_object()}

              Constructor, creating and showing a tree control.

              See: create/3, wxValidator (not implemented in wx)

       destroy(This :: wxTreeCtrl()) -> ok

              Destructor, destroying the tree control.

       addRoot(This, Text) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Text = unicode:chardata()

       addRoot(This, Text, Options :: [Option]) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Text = unicode:chardata()
                 Option =
                     {image, integer()} |
                     {selectedImage, integer()} |
                     {data, term()}

              Adds the root node to the tree, returning the new item.

              The image and selImage parameters are an index within the normal
              image list specifying  the  image  to  use  for  unselected  and
              selected  items, respectively. If image > -1 and selImage is -1,
              the same image is used for both selected and unselected items.

       appendItem(This, Parent, Text) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Parent = integer()
                 Text = unicode:chardata()

       appendItem(This, Parent, Text, Options :: [Option]) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Parent = integer()
                 Text = unicode:chardata()
                 Option =
                     {image, integer()} |
                     {selectedImage, integer()} |
                     {data, term()}

              Appends an item to the end of the branch identified  by  parent,
              return a new item id.

              The image and selImage parameters are an index within the normal
              image list specifying  the  image  to  use  for  unselected  and
              selected  items, respectively. If image > -1 and selImage is -1,
              the same image is used for both selected and unselected items.

       assignImageList(This, ImageList) -> ok

              Types:

                 This = wxTreeCtrl()
                 ImageList = wxImageList:wxImageList()

              Sets the normal image list.

              The image list assigned with this method will  be  automatically
              deleted by wxTreeCtrl as appropriate (i.e. it takes ownership of
              the list).

              See: setImageList/2

       assignStateImageList(This, ImageList) -> ok

              Types:

                 This = wxTreeCtrl()
                 ImageList = wxImageList:wxImageList()

              Sets the state image list.

              Image list assigned  with  this  method  will  be  automatically
              deleted by wxTreeCtrl as appropriate (i.e. it takes ownership of
              the list).

              See: setStateImageList/2

       collapse(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Collapses the given item.

       collapseAndReset(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Collapses the given item and removes all children.

       create(This, Parent) -> boolean()

              Types:

                 This = wxTreeCtrl()
                 Parent = wxWindow:wxWindow()

       create(This, Parent, Options :: [Option]) -> boolean()

              Types:

                 This = wxTreeCtrl()
                 Parent = wxWindow:wxWindow()
                 Option =
                     {id, integer()} |
                     {pos, {X :: integer(), Y :: integer()}} |
                     {size, {W :: integer(), H :: integer()}} |
                     {style, integer()} |
                     {validator, wx:wx_object()}

              Creates the tree control.

              See new/2 for further details.

       delete(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Deletes the specified item.

              A EVT_TREE_DELETE_ITEM event will be generated.

              This function may cause a subsequent call to  getNextChild/3  to
              fail.

       deleteAllItems(This) -> ok

              Types:

                 This = wxTreeCtrl()

              Deletes all items in the control.

              This  function  generates wxEVT_TREE_DELETE_ITEM events for each
              item being deleted, including the root one if it is shown,  i.e.
              unless wxTR_HIDE_ROOT style is used.

       deleteChildren(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Deletes  all  children  of  the  given  item  (but  not the item
              itself).

              A wxEVT_TREE_DELETE_ITEM event will be generated for every  item
              being deleted.

              If you have called setItemHasChildren/3, you may need to call it
              again since deleteChildren/2 does not  automatically  clear  the
              setting.

       editLabel(This, Item) -> wxTextCtrl:wxTextCtrl()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Starts editing the label of the given item.

              This  function generates a EVT_TREE_BEGIN_LABEL_EDIT event which
              can be vetoed so that no text control will appear  for  in-place
              editing.

              If  the  user changed the label (i.e. s/he does not press ESC or
              leave    the     text     control     without     changes,     a
              EVT_TREE_END_LABEL_EDIT  event  will be sent which can be vetoed
              as well.

              See: EndEditLabel() (not implemented in wx), wxTreeEvent

       ensureVisible(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Scrolls and/or expands items to ensure that the  given  item  is
              visible.

              This method can be used, and will work, even while the window is
              frozen (see wxWindow:freeze/1).

       expand(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Expands the given item.

       getBoundingRect(This, Item) -> Result

              Types:

                 Result =
                     {Res :: boolean(),
                      Rect ::
                          {X :: integer(),
                           Y :: integer(),
                           W :: integer(),
                           H :: integer()}}
                 This = wxTreeCtrl()
                 Item = integer()

       getBoundingRect(This, Item, Options :: [Option]) -> Result

              Types:

                 Result =
                     {Res :: boolean(),
                      Rect ::
                          {X :: integer(),
                           Y :: integer(),
                           W :: integer(),
                           H :: integer()}}
                 This = wxTreeCtrl()
                 Item = integer()
                 Option = {textOnly, boolean()}

              Retrieves the rectangle bounding the item.

              If textOnly is true, only the rectangle around the item's  label
              will  be returned, otherwise the item's image is also taken into
              account.

              The return value is  true  if  the  rectangle  was  successfully
              retrieved  or  false  if  it  was  not (in this case rect is not
              changed) - for example, if the item is currently invisible.

              Notice that the rectangle coordinates are logical, not  physical
              ones.  So,  for example, the x coordinate may be negative if the
              tree has a horizontal scrollbar and its position is not 0.

       getChildrenCount(This, Item) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

       getChildrenCount(This, Item, Options :: [Option]) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()
                 Option = {recursively, boolean()}

              Returns the number of items in the branch.

              If recursively is true, returns the total number of descendants,
              otherwise only one level of children is counted.

       getCount(This) -> integer()

              Types:

                 This = wxTreeCtrl()

              Returns the number of items in the control.

       getEditControl(This) -> wxTextCtrl:wxTextCtrl()

              Types:

                 This = wxTreeCtrl()

              Returns the edit control being currently used to edit a label.

              Returns NULL if no label is being edited.

              Note: This is currently only implemented for wxMSW.

       getFirstChild(This, Item) -> Result

              Types:

                 Result = {Res :: integer(), Cookie :: integer()}
                 This = wxTreeCtrl()
                 Item = integer()

              Returns the first child; call getNextChild/3 for the next child.

              For this enumeration function you must pass in a 'cookie' param-
              eter which is opaque for the application but  is  necessary  for
              the  library  to make these functions reentrant (i.e. allow more
              than one enumeration on one and the same object simultaneously).
              The  cookie  passed to getFirstChild/2 and getNextChild/3 should
              be the same variable.

              Returns an invalid tree  item  (i.e.  wxTreeItemId::IsOk()  (not
              implemented  in wx) returns false) if there are no further chil-
              dren.

              See: getNextChild/3, getNextSibling/2

       getNextChild(This, Item, Cookie) -> Result

              Types:

                 Result = {Res :: integer(), Cookie :: integer()}
                 This = wxTreeCtrl()
                 Item = Cookie = integer()

              Returns the next  child;  call  getFirstChild/2  for  the  first
              child.

              For this enumeration function you must pass in a 'cookie' param-
              eter which is opaque for the application but  is  necessary  for
              the  library  to make these functions reentrant (i.e. allow more
              than one enumeration on one and the same object simultaneously).
              The  cookie  passed to getFirstChild/2 and getNextChild/3 should
              be the same.

              Returns an invalid tree item if there are no further children.

              See: getFirstChild/2

       getFirstVisibleItem(This) -> integer()

              Types:

                 This = wxTreeCtrl()

              Returns the first visible item.

       getImageList(This) -> wxImageList:wxImageList()

              Types:

                 This = wxTreeCtrl()

              Returns the normal image list.

       getIndent(This) -> integer()

              Types:

                 This = wxTreeCtrl()

              Returns the current tree control indentation.

       getItemBackgroundColour(This, Item) -> wx:wx_colour4()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns the background colour of the item.

       getItemData(This, Item) -> term()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns the tree item data associated with the item.

              See: wxTreeItemData (not implemented in wx)

       getItemFont(This, Item) -> wxFont:wxFont()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns the font of the item label.

              If the font hadn't been explicitly set for  the  specified  item
              with  setItemFont/3, returns an invalid ?wxNullFont font. wxWin-
              dow:getFont/1 can be used to retrieve the  global  tree  control
              font used for the items without any specific font.

       getItemImage(This, Item) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

       getItemImage(This, Item, Options :: [Option]) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()
                 Option = {which, wx:wx_enum()}

              Gets the specified item image.

              The value of which may be:

       getItemText(This, Item) -> unicode:charlist()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns the item label.

       getItemTextColour(This, Item) -> wx:wx_colour4()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns the colour of the item label.

       getLastChild(This, Item) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns  the  last child of the item (or an invalid tree item if
              this item has no children).

              See: getFirstChild/2, getNextSibling/2, getLastChild/2

       getNextSibling(This, Item) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns the next sibling of the specified item; call getPrevSib-
              ling/2 for the previous sibling.

              Returns an invalid tree item if there are no further siblings.

              See: getPrevSibling/2

       getNextVisible(This, Item) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns the next visible item or an invalid item if this item is
              the last visible one.

              Note: The item itself must be visible.

       getItemParent(This, Item) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns the item's parent.

       getPrevSibling(This, Item) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns the previous sibling of the specified  item;  call  get-
              NextSibling/2 for the next sibling.

              Returns an invalid tree item if there are no further children.

              See: getNextSibling/2

       getPrevVisible(This, Item) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns  the  previous  visible  item or an invalid item if this
              item is the first visible one.

              Note: The item itself must be visible.

       getRootItem(This) -> integer()

              Types:

                 This = wxTreeCtrl()

              Returns the root item for the tree control.

       getSelection(This) -> integer()

              Types:

                 This = wxTreeCtrl()

              Returns the selection, or an invalid item if there is no  selec-
              tion.

              This function only works with the controls without wxTR_MULTIPLE
              style, use getSelections/1 for the controls which do  have  this
              style  or, if a single item is wanted, use GetFocusedItem() (not
              implemented in wx).

       getSelections(This) -> Result

              Types:

                 Result = {Res :: integer(), Selection :: [integer()]}
                 This = wxTreeCtrl()

              Fills the array of tree  items  passed  in  with  the  currently
              selected items.

              This  function  can  be  called  only  if  the  control  has the
              wxTR_MULTIPLE style.

              Returns the number of selected items.

       getStateImageList(This) -> wxImageList:wxImageList()

              Types:

                 This = wxTreeCtrl()

              Returns the state image  list  (from  which  application-defined
              state images are taken).

       hitTest(This, Point) -> Result

              Types:

                 Result = {Res :: integer(), Flags :: integer()}
                 This = wxTreeCtrl()
                 Point = {X :: integer(), Y :: integer()}

              Calculates which (if any) item is under the given point, return-
              ing the tree item id at this point plus extra information flags.

              flags is a bitlist of the following:

       insertItem(This, Parent, Previous, Text) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Parent = Previous = integer()
                 Text = unicode:chardata()

       insertItem(This, Parent, Previous, Text, Options :: [Option]) ->
                     integer()

              Types:

                 This = wxTreeCtrl()
                 Parent = Previous = integer()
                 Text = unicode:chardata()
                 Option =
                     {image,  integer()}  |  {selImage,  integer()}  |  {data,
                 term()}

              Inserts an item after a given one (previous).

              The image and selImage parameters are an index within the normal
              image list specifying  the  image  to  use  for  unselected  and
              selected  items, respectively. If image > -1 and selImage is -1,
              the same image is used for both selected and unselected items.

       isBold(This, Item) -> boolean()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns true if the given item is in bold state.

              See: setItemBold/3

       isExpanded(This, Item) -> boolean()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns true if the item is expanded (only makes sense if it has
              children).

       isSelected(This, Item) -> boolean()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns true if the item is selected.

       isVisible(This, Item) -> boolean()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns true if the item is visible on the screen.

       itemHasChildren(This, Item) -> boolean()

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Returns true if the item has children.

       isTreeItemIdOk(Item) -> boolean()

              Types:

                 Item = integer()

              Returns true if the item is valid.

       prependItem(This, Parent, Text) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Parent = integer()
                 Text = unicode:chardata()

       prependItem(This, Parent, Text, Options :: [Option]) -> integer()

              Types:

                 This = wxTreeCtrl()
                 Parent = integer()
                 Text = unicode:chardata()
                 Option =
                     {image, integer()} |
                     {selectedImage, integer()} |
                     {data, term()}

              Appends  an item as the first child of parent, return a new item
              id.

              The image and selImage parameters are an index within the normal
              image  list  specifying  the  image  to  use  for unselected and
              selected items, respectively. If image > -1 and selImage is  -1,
              the same image is used for both selected and unselected items.

       scrollTo(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Scrolls the specified item into view.

              Note  that  this  method doesn't work while the window is frozen
              (See wxWindow:freeze/1), at least under MSW.

              See: ensureVisible/2

       selectItem(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

       selectItem(This, Item, Options :: [Option]) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()
                 Option = {select, boolean()}

              Selects the given item.

              In multiple selection controls, can be also used to  deselect  a
              currently selected item if the value of select is false.

              Notice     that    calling    this    method    will    generate
              wxEVT_TREE_SEL_CHANGING and  wxEVT_TREE_SEL_CHANGED  events  and
              that the change could be vetoed by the former event handler.

       setIndent(This, Indent) -> ok

              Types:

                 This = wxTreeCtrl()
                 Indent = integer()

              Sets the indentation for the tree control.

       setImageList(This, ImageList) -> ok

              Types:

                 This = wxTreeCtrl()
                 ImageList = wxImageList:wxImageList()

              Sets the normal image list.

              The  image list assigned with this method will not be deleted by
              wxTreeCtrl's destructor, you must delete it yourself.

              See: assignImageList/2

       setItemBackgroundColour(This, Item, Col) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()
                 Col = wx:wx_colour()

              Sets the colour of the item's background.

       setItemBold(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

       setItemBold(This, Item, Options :: [Option]) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()
                 Option = {bold, boolean()}

              Makes item appear in bold font if  bold  parameter  is  true  or
              resets it to the normal state.

              See: isBold/2

       setItemData(This, Item, Data) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()
                 Data = term()

              Sets the item client data.

              Notice  that the client data previously associated with the item
              (if any) is not freed by this function and so calling this func-
              tion  multiple  times  for  the  same item will result in memory
              leaks unless you delete the old item data pointer yourself.

       setItemDropHighlight(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

       setItemDropHighlight(This, Item, Options :: [Option]) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()
                 Option = {highlight, boolean()}

              Gives the item the  visual  feedback  for  Drag'n'Drop  actions,
              which  is  useful  if something is dragged from the outside onto
              the tree control (as opposed to a DnD operation within the  tree
              control, which already is implemented internally).

       setItemFont(This, Item, Font) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()
                 Font = wxFont:wxFont()

              Sets the item's font.

              All  items in the tree should have the same height to avoid text
              clipping, so the fonts height should be  the  same  for  all  of
              them, although font attributes may vary.

              See: setItemBold/3

       setItemHasChildren(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

       setItemHasChildren(This, Item, Options :: [Option]) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()
                 Option = {has, boolean()}

              Force appearance of the button next to the item.

              This is useful to allow the user to expand the items which don't
              have any children now, but instead adding them only when needed,
              thus minimizing memory usage and loading time.

       setItemImage(This, Item, Image) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = Image = integer()

       setItemImage(This, Item, Image, Options :: [Option]) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = Image = integer()
                 Option = {which, wx:wx_enum()}

              Sets the specified item's image.

              See getItemImage/3 for the description of the which parameter.

       setItemText(This, Item, Text) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()
                 Text = unicode:chardata()

              Sets the item label.

       setItemTextColour(This, Item, Col) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()
                 Col = wx:wx_colour()

              Sets the colour of the item's text.

       setStateImageList(This, ImageList) -> ok

              Types:

                 This = wxTreeCtrl()
                 ImageList = wxImageList:wxImageList()

              Sets  the state image list (from which application-defined state
              images are taken).

              Image list assigned with this method  will  not  be  deleted  by
              wxTreeCtrl's destructor, you must delete it yourself.

              See: assignStateImageList/2

       setWindowStyle(This, Styles) -> ok

              Types:

                 This = wxTreeCtrl()
                 Styles = integer()

              Sets the mode flags associated with the display of the tree con-
              trol.

              The new mode takes effect immediately.

              Note: Generic only; MSW ignores changes.

       sortChildren(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Sorts the children of the given item using OnCompareItems() (not
              implemented in wx).

              You  should  override  that method to change the sort order (the
              default is ascending case-sensitive alphabetical order).

              See: wxTreeItemData (not implemented  in  wx),  OnCompareItems()
              (not implemented in wx)

       toggle(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Toggles the given item between collapsed and expanded states.

       toggleItemSelection(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Toggles the given item between selected and unselected states.

              For multiselection controls only.

       unselect(This) -> ok

              Types:

                 This = wxTreeCtrl()

              Removes the selection from the currently selected item (if any).

       unselectAll(This) -> ok

              Types:

                 This = wxTreeCtrl()

              This  function either behaves the same as unselect/1 if the con-
              trol doesn't have wxTR_MULTIPLE style, or removes the  selection
              from all items if it does have this style.

       unselectItem(This, Item) -> ok

              Types:

                 This = wxTreeCtrl()
                 Item = integer()

              Unselects the given item.

              This works in multiselection controls only.



wxWidgets team.                    wx 2.1.1                      wxTreeCtrl(3)