Class: Tk::TreeCtrl

Inherits:
TkWindow show all
Includes:
Scrollable, ConfigMethod
Defined in:
lib/tkextlib/treectrl/tktreectrl.rb,
lib/tkextlib/treectrl/tktreectrl.rb

Defined Under Namespace

Modules: BindCallback, ConfigMethod Classes: BitmapElement, BorderElement, Column, Element, ImageElement, Item, NotifyEvent, RectangleElement, Style

Constant Summary collapse

BindTag_FileList =
TkBindTag.new_by_name('TreeCtrlFileList')
PACKAGE_NAME =
'treectrl'.freeze
HasColumnCreateCommand =
(TkPackage.vcompare(self.package_version, '1.1') >= 0)
TkCommandNames =
['treectrl'.freeze].freeze
WidgetClassName =
'TreeCtrl'.freeze

Constants included from TkUtil

TkUtil::None, TkUtil::RELEASE_DATE

Constants included from TkCore

TkCore::EventFlag, TkCore::INTERP, TkCore::INTERP_MUTEX, TkCore::INTERP_ROOT_CHECK, TkCore::INTERP_THREAD, TkCore::INTERP_THREAD_STATUS, TkCore::RUN_EVENTLOOP_ON_MAIN_THREAD, TkCore::WIDGET_DESTROY_HOOK, TkCore::WITH_ENCODING, TkCore::WITH_RUBY_VM

Constants included from TkComm

TkComm::GET_CONFIGINFO_AS_ARRAY, TkComm::GET_CONFIGINFOwoRES_AS_ARRAY, TkComm::TkExtlibAutoloadModule, TkComm::Tk_CMDTBL, TkComm::Tk_IDs, TkComm::Tk_WINDOWS, TkComm::USE_TCLs_LIST_FUNCTIONS, TkComm::WidgetClassNames

Constants included from Tk

AUTO_PATH, INTERP, JAPANIZED_TK, LIBRARY_PATH, MAINLOOP, PACKAGE_PATH, RELEASE_DATE, TCL_LIBRARY_PATH, TCL_MAJOR_VERSION, TCL_MINOR_VERSION, TCL_PACKAGE_PATH, TCL_PATCHLEVEL, TCL_PRECISION, TCL_VERSION, TK_MAJOR_VERSION, TK_MINOR_VERSION, TK_PATCHLEVEL, TK_VERSION, Tkextlib_RELEASE_DATE, TreeCtrl_Widget, X_Scrollable, Y_Scrollable

Constants included from Encoding

Encoding::BINARY, Encoding::BINARY_NAME, Encoding::DEFAULT_EXTERNAL_NAME, Encoding::DEFAULT_INTERNAL_NAME, Encoding::ENCODING_TABLE, Encoding::RubyEncoding, Encoding::UNKNOWN, Encoding::UTF8_NAME

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Scrollable

#autoscroll, #unautoscroll

Methods included from YScrollable

#yscrollbar, #yscrollcommand, #yview, #yview_moveto, #yview_scroll

Methods included from XScrollable

#xscrollbar, #xscrollcommand, #xview, #xview_moveto, #xview_scroll

Methods included from ConfigMethod

#column_cget, #column_cget_strict, #column_cget_tkstring, #column_configinfo, #column_configure, #column_dragcget, #column_dragcget_strict, #column_dragcget_tkstring, #column_dragconfiginfo, #column_dragconfigure, #current_column_configinfo, #current_column_dragconfiginfo, #current_debug_configinfo, #current_dragimage_configinfo, #current_element_configinfo, #current_item_configinfo, #current_item_element_configinfo, #current_marquee_configinfo, #current_notify_configinfo, #current_style_configinfo, #debug_cget, #debug_cget_strict, #debug_cget_tkstring, #debug_configinfo, #debug_configure, #dragimage_cget, #dragimage_cget_strict, #dragimage_cget_tkstring, #dragimage_configinfo, #dragimage_configure, #element_cget, #element_cget_strict, #element_cget_tkstring, #element_configinfo, #element_configure, #item_cget, #item_cget_strict, #item_cget_tkstring, #item_configinfo, #item_configure, #item_element_cget, #item_element_cget_strict, #item_element_cget_tkstring, #item_element_configinfo, #item_element_configure, #marquee_cget, #marquee_cget_strict, #marquee_cget_tkstring, #marquee_configinfo, #marquee_configure, #notify_cget, #notify_cget_strict, #notify_cget_tkstring, #notify_configinfo, #notify_configure, #style_cget, #style_cget_strict, #style_cget_tkstring, #style_configinfo, #style_configure, #tagid, #treectrl_tagid

Methods included from TkItemConfigMethod

__IGNORE_UNKNOWN_CONFIGURE_OPTION__, #__check_available_itemconfigure_options, #__current_itemconfiginfo, __set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!, #current_itemconfiginfo, #itemcget, #itemcget_strict, #itemcget_tkstring, #itemconfiginfo, #itemconfigure, #tagid

Methods included from TkItemConfigOptkeys

#__conv_item_keyonly_opts, #itemconfig_hash_kv

Methods included from TkUtil

#_conv_args, _conv_args, #_fromUTF8, #_get_eval_enc_str, _get_eval_enc_str, #_get_eval_string, _get_eval_string, _symbolkey2str, #_symbolkey2str, #_toUTF8, #bool, bool, callback, eval_cmd, #hash_kv, hash_kv, install_cmd, #num_or_nil, num_or_nil, num_or_str, #num_or_str, number, #number, string, #string, uninstall_cmd, untrust

Methods included from TkTreatItemFont

#kanjifont_copy, #kanjitagfont_configure, #latintagfont_configure, #latintagfont_copy, #tagfont_configinfo, #tagfont_configure, #tagfont_copy

Methods inherited from TkWindow

_widget_inspect_full_=, _widget_inspect_full_?, #bind_class, #bindtags, #bindtags=, #bindtags_shift, #bindtags_unshift, #caret, #colormodel, #command, #cursor_propagate, #cursor_restore, database_class, #database_class, #database_classname, database_classname, #destroy, #eventloop_wait_destroy, #eventloop_wait_visibility, #exist?, #grab, #grab_current, #grab_release, #grab_set, #grab_set_global, #grab_status, #grid, #grid_anchor, #grid_bbox, #grid_column, #grid_columnconfig, #grid_columnconfiginfo, #grid_config, #grid_forget, #grid_in, #grid_info, #grid_location, #grid_propagate, #grid_remove, #grid_row, #grid_rowconfig, #grid_rowconfiginfo, #grid_size, #grid_slaves, #initialize, #inspect, #lower, #pack, #pack_config, #pack_forget, #pack_in, #pack_info, #pack_propagate, #pack_slaves, #place, #place_config, #place_configinfo, #place_forget, #place_in, #place_info, #place_slaves, #raise, #set_focus, #thread_wait_destroy, #thread_wait_visibility, #tktrans_get_image, #tktrans_set_image, to_eval, #wait_destroy, #wait_visibility

Methods included from TkBindCore

#bind, #bind_append, #bind_remove, #bindinfo

Methods included from Busy

#busy, #busy_cget, #busy_configinfo, #busy_configure, #busy_current?, #busy_current_configinfo, #busy_forget, #busy_status, current, forget, hold, method_missing, status

Methods included from TkCore

#_tk_call_to_list_core, #after, #after_cancel, #after_idle, #appname, #appsend, #appsend_deny, #appsend_displayof, callback, #callback_break, #callback_continue, #callback_return, #chooseColor, #chooseDirectory, #do_one_event, #event_generate, #getMultipleOpenFile, #getMultipleSaveFile, #getOpenFile, #getSaveFile, #get_eventloop_tick, #get_eventloop_weight, #get_no_event_wait, #inactive, #inactive_displayof, #info, #ip_eval, #ip_eval_with_enc, #ip_eval_without_enc, #ip_invoke, #ip_invoke_with_enc, #ip_invoke_without_enc, #is_mainloop?, #load_cmd_on_ip, #mainloop, #mainloop_exist?, #mainloop_thread?, #mainloop_watchdog, #messageBox, #rb_appsend, #rb_appsend_displayof, #reset_inactive, #reset_inactive_displayof, #restart, #scaling, #scaling_displayof, #set_eventloop_tick, #set_eventloop_weight, #set_no_event_wait, #tk_call, #tk_call_to_list, #tk_call_to_list_with_enc, #tk_call_to_list_without_enc, #tk_call_to_simplelist, #tk_call_to_simplelist_with_enc, #tk_call_to_simplelist_without_enc, #tk_call_with_enc, #tk_call_without_enc, #windowingsystem

Methods included from TkComm

_at, _callback_entry?, _callback_entry_class?, _curr_cmd_id, _fromUTF8, _genobj_for_tkwidget, _next_cmd_id, _toUTF8, array2tk_list, #bind, #bind_all, #bind_append, #bind_append_all, #bind_remove, #bind_remove_all, #bindinfo, #bindinfo_all, bool, image_obj, #install_cmd, install_cmd, list, num_or_nil, num_or_str, number, procedure, simplelist, slice_ary, string, #subst, tk_tcl2ruby, uninstall_cmd, #uninstall_cmd, window

Methods included from TkEvent

#install_bind_for_event_class

Methods included from TkWinfo

appname, atom, atomname, cells, children, classname, colormapfull, containing, depth, exist?, fpixels, geometry, height, id, interps, manager, mapped?, parent, pixels, pointerx, pointerxy, pointery, reqheight, reqwidth, rgb, rootx, rooty, screen, screencells, screendepth, screenheight, screenmmheight, screenmmwidth, screenvisual, screenwidth, server, toplevel, viewable, visual, visualid, visualsavailable, vrootheight, vrootwidth, vrootx, vrooty, widget, width, #winfo_appname, #winfo_atom, #winfo_atomname, #winfo_cells, #winfo_children, #winfo_classname, #winfo_colormapfull, #winfo_containing, #winfo_depth, #winfo_exist?, #winfo_fpixels, #winfo_geometry, #winfo_height, #winfo_id, #winfo_interps, #winfo_manager, #winfo_mapped?, #winfo_parent, #winfo_pixels, #winfo_pointerx, #winfo_pointerxy, #winfo_pointery, #winfo_reqheight, #winfo_reqwidth, #winfo_rgb, #winfo_rootx, #winfo_rooty, #winfo_screen, #winfo_screencells, #winfo_screendepth, #winfo_screenheight, #winfo_screenmmheight, #winfo_screenmmwidth, #winfo_screenvisual, #winfo_screenwidth, #winfo_server, #winfo_toplevel, #winfo_viewable, #winfo_visual, #winfo_visualid, #winfo_visualsavailable, #winfo_vrootheight, #winfo_vrootwidth, #winfo_vrootx, #winfo_vrooty, #winfo_widget, #winfo_width, #winfo_x, #winfo_y, x, y

Methods included from Tk

BinaryString, EncodedString, #Grid, #Pack, #Place, UTF8_String, __create_widget_set__, __disable_toplevel_control__, __import_toplevel_aliases__, __regist_toplevel_aliases__, __remove_toplevel_aliases__, __reset_toplevel_owner__, __set_loaded_toplevel_aliases__, __set_toplevel_aliases__, __toplevel_alias_setup_proc__, add_kinsoku, bell, bell_on_display, const_missing, current_grabs, cursor_display, default_widget_set, default_widget_set=, delete_kinsoku, destroy, #encoding, #encoding=, errorCode, errorInfo, exit, focus, focus_lastfor, focus_next, focus_prev, focus_to, fromUTF8, grid, grid_forget, has_mainwindow?, load_tcllibrary, load_tclscript, load_tclscript_rsrc, load_tclscript_rsrcid, lower_window, pack, pack_forget, pkgconfig_get, pkgconfig_list, place, place_forget, raise_window, #root, show_kinsoku, sleep, strictMotif, subst_tk_backslash, subst_utf_backslash, tcl_pkgconfig_get, tcl_pkgconfig_list, thread_update, thread_update_idletasks, tk_pkgconfig_get, tk_pkgconfig_list, toUTF8, to_backslash_sequence, toplevel_aliases_on_widget_set, ungrid, unload_tcllibrary, unpack, unplace, update, #update, update_idletasks, utf_to_backslash, utf_to_backslash_sequence, wakeup, widget_set_symbols

Methods included from Encoding

#default_encoding=, #encoding=, #encoding_convertfrom, #encoding_convertto, #encoding_dirs, #encoding_dirs=, #encoding_name, #encoding_names, #encoding_obj, #encoding_objs, #encoding_system=, #encoding_system_name, #encoding_system_obj, #force_default_encoding, #force_default_encoding=, #force_default_encoding?, #tk_encoding_names

Methods included from Tk::TkDND::DND

#dnd_bindsource, #dnd_bindsource_info, #dnd_bindtarget, #dnd_bindtarget_info, #dnd_clearsource, #dnd_cleartarget, #dnd_drag, version

Methods included from Tk::TkDND::Shape

package_patchlevel, #shape_bounds, #shape_get, #shape_offset, #shape_set, #shape_update, version

Methods inherited from TkObject

#destroy, #epath, #event_generate, #method_missing, #path, #tk_send, #tk_send_to_list, #tk_send_to_list_with_enc, #tk_send_to_list_without_enc, #tk_send_to_simplelist, #tk_send_to_simplelist_with_enc, #tk_send_to_simplelist_without_enc, #tk_send_with_enc, #tk_send_without_enc, #to_eval

Methods included from TkConfigMethod

#[], #[]=, __IGNORE_UNKNOWN_CONFIGURE_OPTION__, #__check_available_configure_options, __set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!, #cget, #cget_strict, #cget_tkstring, #config_hash_kv, #configinfo, #configure, #configure_cmd, #current_configinfo

Methods included from TkTreatFont

#font_configinfo, #font_configure, #font_copy, #kanjifont_configure, #kanjifont_copy, #latinfont_configure, #latinfont_copy

Methods inherited from TkKernel

new

Constructor Details

This class inherits a constructor from TkWindow

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class TkObject

Class Method Details

.image_tint(img, color, alpha) ⇒ Object



61
62
63
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 61

def self.image_tint(img, color, alpha)
  Tk.tk_call_without_enc('imagetint', img, color, alpha)
end

.loupe(img, x, y, w, h, zoom) ⇒ Object



47
48
49
50
51
52
53
54
55
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 47

def self.loupe(img, x, y, w, h, zoom)
  # NOTE: platform == 'unix' only

  # img  => TkPhotoImage
  # x, y => screen coords
  # w, h => magnifier width and height
  # zoom => zooming rate
  Tk.tk_call_without_enc('loupe', img, x, y, w, h, zoom)
end

.package_nameObject



23
24
25
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 23

def self.package_name
  PACKAGE_NAME
end

.package_versionObject



27
28
29
30
31
32
33
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 27

def self.package_version
  begin
    TkPackage.require('treectrl')
  rescue
    ''
  end
end

.text_layout(font, text, keys = {}) ⇒ Object



57
58
59
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 57

def self.text_layout(font, text, keys={})
  TkComm.list(Tk.tk_call_without_enc('textlayout', font, text, keys))
end

Instance Method Details

#__destroy_hook__Object



652
653
654
655
656
657
658
659
660
661
662
663
664
665
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 652

def __destroy_hook__
  Tk::TreeCtrl::Column::TreeCtrlColumnID_TBL.mutex.synchronize{
    Tk::TreeCtrl::Column::TreeCtrlColumnID_TBL.delete(@path)
  }
  Tk::TreeCtrl::Element::TreeCtrlElementID_TBL.mutex.synchronize{
    Tk::TreeCtrl::Element::TreeCtrlElementID_TBL.delete(@path)
  }
  Tk::TreeCtrl::Item::TreeCtrlItemID_TBL.mutex.synchronize{
    Tk::TreeCtrl::Item::TreeCtrlItemID_TBL.delete(@path)
  }
  Tk::TreeCtrl::Style::TreeCtrlStyleID_TBL.mutex.synchronize{
    Tk::TreeCtrl::Style::TreeCtrlStyleID_TBL.delete(@path)
  }
end

#activate(desc) ⇒ Object



710
711
712
713
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 710

def activate(desc)
  tk_send('activate', desc)
  self
end

#canvasx(x) ⇒ Object



715
716
717
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 715

def canvasx(x)
  number(tk_send('canvasx', x))
end

#canvasy(y) ⇒ Object



719
720
721
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 719

def canvasy(y)
  number(tk_send('canvasy', y))
end

#collapse(*dsc) ⇒ Object



723
724
725
726
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 723

def collapse(*dsc)
  tk_send_without_enc('collapse', *(dsc.map!{|d| _get_eval_string(d, true)}))
  self
end

#collapse_recurse(*dsc) ⇒ Object



728
729
730
731
732
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 728

def collapse_recurse(*dsc)
  tk_send_without_enc('collapse', '-recurse',
                      *(dsc.map!{|d| _get_eval_string(d, true)}))
  self
end

#column_bbox(idx) ⇒ Object



734
735
736
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 734

def column_bbox(idx)
  list(tk_send('column', 'bbox', idx))
end

#column_compare(column1, op, column2) ⇒ Object



738
739
740
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 738

def column_compare(column1, op, column2)
  bool(tk_send('column', 'compare', column1, op, column2))
end

#column_countObject



742
743
744
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 742

def column_count
  num_or_str(tk_send('column', 'count'))
end

#column_create(keys = nil) ⇒ Object



746
747
748
749
750
751
752
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 746

def column_create(keys=nil)
  if keys && keys.kind_of?(Hash)
    num_or_str(tk_send('column', 'create', *hash_kv(keys)))
  else
    num_or_str(tk_send('column', 'create'))
  end
end

#column_delete(idx) ⇒ Object



754
755
756
757
758
759
760
761
762
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 754

def column_delete(idx)
  Tk::TreeCtrl::Column::TreeCtrlColumnID_TBL.mutex.synchronize{
    if Tk::TreeCtrl::Column::TreeCtrlColumnID_TBL[self.path]
      Tk::TreeCtrl::Column::TreeCtrlColumnID_TBL[self.path].delete(idx)
    end
  }
  tk_send('column', 'delete', idx)
  self
end

#column_id(idx) ⇒ Object



768
769
770
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 768

def column_id(idx)
  tk_send('column', 'id', idx)
end

#column_index(idx) ⇒ Object



764
765
766
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 764

def column_index(idx)
  num_or_str(tk_send('column', 'index', idx))
end

#column_list(visible = false) ⇒ Object



772
773
774
775
776
777
778
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 772

def column_list(visible=false)
  if visible
    simplelist(tk_send('column', 'list', '-visible'))
  else
    simplelist(tk_send('column', 'list'))
  end
end

#column_move(idx, before) ⇒ Object



783
784
785
786
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 783

def column_move(idx, before)
  tk_send('column', 'move', idx, before)
  self
end

#column_needed_width(idx) ⇒ Object Also known as: column_neededwidth



788
789
790
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 788

def column_needed_width(idx)
  num_or_str(tk_send('column', 'neededwidth', idx))
end

#column_order(column, visible = false) ⇒ Object



793
794
795
796
797
798
799
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 793

def column_order(column, visible=false)
  if visible
    num_or_str(tk_send('column', 'order', column, '-visible'))
  else
    num_or_str(tk_send('column', 'order', column))
  end
end

#column_visible_listObject



779
780
781
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 779

def column_visible_list
  column_list(true)
end

#column_visible_order(column) ⇒ Object



800
801
802
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 800

def column_visible_order(column)
  column_order(column, true)
end

#column_width(idx) ⇒ Object



804
805
806
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 804

def column_width(idx)
  num_or_str(tk_send('column', 'width', idx))
end

#compare(item1, op, item2) ⇒ Object



808
809
810
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 808

def compare(item1, op, item2)
  bool(tk_send('compare', item1, op, item2))
end

#contentboxObject



812
813
814
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 812

def contentbox()
  list(tk_send('contentbox'))
end

#debug_dinfoObject



851
852
853
854
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 851

def debug_dinfo
  tk_send('debug', 'dinfo')
  self
end

#debug_scrollObject



856
857
858
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 856

def debug_scroll
  tk_send('debug', 'scroll')
end

#depth(item = None) ⇒ Object



816
817
818
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 816

def depth(item=None)
  num_or_str(tk_send_without_enc('depth', _get_eval_string(item, true)))
end

#dragimage_add(item, *args) ⇒ Object



820
821
822
823
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 820

def dragimage_add(item, *args)
  tk_send('dragimage', 'add', item, *args)
  self
end

#dragimage_clearObject



825
826
827
828
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 825

def dragimage_clear()
  tk_send('dragimage', 'clear')
  self
end

#dragimage_offset(*args) ⇒ Object

x, y



830
831
832
833
834
835
836
837
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 830

def dragimage_offset(*args) # x, y
  if args.empty?
    list(tk_send('dragimage', 'offset'))
  else
    tk_send('dragimage', 'offset', *args)
    self
  end
end

#dragimage_visible(*args) ⇒ Object

mode



839
840
841
842
843
844
845
846
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 839

def dragimage_visible(*args) # mode
  if args..empty?
    bool(tk_send('dragimage', 'visible'))
  else
    tk_send('dragimage', 'visible', *args)
    self
  end
end

#dragimage_visible?Boolean

Returns:

  • (Boolean)


847
848
849
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 847

def dragimage_visible?
  dragimage_visible()
end

#element_class(elem) ⇒ Object



906
907
908
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 906

def element_class(elem)
  Tk::TreeCtrl::Element.type2class(element_type(elem))
end

#element_create(elem, type, keys = nil) ⇒ Object



860
861
862
863
864
865
866
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 860

def element_create(elem, type, keys=nil)
  if keys && keys.kind_of?(Hash)
    tk_send('element', 'create', elem, type, *hash_kv(keys))
  else
    tk_send('element', 'create', elem, type)
  end
end

#element_delete(*elems) ⇒ Object



868
869
870
871
872
873
874
875
876
877
878
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 868

def element_delete(*elems)
  Tk::TreeCtrl::Element::TreeCtrlElementID_TBL.mutex.synchronize{
    if Tk::TreeCtrl::Element::TreeCtrlElementID_TBL[self.path]
      elems.each{|elem|
        Tk::TreeCtrl::Element::TreeCtrlElementID_TBL[self.path].delete(elem)
      }
    end
  }
  tk_send('element', 'delete', *elems)
  self
end

#element_namesObject



880
881
882
883
884
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 880

def element_names()
  list(tk_send('element', 'names')).collect!{|elem|
    Tk::TreeCtrl::Element.id2obj(self, elem)
  }
end

#element_perstate(elem, opt, st_list) ⇒ Object



898
899
900
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 898

def element_perstate(elem, opt, st_list)
  tk_send('element', 'perstate', elem, "-{opt}", st_list)
end

#element_type(elem) ⇒ Object



902
903
904
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 902

def element_type(elem)
  tk_send('element', 'type', elem)
end

#expand(*dsc) ⇒ Object



910
911
912
913
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 910

def expand(*dsc)
  tk_send('expand', *dsc)
  self
end

#expand_recurse(*dsc) ⇒ Object



915
916
917
918
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 915

def expand_recurse(*dsc)
  tk_send('expand', '-recurse', *dsc)
  self
end

#get_item_image(item, column = nil) ⇒ Object



1106
1107
1108
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1106

def get_item_image(item, column=nil)
  item_image(item, column)
end

#get_item_span(item, column = nil) ⇒ Object



1282
1283
1284
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1282

def get_item_span(item, column=nil)
  item_span(item, column)
end

#get_style_layout(style, elem, opt = None) ⇒ Object



1702
1703
1704
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1702

def get_style_layout(style, elem, opt=None)
  style_layout(style, elem, opt)
end

#identify(x, y) ⇒ Object



920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 920

def identify(x, y)
  lst = list(tk_send('identify', x, y))

  if lst[0] == 'item'
    lst[1] = Tk::TreeCtrl::Item.id2obj(self, lst[1])
    size = lst.size
    i = 2
    while i < size
      case lst[i]
      when 'line'
        i += 1
        lst[i] = Tk::TreeCtrl::Item.id2obj(self, lst[i])
        i += 1

      when 'button'
        i += 1

      when 'column'
        i += 2

      when 'elem'
        i += 1
        lst[i] = Tk::TreeCtrl::Element.id2obj(self, lst[i])
        i += 1

      else
        i += 1
      end
    end
  end

  lst
end

#index(idx) ⇒ Object



954
955
956
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 954

def index(idx)
  num_or_str(tk_send('index', idx))
end

#install_bind(cmd, *args) ⇒ Object



692
693
694
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 692

def install_bind(cmd, *args)
  install_bind_for_event_class(Tk::TreeCtrl::NotifyEvent, cmd, *args)
end

#item_ancestors(item) ⇒ Object



958
959
960
961
962
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 958

def item_ancestors(item)
  list(tk_send('item', 'ancestors', item)).collect!{|id|
    Tk::TreeCtrl::Item.id2obj(self, id)
  }
end

#item_bbox(item, *args) ⇒ Object



964
965
966
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 964

def item_bbox(item, *args)
  list(tk_send('item', 'bbox', item, *args))
end

#item_children(item) ⇒ Object



968
969
970
971
972
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 968

def item_children(item)
  list(tk_send('item', 'children', item)).collect!{|id|
    Tk::TreeCtrl::Item.id2obj(self, id)
  }
end

#item_collapse(item) ⇒ Object



974
975
976
977
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 974

def item_collapse(item)
  tk_send_without_enc('item', 'collapse', _get_eval_string(item, true))
  self
end

#item_collapse_recurse(item) ⇒ Object



979
980
981
982
983
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 979

def item_collapse_recurse(item)
  tk_send_without_enc('item', 'collapse',
                      _get_eval_string(item, true), '-recurse')
  self
end

#item_compare(item1, op, item2) ⇒ Object



985
986
987
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 985

def item_compare(item1, op, item2)
  bool(tk_send('item', 'compare', item1, op, item2))
end

#item_complex(item, *args) ⇒ Object



989
990
991
992
993
994
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 989

def item_complex(item, *args)
  tk_send_without_enc('item', 'complex',
                      _get_eval_string(item, true),
                      *(args.map!{|arg| _get_eval_string(arg, true)}))
  self
end

#item_countObject



996
997
998
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 996

def item_count
  num_or_str(tk_send('item', 'count'))
end

#item_create(keys = {}) ⇒ Object



1000
1001
1002
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1000

def item_create(keys={})
  num_or_str(tk_send_without_enc('item', 'create', *hash_kv(keys, true)))
end

#item_delete(first, last = None) ⇒ Object



1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1011

def item_delete(first, last=None)
  Tk::TreeCtrl::Item::TreeCtrlItemID_TBL.mutex.synchronize{
    if Tk::TreeCtrl::Item::TreeCtrlItemID_TBL[self.path]
      if first == 'all' || first == :all || last == 'all' || last == :all
        Tk::TreeCtrl::Item::TreeCtrlItemID_TBL[self.path].clear
      elsif last == None
        _erase_children(first)
      else
        self.range(first, last).each{|id|
          _erase_children(id)
        }
      end
    end
  }
  tk_send('item', 'delete', first, last)
  self
end

#item_dump(item) ⇒ Object



1029
1030
1031
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1029

def item_dump(item)
  list(tk_send('item', 'dump', item))
end

#item_dump_hash(item) ⇒ Object



1033
1034
1035
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1033

def item_dump_hash(item)
  Hash[*list(tk_send('item', 'dump', item))]
end

#item_element_actual(item, column, elem, key) ⇒ Object



1037
1038
1039
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1037

def item_element_actual(item, column, elem, key)
  tk_send('item', 'element', 'actual', item, column, elem, "-#{key}")
end

#item_element_perstate(elem, opt, st_list) ⇒ Object



1041
1042
1043
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1041

def item_element_perstate(elem, opt, st_list)
  tk_send('item', 'element', 'perstate', elem, "-{opt}", st_list)
end

#item_expand(item) ⇒ Object



1045
1046
1047
1048
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1045

def item_expand(item)
  tk_send('item', 'expand', item)
  self
end

#item_expand_recurse(item) ⇒ Object



1050
1051
1052
1053
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1050

def item_expand_recurse(item)
  tk_send('item', 'expand', item, '-recurse')
  self
end

#item_firstchild(parent, child = nil) ⇒ Object Also known as: item_first_child



1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1055

def item_firstchild(parent, child=nil)
  if child
    tk_send_without_enc('item', 'firstchild',
                        _get_eval_string(parent, true),
                        _get_eval_string(child, true))
    self
  else
    id = num_or_str(tk_send_without_enc('item', 'firstchild',
                                        _get_eval_string(parent, true)))
    Tk::TreeCtrl::Item.id2obj(self, id)
  end
end

#item_hasbutton(item, st = None) ⇒ Object Also known as: item_has_button



1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1069

def item_hasbutton(item, st=None)
  if st == None
    bool(tk_send_without_enc('item', 'hasbutton',
                             _get_eval_string(item, true)))
  else
    tk_send_without_enc('item', 'hasbutton',
                        _get_eval_string(item, true),
                        _get_eval_string(st))
    self
  end
end

#item_hasbutton?(item) ⇒ Boolean Also known as: item_has_button?

Returns:

  • (Boolean)


1082
1083
1084
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1082

def item_hasbutton?(item)
  item_hasbutton(item)
end

#item_id(item) ⇒ Object



1087
1088
1089
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1087

def item_id(item)
  tk_send('item', 'id', item)
end

#item_image(item, column = nil, *args) ⇒ Object



1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1091

def item_image(item, column=nil, *args)
  if args.empty?
    if column
      img = tk_send('item', 'image', item, column)
      TkImage::Tk_IMGTBL[img]? TkImage::Tk_IMGTBL[img] : img
    else
      simplelist(tk_send('item', 'image', item)).collect!{|img|
        TkImage::Tk_IMGTBL[img]? TkImage::Tk_IMGTBL[img] : img
      }
    end
  else
    tk_send('item', 'image', item, column, *args)
    self
  end
end

#item_index(item) ⇒ Object



1113
1114
1115
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1113

def item_index(item)
  list(tk_send('item', 'index', item))
end

#item_isancestor(item, des) ⇒ Object Also known as: item_is_ancestor, item_isancestor?, item_is_ancestor?



1117
1118
1119
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1117

def item_isancestor(item, des)
  bool(tk_send('item', 'isancestor', item, des))
end

#item_isopen(item) ⇒ Object Also known as: item_is_open, item_isopen?, item_is_open?, item_isopened?, item_is_opened?



1124
1125
1126
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1124

def item_isopen(item)
  bool(tk_send('item', 'isopen', item))
end

#item_lastchild(parent, child = nil) ⇒ Object Also known as: item_last_child



1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1133

def item_lastchild(parent, child=nil)
  if child
    tk_send_without_enc('item', 'lastchild',
                        _get_eval_string(parent, true),
                        _get_eval_string(child, true))
    self
  else
    id = num_or_str(tk_send_without_enc('item', 'lastchild',
                                        _get_eval_string(parent, true)))
    Tk::TreeCtrl::Item.id2obj(self, id)
  end
end

#item_nextsibling(sibling, nxt = nil) ⇒ Object Also known as: item_next_sibling



1147
1148
1149
1150
1151
1152
1153
1154
1155
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1147

def item_nextsibling(sibling, nxt=nil)
  if nxt
    tk_send('item', 'nextsibling', sibling, nxt)
    self
  else
    id = num_or_str(tk_send('item', 'nextsibling', sibling))
    Tk::TreeCtrl::Item.id2obj(self, id)
  end
end

#item_numchildren(item) ⇒ Object Also known as: item_num_children, item_children_size



1158
1159
1160
1161
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1158

def item_numchildren(item)
  number(tk_send_without_enc('item', 'numchildren',
                             _get_eval_string(item, true)))
end

#item_order(item, visible = false) ⇒ Object



1165
1166
1167
1168
1169
1170
1171
1172
1173
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1165

def item_order(item, visible=false)
  if visible
    ret = num_or_str(tk_send('item', 'order', item, '-visible'))
  else
    ret = num_or_str(tk_send('item', 'order', item))
  end

  (ret.kind_of?(Fixnum) && ret < 0)? nil: ret
end

#item_parent(item) ⇒ Object



1178
1179
1180
1181
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1178

def item_parent(item)
  id = num_or_str(tk_send('item', 'parent', item))
  Tk::TreeCtrl::Item.id2obj(self, id)
end

#item_prevsibling(sibling, prev = nil) ⇒ Object Also known as: item_prev_sibling



1183
1184
1185
1186
1187
1188
1189
1190
1191
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1183

def item_prevsibling(sibling, prev=nil)
  if prev
    tk_send('item', 'prevsibling', sibling, prev)
    self
  else
    id = num_or_str(tk_send('item', 'prevsibling', sibling))
    Tk::TreeCtrl::Item.id2obj(self, id)
  end
end

#item_range(first, last) ⇒ Object



1194
1195
1196
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1194

def item_range(first, last)
  simplelist(tk_send('item', 'range', first, last))
end

#item_remove(item) ⇒ Object



1198
1199
1200
1201
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1198

def item_remove(item)
  tk_send('item', 'remove', item)
  self
end

#item_rnc(item) ⇒ Object



1203
1204
1205
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1203

def item_rnc(item)
  list(tk_send('item', 'rnc', item))
end

#item_sort(item, *opts) ⇒ Object



1263
1264
1265
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1263

def item_sort(item, *opts)
  _item_sort_core(true, item, *opts)
end

#item_sort_not_really(item, *opts) ⇒ Object



1266
1267
1268
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1266

def item_sort_not_really(item, *opts)
  _item_sort_core(false, item, *opts)
end

#item_span(item, column = nil, *args) ⇒ Object



1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1270

def item_span(item, column=nil, *args)
  if args.empty?
    if column
      list(tk_send('item', 'span', item, column))
    else
      simplelist(tk_send('item', 'span', item)).collect!{|elem| list(elem)}
    end
  else
    tk_send('item', 'span', item, column, *args)
    self
  end
end

#item_state_forcolumn(item, column, *args) ⇒ Object Also known as: item_state_for_column



1289
1290
1291
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1289

def item_state_forcolumn(item, column, *args)
  tk_send('item', 'state', 'forcolumn', item, column, *args)
end

#item_state_get(item, *args) ⇒ Object



1294
1295
1296
1297
1298
1299
1300
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1294

def item_state_get(item, *args)
  if args.empty?
    list(tk_send('item', 'state', 'get', item *args))
  else
    bool(tk_send('item', 'state', 'get', item))
  end
end

#item_state_set(item, *args) ⇒ Object



1302
1303
1304
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1302

def item_state_set(item, *args)
  tk_send('item', 'state', 'set', item, *args)
end

#item_style_elements(item, column) ⇒ Object



1306
1307
1308
1309
1310
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1306

def item_style_elements(item, column)
  list(tk_send('item', 'style', 'elements', item, column)).collect!{|id|
    Tk::TreeCtrl::Style.id2obj(self, id)
  }
end

#item_style_map(item, column, style, map) ⇒ Object



1312
1313
1314
1315
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1312

def item_style_map(item, column, style, map)
  tk_send('item', 'style', 'map', item, column, style, map)
  self
end

#item_style_set(item, column = nil, *args) ⇒ Object



1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1317

def item_style_set(item, column=nil, *args)
  if args.empty?
    if column
      id = tk_send_without_enc('item', 'style', 'set',
                               _get_eval_string(item, true),
                               _get_eval_string(column, true))
      Tk::TreeCtrl::Style.id2obj(self, id)
    else
      list(tk_send_without_enc('item', 'style', 'set',
                               _get_eval_string(item, true))).collect!{|id|
        Tk::TreeCtrl::Style.id2obj(self, id)
      }
    end
  else
    tk_send_without_enc('item', 'style', 'set',
                        _get_eval_string(item, true),
                        _get_eval_string(column, true),
                        *(args.flatten.map!{|arg|
                            _get_eval_string(arg, true)
                          }))
    self
  end
end

#item_text(item, column, txt = nil, *args) ⇒ Object



1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1341

def item_text(item, column, txt=nil, *args)
  if args.empty?
    if txt
      tk_send('item', 'text', item, column, txt)
      self
    else
      tk_send('item', 'text', item, column)
    end
  else
    tk_send('item', 'text', item, column, txt, *args)
    self
  end
end

#item_toggle(item) ⇒ Object



1355
1356
1357
1358
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1355

def item_toggle(item)
  tk_send('item', 'toggle', item)
  self
end

#item_toggle_recurse(item) ⇒ Object



1360
1361
1362
1363
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1360

def item_toggle_recurse(item)
  tk_send('item', 'toggle', item, '-recurse')
  self
end

#item_visible(item, st = None) ⇒ Object



1365
1366
1367
1368
1369
1370
1371
1372
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1365

def item_visible(item, st=None)
  if st == None
    bool(tk_send('item', 'visible', item))
  else
    tk_send('item', 'visible', item, st)
    self
  end
end

#item_visible?(item) ⇒ Boolean

Returns:

  • (Boolean)


1373
1374
1375
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1373

def item_visible?(item)
  item_visible(item)
end

#item_visible_order(item) ⇒ Object



1174
1175
1176
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1174

def item_visible_order(item)
  item_order(item, true)
end

#marquee_anchor(*args) ⇒ Object



1377
1378
1379
1380
1381
1382
1383
1384
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1377

def marquee_anchor(*args)
  if args.empty?
    list(tk_send('marquee', 'anchor'))
  else
    tk_send('marquee', 'anchor', *args)
    self
  end
end

#marquee_coords(*args) ⇒ Object



1386
1387
1388
1389
1390
1391
1392
1393
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1386

def marquee_coords(*args)
  if args.empty?
    list(tk_send('marquee', 'coords'))
  else
    tk_send('marquee', 'coords', *args)
    self
  end
end

#marquee_corner(*args) ⇒ Object



1395
1396
1397
1398
1399
1400
1401
1402
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1395

def marquee_corner(*args)
  if args.empty?
    tk_send('marquee', 'corner')
  else
    tk_send('marquee', 'corner', *args)
    self
  end
end

#marquee_identifyObject



1404
1405
1406
1407
1408
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1404

def marquee_identify()
  list(tk_send('marquee', 'identify')).collect!{|id|
    Tk::TreeCtrl::Item.id2obj(self, id)
  }
end

#marquee_visible(st = None) ⇒ Object



1410
1411
1412
1413
1414
1415
1416
1417
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1410

def marquee_visible(st=None)
  if st == None
    bool(tk_send('marquee', 'visible'))
  else
    tk_send('marquee', 'visible', st)
    self
  end
end

#marquee_visible?Boolean

Returns:

  • (Boolean)


1418
1419
1420
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1418

def marquee_visible?()
  marquee_visible()
end

#notify_bind(obj, event, *args) ⇒ Object

def notify_bind(obj, event, cmd=Proc.new, *args)

_bind([@path, 'notify', 'bind', obj], event, cmd, *args)
self

end



1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1426

def notify_bind(obj, event, *args)
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
  if TkComm._callback_entry?(args[0]) || !block_given?
    cmd = args.shift
  else
    cmd = Proc.new
  end
  _bind([@path, 'notify', 'bind', obj], event, cmd, *args)
  self
end

#notify_bind_append(obj, event, *args) ⇒ Object

def notify_bind_append(obj, event, cmd=Proc.new, *args)

_bind_append([@path, 'notify', 'bind', obj], event, cmd, *args)
self

end



1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1441

def notify_bind_append(obj, event, *args)
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
  if TkComm._callback_entry?(args[0]) || !block_given?
    cmd = args.shift
  else
    cmd = Proc.new
  end
  _bind_append([@path, 'notify', 'bind', obj], event, cmd, *args)
  self
end

#notify_bind_remove(obj, event) ⇒ Object



1452
1453
1454
1455
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1452

def notify_bind_remove(obj, event)
  _bind_remove([@path, 'notify', 'bind', obj], event)
  self
end

#notify_bindinfo(obj, event = nil) ⇒ Object



1457
1458
1459
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1457

def notify_bindinfo(obj, event=nil)
  _bindinfo([@path, 'notify', 'bind', obj], event)
end

#notify_detailnames(event) ⇒ Object



1461
1462
1463
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1461

def notify_detailnames(event)
  list(tk_send('notify', 'detailnames', event))
end

#notify_eventnamesObject



1465
1466
1467
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1465

def notify_eventnames()
  list(tk_send('notify', 'eventnames'))
end

#notify_generate(pattern, char_map = None, percents_cmd = None) ⇒ Object



1469
1470
1471
1472
1473
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1469

def notify_generate(pattern, char_map=None, percents_cmd=None)
  pattern = "<#{pattern}>"
  tk_send('notify', 'generate', pattern, char_map, percents_cmd)
  self
end

#notify_install(pattern, percents_cmd = nil, &b) ⇒ Object



1475
1476
1477
1478
1479
1480
1481
1482
1483
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1475

def notify_install(pattern, percents_cmd=nil, &b)
  pattern = "<#{pattern}>"
  percents_cmd = Proc.new(&b) if !percents_cmd && b
  if percents_cmd
    procedure(tk_send('notify', 'install', pattern, percents_cmd))
  else
    procedure(tk_send('notify', 'install', pattern))
  end
end

#notify_install_detail(event, detail, percents_cmd = nil, &b) ⇒ Object



1485
1486
1487
1488
1489
1490
1491
1492
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1485

def notify_install_detail(event, detail, percents_cmd=nil, &b)
  percents_cmd = Proc.new(&b) if !percents_cmd && b
  if percents_cmd
    tk_send('notify', 'install', 'detail', event, detail, percents_cmd)
  else
    tk_send('notify', 'install', 'detail', event, detail)
  end
end

#notify_install_event(event, percents_cmd = nil, &b) ⇒ Object



1494
1495
1496
1497
1498
1499
1500
1501
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1494

def notify_install_event(event, percents_cmd=nil, &b)
  percents_cmd = Proc.new(&b) if !percents_cmd && b
  if percents_cmd
    tk_send('notify', 'install', 'event', event, percents_cmd)
  else
    tk_send('notify', 'install', 'event', event)
  end
end

#notify_linkage(pattern, detail = None) ⇒ Object



1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1503

def notify_linkage(pattern, detail=None)
  if detail != None
    tk_send('notify', 'linkage', pattern, detail)
  else
    begin
      if pattern.to_s.index(?-)
        # TreeCtrl 1.1 format?
        begin
          tk_send('notify', 'linkage', "<#{pattern}>")
        rescue
          # TreeCtrl 1.0?
          tk_send('notify', 'linkage', pattern)
        end
      else
        # TreeCtrl 1.0 format?
        begin
          tk_send('notify', 'linkage', pattern)
        rescue
          # TreeCtrl 1.1?
          tk_send('notify', 'linkage', "<#{pattern}>")
        end
      end
    end
  end
end

#notify_unbind(pattern = nil) ⇒ Object



1529
1530
1531
1532
1533
1534
1535
1536
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1529

def notify_unbind(pattern=nil)
  if pattern
    tk_send('notify', 'unbind', "<#{pattern}>")
  else
    tk_send('notify', 'unbind')
  end
  self
end

#notify_uninstall(pattern) ⇒ Object



1538
1539
1540
1541
1542
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1538

def notify_uninstall(pattern)
  pattern = "<#{pattern}>"
  tk_send('notify', 'uninstall', pattern)
  self
end

#notify_uninstall_detail(event, detail) ⇒ Object



1544
1545
1546
1547
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1544

def notify_uninstall_detail(event, detail)
  tk_send('notify', 'uninstall', 'detail', event, detail)
  self
end

#notify_uninstall_event(event) ⇒ Object



1549
1550
1551
1552
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1549

def notify_uninstall_event(event)
  tk_send('notify', 'uninstall', 'event', event)
  self
end

#numcolumnsObject Also known as: num_columns, columns_size



1554
1555
1556
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1554

def numcolumns()
  num_or_str(tk_send('numcolumns'))
end

#numitemsObject Also known as: num_items, items_size



1560
1561
1562
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1560

def numitems()
  num_or_str(tk_send('numitems'))
end

#orphansObject



1566
1567
1568
1569
1570
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1566

def orphans()
  list(tk_send('orphans')).collect!{|id|
    Tk::TreeCtrl::Item.id2obj(self, id)
  }
end

#range(first, last) ⇒ Object



1572
1573
1574
1575
1576
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1572

def range(first, last)
  list(tk_send('range', first, last)).collect!{|id|
    Tk::TreeCtrl::Item.id2obj(self, id)
  }
end

#see(item, column = None, keys = {}) ⇒ Object



1596
1597
1598
1599
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1596

def see(item, column=None, keys={})
  tk_send('see', item, column, *hash_kv(keys))
  self
end

#selection_add(first, last = None) ⇒ Object



1601
1602
1603
1604
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1601

def selection_add(first, last=None)
  tk_send('selection', 'add', first, last)
  self
end

#selection_anchor(item = None) ⇒ Object



1606
1607
1608
1609
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1606

def selection_anchor(item=None)
  id = num_or_str(tk_send('selection', 'anchor', item))
  Tk::TreeCtrl::Item.id2obj(self, id)
end

#selection_clear(*args) ⇒ Object

first, last



1611
1612
1613
1614
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1611

def selection_clear(*args) # first, last
  tk_send('selection', 'clear', *args)
  self
end

#selection_countObject



1616
1617
1618
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1616

def selection_count()
  number(tk_send('selection', 'count'))
end

#selection_getObject



1620
1621
1622
1623
1624
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1620

def selection_get()
  list(tk_send('selection', 'get')).collect!{|id|
    Tk::TreeCtrl::Item.id2obj(self, id)
  }
end

#selection_includes(item) ⇒ Object



1626
1627
1628
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1626

def selection_includes(item)
  bool(tk_send('selection', 'includes', item))
end

#selection_modify(sel, desel) ⇒ Object



1630
1631
1632
1633
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1630

def selection_modify(sel, desel)
  tk_send('selection', 'modify', sel, desel)
  self
end

#set_item_image(item, col, img, *args) ⇒ Object



1109
1110
1111
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1109

def set_item_image(item, col, img, *args)
  item_image(item, col, img, *args)
end

#set_item_span(item, col, num, *args) ⇒ Object



1285
1286
1287
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1285

def set_item_span(item, col, num, *args)
  item_span(item, col, num, *args)
end

#set_style_layout(style, elem, slot, value = None) ⇒ Object



1705
1706
1707
1708
1709
1710
1711
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1705

def set_style_layout(style, elem, slot, value=None)
  if slot.kind_of?(Hash)
    style_layout(style, elem, slot)
  else
    style_layout(style, elem, {slot=>value})
  end
end

#state_define(name) ⇒ Object



1578
1579
1580
1581
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1578

def state_define(name)
  tk_send('state', 'define', name)
  self
end

#state_linkage(name) ⇒ Object



1583
1584
1585
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1583

def state_linkage(name)
  tk_send('state', 'linkage', name)
end

#state_namesObject



1587
1588
1589
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1587

def state_names()
  list(tk_send('state', 'names'))
end

#state_undefine(*names) ⇒ Object



1591
1592
1593
1594
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1591

def state_undefine(*names)
  tk_send('state', 'undefine', *names)
  self
end

#style_create(style, keys = None) ⇒ Object



1635
1636
1637
1638
1639
1640
1641
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1635

def style_create(style, keys=None)
  if keys && keys != None
    tk_send('style', 'create', style, *hash_kv(keys))
  else
    tk_send('style', 'create', style)
  end
end

#style_delete(*args) ⇒ Object



1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1643

def style_delete(*args)
  Tk::TreeCtrl::Style::TreeCtrlStyleID_TBL.mutex.synchronize{
    if Tk::TreeCtrl::Style::TreeCtrlStyleID_TBL[self.path]
      args.each{|sty|
        Tk::TreeCtrl::Style::TreeCtrlStyleID_TBL[self.path].delete(sty)
      }
    end
  }
  tk_send('style', 'delete', *args)
  self
end

#style_elements(style, *elems) ⇒ Object



1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1655

def style_elements(style, *elems)
  if elems.empty?
    list(tk_send('style', 'elements', style)).collect!{|id|
      Tk::TreeCtrl::Element.id2obj(self, id)
    }
  else
    tk_send('style', 'elements', style, elems.flatten)
    self
  end
end

#style_layout(style, elem, keys = None) ⇒ Object



1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1683

def style_layout(style, elem, keys=None)
  if keys && keys != None
    if keys.kind_of?(Hash)
      tk_send('style', 'layout', style, elem, *hash_kv(keys))
      self
    else
      _conv_style_layout_val(keys,
                             tk_send('style', 'layout',
                                     style, elem, "-#{keys}"))
    end
  else
    ret = Hash.new
    Hash[*simplelist(tk_send('style', 'layout', style, elem))].each{|k, v|
      k = k[1..-1]
      ret[k] = _conv_style_layout_val(k, v)
    }
    ret
  end
end

#style_namesObject



1713
1714
1715
1716
1717
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1713

def style_names()
  list(tk_send('style', 'names')).collect!{|id|
    Tk::TreeCtrl::Style.id2obj(self, id)
  }
end

#toggle(*items) ⇒ Object



1719
1720
1721
1722
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1719

def toggle(*items)
  tk_send('toggle', *items)
  self
end

#toggle_recurseObject



1724
1725
1726
1727
# File 'lib/tkextlib/treectrl/tktreectrl.rb', line 1724

def toggle_recurse()
  tk_send('toggle', '-recurse', *items)
  self
end