Class: Tk::TkTable

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

Defined Under Namespace

Modules: ConfigMethod Classes: BrowseCommand, CellCommand, CellTag, NamedCellTag, SelectionCommand, ValidateCommand

Constant Summary collapse

PACKAGE_NAME =
'Tktable'.freeze
TkCommandNames =
['table'.freeze].freeze
WidgetClassName =
'Table'.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 ValidateConfigure

#__conv_vcmd_on_hash_kv, __def_validcmd, #__get_validate_key2class, #__validcmd_call, #configure

Methods included from ConfigMethod

#current_tag_configinfo, #current_window_configinfo, #tag_cget, #tag_cget_strict, #tag_cget_tkstring, #tag_configinfo, #tag_configure, #window_cget, #window_cget_strict, #window_cget_tkstring, #window_configinfo, #window_configure

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

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 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 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, #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

.package_nameObject



21
22
23
# File 'lib/tkextlib/tktable/tktable.rb', line 21

def self.package_name
  PACKAGE_NAME
end

.package_versionObject



25
26
27
28
29
30
31
# File 'lib/tkextlib/tktable/tktable.rb', line 25

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

Instance Method Details

#__destroy_hook__Object



271
272
273
274
275
# File 'lib/tkextlib/tktable/tktable.rb', line 271

def __destroy_hook__
  Tk::TkTable::CelTag::CellTagID_TBL.mutex.synchronize{
    Tk::TkTable::CelTag::CellTagID_TBL.delete(@path)
  }
end

#__validation_class_listObject



492
493
494
495
# File 'lib/tkextlib/tktable/tktable.rb', line 492

def __validation_class_list
  super() <<
    BrowseCommand << CellCommand << SelectionCommand << ValidateCommand
end

#activate(idx) ⇒ Object



504
505
506
# File 'lib/tkextlib/tktable/tktable.rb', line 504

def activate(idx)
  tk_send('activate', tagid(idx))
end

#bbox(idx) ⇒ Object



508
509
510
# File 'lib/tkextlib/tktable/tktable.rb', line 508

def bbox(idx)
  list(tk_send('bbox', tagid(idx)))
end

#border_dragto(x, y) ⇒ Object



521
522
523
# File 'lib/tkextlib/tktable/tktable.rb', line 521

def border_dragto(x, y)
  tk_send('border', 'dragto', x, y)
end

#border_mark(x, y) ⇒ Object



512
513
514
# File 'lib/tkextlib/tktable/tktable.rb', line 512

def border_mark(x, y)
  simplelist(tk_send('border', 'mark', x, y))
end

#border_mark_col(x, y) ⇒ Object



518
519
520
# File 'lib/tkextlib/tktable/tktable.rb', line 518

def border_mark_col(x, y)
  tk_send('border', 'mark', x, y, 'col')
end

#border_mark_row(x, y) ⇒ Object



515
516
517
# File 'lib/tkextlib/tktable/tktable.rb', line 515

def border_mark_row(x, y)
  tk_send('border', 'mark', x, y, 'row')
end

#clear_all(first = None, last = None) ⇒ Object



537
538
539
540
# File 'lib/tkextlib/tktable/tktable.rb', line 537

def clear_all(first=None, last=None)
  tk_send('clear', 'all', tagid(first), tagid(last))
  self
end

#clear_cache(first = None, last = None) ⇒ Object



525
526
527
528
# File 'lib/tkextlib/tktable/tktable.rb', line 525

def clear_cache(first=None, last=None)
  tk_send('clear', 'cache', tagid(first), tagid(last))
  self
end

#clear_sizes(first = None, last = None) ⇒ Object



529
530
531
532
# File 'lib/tkextlib/tktable/tktable.rb', line 529

def clear_sizes(first=None, last=None)
  tk_send('clear', 'sizes', tagid(first), tagid(last))
  self
end

#clear_tags(first = None, last = None) ⇒ Object



533
534
535
536
# File 'lib/tkextlib/tktable/tktable.rb', line 533

def clear_tags(first=None, last=None)
  tk_send('clear', 'tags', tagid(first), tagid(last))
  self
end

#col_index(idx) ⇒ Object



635
636
637
# File 'lib/tkextlib/tktable/tktable.rb', line 635

def col_index(idx)
  number(tk_send('index', tagid(idx), 'col'))
end

#curselectionObject



542
543
544
# File 'lib/tkextlib/tktable/tktable.rb', line 542

def curselection
  simplelist(tk_send('curselection'))
end

#curselection=(val) ⇒ Object



545
546
547
548
# File 'lib/tkextlib/tktable/tktable.rb', line 545

def curselection=(val)
  tk_send('curselection', val)
  val
end

#curvalueObject



550
551
552
# File 'lib/tkextlib/tktable/tktable.rb', line 550

def curvalue
  tk_tcl2ruby(tk_send('curvalue'), true, false)
end

#curvalue=(val) ⇒ Object



553
554
555
556
# File 'lib/tkextlib/tktable/tktable.rb', line 553

def curvalue=(val)
  tk_send('curvalue', val)
  val
end

#delete_active(idx1, idx2 = None) ⇒ Object



558
559
560
561
# File 'lib/tkextlib/tktable/tktable.rb', line 558

def delete_active(idx1, idx2=None)
  tk_send('delete', 'active', tagid(idx1), tagid(idx2))
  self
end

#delete_cols(*args) ⇒ Object

?switches_array?, index, ?count?



562
563
564
565
566
567
568
569
570
571
572
573
# File 'lib/tkextlib/tktable/tktable.rb', line 562

def delete_cols(*args) # ?switches_array?, index, ?count?
  params = []
  if args[0].kind_of?(Array)
    switches = args.shift
    switches.each{|k| params << "-#{k}"}
  end
  params << '--'
  params << tagid(args.shift)
  params.concat(args)
  tk_send('delete', 'cols', *params)
  self
end

#delete_rows(*args) ⇒ Object

?switches_array?, index, ?count?



574
575
576
577
578
579
580
581
582
583
584
585
# File 'lib/tkextlib/tktable/tktable.rb', line 574

def delete_rows(*args) # ?switches_array?, index, ?count?
  params = []
  if args[0].kind_of?(Array)
    switches = args.shift
    switches.each{|k| params << "-#{k}"}
  end
  params << '--'
  params << tagid(args.shift)
  params.concat(args)
  tk_send('delete', 'rows', *params)
  self
end

#get(idx) ⇒ Object



587
588
589
# File 'lib/tkextlib/tktable/tktable.rb', line 587

def get(idx)
  tk_tcl2ruby(tk_send('get', tagid(idx)), true, false)
end

#get_area(idx1, idx2) ⇒ Object



590
591
592
593
594
# File 'lib/tkextlib/tktable/tktable.rb', line 590

def get_area(idx1, idx2)
  simplelist(tk_send('get', tagid(idx1), tagid(idx2))).collect{|v|
    tk_tcl2ruby(v, true, false)
  }
end

#height(row) ⇒ Object



599
600
601
# File 'lib/tkextlib/tktable/tktable.rb', line 599

def height(row)
  number(tk_send('height', row))
end

#height_listObject



596
597
598
# File 'lib/tkextlib/tktable/tktable.rb', line 596

def height_list
  list(tk_send('height'))
end

#hidden?(idx, *args) ⇒ Boolean

Returns:

  • (Boolean)


610
611
612
613
614
615
616
617
618
619
620
# File 'lib/tkextlib/tktable/tktable.rb', line 610

def hidden?(idx, *args)
  if args.empty?
    if (ret = tk_send('hidden', tagid(idx))) == ''
      false
    else
      ret
    end
  else
    bool(tk_send('hidden', tagid(idx), *(args.collect{|i| tagid(i)})))
  end
end

#hidden_listObject



607
608
609
# File 'lib/tkextlib/tktable/tktable.rb', line 607

def hidden_list
  simplelist(tk_send('hidden'))
end

#icursorObject



622
623
624
# File 'lib/tkextlib/tktable/tktable.rb', line 622

def icursor
  number(tk_send('icursor'))
end

#icursor_set(idx) ⇒ Object



625
626
627
# File 'lib/tkextlib/tktable/tktable.rb', line 625

def icursor_set(idx)
  number(tk_send('icursor', tagid(idx)))
end

#index(idx) ⇒ Object



629
630
631
# File 'lib/tkextlib/tktable/tktable.rb', line 629

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

#insert_active(idx, val) ⇒ Object



639
640
641
642
# File 'lib/tkextlib/tktable/tktable.rb', line 639

def insert_active(idx, val)
  tk_send('insert', 'active', tagid(idx), val)
  self
end

#insert_cols(*args) ⇒ Object

?switches_array?, index, ?count?



643
644
645
646
647
648
649
650
651
652
653
654
# File 'lib/tkextlib/tktable/tktable.rb', line 643

def insert_cols(*args) # ?switches_array?, index, ?count?
  params = []
  if args[0].kind_of?(Array)
    switches = args.shift
    switches.each{|k| params << "-#{k}"}
  end
  params << '--'
  params.concat(args)
  params << tagid(args.shift)
  tk_send('insert', 'cols', *params)
  self
end

#insert_rows(*args) ⇒ Object

?switches_array?, index, ?count?



655
656
657
658
659
660
661
662
663
664
665
666
# File 'lib/tkextlib/tktable/tktable.rb', line 655

def insert_rows(*args) # ?switches_array?, index, ?count?
  params = []
  if args[0].kind_of?(Array)
    switches = args.shift
    switches.each{|k| params << "-#{k}"}
  end
  params << '--'
  params << tagid(args.shift)
  params.concat(args)
  tk_send('insert', 'rows', *params)
  self
end

#rereadObject

def postscript(*args)

tk_send('postscript', *args)

end



672
673
674
675
# File 'lib/tkextlib/tktable/tktable.rb', line 672

def reread
  tk_send('reread')
  self
end

#row_index(idx) ⇒ Object



632
633
634
# File 'lib/tkextlib/tktable/tktable.rb', line 632

def row_index(idx)
  number(tk_send('index', tagid(idx), 'row'))
end

#scan_dragto(x, y) ⇒ Object



681
682
683
684
# File 'lib/tkextlib/tktable/tktable.rb', line 681

def scan_dragto(x, y)
  tk_send('scan', 'dragto', x, y)
  self
end

#scan_mark(x, y) ⇒ Object



677
678
679
680
# File 'lib/tkextlib/tktable/tktable.rb', line 677

def scan_mark(x, y)
  tk_send('scan', 'mark', x, y)
  self
end

#see(idx) ⇒ Object



686
687
688
689
# File 'lib/tkextlib/tktable/tktable.rb', line 686

def see(idx)
  tk_send('see', tagid(idx))
  self
end

#selection_anchor(idx) ⇒ Object



691
692
693
694
# File 'lib/tkextlib/tktable/tktable.rb', line 691

def selection_anchor(idx)
  tk_send('selection', 'anchor', tagid(idx))
  self
end

#selection_clear(first, last = None) ⇒ Object



695
696
697
698
# File 'lib/tkextlib/tktable/tktable.rb', line 695

def selection_clear(first, last=None)
  tk_send('selection', 'clear', tagid(first), tagid(last))
  self
end

#selection_clear_allObject



699
700
701
# File 'lib/tkextlib/tktable/tktable.rb', line 699

def selection_clear_all
  selection_clear('all')
end

#selection_include?(idx) ⇒ Boolean

Returns:

  • (Boolean)


702
703
704
# File 'lib/tkextlib/tktable/tktable.rb', line 702

def selection_include?(idx)
  bool(tk_send('selection', 'includes', tagid(idx)))
end

#selection_presentObject



705
706
707
# File 'lib/tkextlib/tktable/tktable.rb', line 705

def selection_present
  bool(tk_send('selection', 'present'))
end

#selection_set(first, last = None) ⇒ Object



708
709
710
711
# File 'lib/tkextlib/tktable/tktable.rb', line 708

def selection_set(first, last=None)
  tk_send('selection', 'set', tagid(first), tagid(last))
  self
end

#set(*pairs) ⇒ Object

idx, val, idx, val, …



713
714
715
716
717
718
719
720
721
# File 'lib/tkextlib/tktable/tktable.rb', line 713

def set(*pairs) # idx, val, idx, val, ...
  args = []
  0.step(pairs.size-1, 2){|i|
    args << tagid(pairs[i])
    args << pairs[i+1]
  }
  tk_send('set', *args)
  self
end

#set_col(*pairs) ⇒ Object

idx, val, idx, val, …



731
732
733
734
735
736
737
738
739
# File 'lib/tkextlib/tktable/tktable.rb', line 731

def set_col(*pairs) # idx, val, idx, val, ...
  args = []
  0.step(pairs.size-1, 2){|i|
    args << tagid(pairs[i])
    args << pairs[i+1]
  }
  tk_send('set', 'col', *args)
  self
end

#set_height(*pairs) ⇒ Object



602
603
604
605
# File 'lib/tkextlib/tktable/tktable.rb', line 602

def set_height(*pairs)
  tk_send('height', *(pairs.flatten))
  self
end

#set_row(*pairs) ⇒ Object

idx, val, idx, val, …



722
723
724
725
726
727
728
729
730
# File 'lib/tkextlib/tktable/tktable.rb', line 722

def set_row(*pairs) # idx, val, idx, val, ...
  args = []
  0.step(pairs.size-1, 2){|i|
    args << tagid(pairs[i])
    args << pairs[i+1]
  }
  tk_send('set', 'row', *args)
  self
end

#set_spans(*pairs) ⇒ Object



809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
# File 'lib/tkextlib/tktable/tktable.rb', line 809

def set_spans(*pairs)
  # idx, val, idx, val, ...
  args = []
  0.step(pairs.size-1, 2){|i|
    args << tagid(pairs[i])
    val = pairs[i+1]
    if val.kind_of?(Array)
      args << val.join(',')
    else
      args << val
    end
  }
  tk_send('spans', *args)
  self
end

#set_width(*pairs) ⇒ Object



950
951
952
953
# File 'lib/tkextlib/tktable/tktable.rb', line 950

def set_width(*pairs)
  tk_send('width', *(pairs.flatten))
  self
end

#span(idx) ⇒ Object



803
804
805
806
807
808
# File 'lib/tkextlib/tktable/tktable.rb', line 803

def span(idx)
  lst = simplelist(tk_send('spans', tagid(idx)))
  idx = lst[0]
  rows, cols = lst[1].split(',').map!{|n| Integer(n)}
  [idx [rows, cols]]
end

#spansObject Also known as: span_list

def set(*pairs) # idx, val, idx, val, … OR [idx, val], [idx, val], …

  if pairs[0].kind_of?(Array)
    # [idx, val], [idx, val], ...
    args = []
    pairs.each{|idx, val| args << tagid(idx) << val }
    tk_send('set', *args)
  else
    # idx, val, idx, val, ...
    args = []
    0.step(pairs.size-1, 2){|i|
      args << tagid(pairs[i])
      args << pairs[i+1]
    }
    tk_send('set', *args)
  end
  self
end
def set_row(*pairs)
  if pairs[0].kind_of?(Array)
    # [idx, val], [idx, val], ...
    args = []
    pairs.each{|idx, val| args << tagid(idx) << val }
    tk_send('set', 'row', *args)
  else
    # idx, val, idx, val, ...
    args = []
    0.step(pairs.size-1, 2){|i|
      args << tagid(pairs[i])
      args << pairs[i+1]
    }
    tk_send('set', 'row', *args)
  end
  self
end
def set_col(*pairs)
  if pairs[0].kind_of?(Array)
    # [idx, val], [idx, val], ...
    args = []
    pairs.each{|idx, val| args << idx << val }
    tk_send('set', 'col', *args)
  else
    # idx, val, idx, val, ...
    args = []
    0.step(pairs.size-1, 2){|i|
      args << tagid(pairs[i])
      args << pairs[i+1]
    }
    tk_send('set', 'col', *args)
  end
  self
end


794
795
796
797
798
799
800
801
# File 'lib/tkextlib/tktable/tktable.rb', line 794

def spans
  simplelist(tk_send('spans')).collect{|inf|
    lst = simplelist(inf)
    idx = lst[0]
    rows, cols = lst[1].split(',').map!{|n| Integer(n)}
    [idx [rows, cols]]
  }
end

#tag_cell(tag, *cells) ⇒ Object



885
886
887
888
# File 'lib/tkextlib/tktable/tktable.rb', line 885

def tag_cell(tag, *cells)
  tk_send('tag', 'cell', tagid(tag), *(cells.collect{|idx| tagid(idx)}))
  self
end

#tag_col(tag, *cols) ⇒ Object



893
894
895
896
# File 'lib/tkextlib/tktable/tktable.rb', line 893

def tag_col(tag, *cols)
  tk_send('tag', 'col', tagid(tag), *cols)
  self
end

#tag_col_reset(*cols) ⇒ Object



897
898
899
900
# File 'lib/tkextlib/tktable/tktable.rb', line 897

def tag_col_reset(*cols)
  tk_send('tag', 'col', '', *cols)
  self
end

#tag_delete(tag) ⇒ Object



901
902
903
904
905
906
907
908
909
910
911
912
913
# File 'lib/tkextlib/tktable/tktable.rb', line 901

def tag_delete(tag)
  tk_send('tag', 'delete', tagid(tag))
  Tk::TkTable::CellTag::CellTagID_TBL.mutex.synchronize{
    if Tk::TkTable::CellTag::CellTagID_TBL[@path]
      if tag.kind_of? Tk::TkTable::CellTag
        Tk::TkTable::CellTag::CellTagID_TBL[@path].delete(tag.id)
      else
        Tk::TkTable::CellTag::CellTagID_TBL[@path].delete(tag)
      end
    end
  }
  self
end

#tag_exist?(tag) ⇒ Boolean

Returns:

  • (Boolean)


914
915
916
# File 'lib/tkextlib/tktable/tktable.rb', line 914

def tag_exist?(tag)
  bool(tk_send('tag', 'exists', tagid(tag)))
end

#tag_include?(tag, idx) ⇒ Boolean

Returns:

  • (Boolean)


917
918
919
# File 'lib/tkextlib/tktable/tktable.rb', line 917

def tag_include?(tag, idx)
  bool(tk_send('tag', 'includes', tagid(tag), tagid(idx)))
end

#tag_lower(tag, target = None) ⇒ Object



920
921
922
923
# File 'lib/tkextlib/tktable/tktable.rb', line 920

def tag_lower(tag, target=None)
  tk_send('tag', 'lower', tagid(tag), tagid(target))
  self
end

#tag_names(pat = None) ⇒ Object



924
925
926
# File 'lib/tkextlib/tktable/tktable.rb', line 924

def tag_names(pat=None)
  simplelist(tk_send('tag', 'names', pat)).collect{|tag| tagid2obj(tag)}
end

#tag_raise(tag, target = None) ⇒ Object



927
928
929
930
# File 'lib/tkextlib/tktable/tktable.rb', line 927

def tag_raise(tag, target=None)
  tk_send('tag', 'raise', tagid(tag), tagid(target))
  self
end

#tag_reset(*cells) ⇒ Object



889
890
891
892
# File 'lib/tkextlib/tktable/tktable.rb', line 889

def tag_reset(*cells)
  tk_send('tag', 'cell', '', *(cells.collect{|idx| tagid(idx)}))
  self
end

#tag_row(tag, *rows) ⇒ Object



931
932
933
934
# File 'lib/tkextlib/tktable/tktable.rb', line 931

def tag_row(tag, *rows)
  tk_send('tag', 'row', tagid(tag), *rows)
  self
end

#tag_row_reset(*rows) ⇒ Object



935
936
937
938
# File 'lib/tkextlib/tktable/tktable.rb', line 935

def tag_row_reset(*rows)
  tk_send('tag', 'row', '', *rows)
  self
end

#tagid(tag) ⇒ Object

def set_spans(*pairs)

  if pairs[0].kind_of?(Array)
    # [idx, val], [idx, val], ...
    args = []
    pairs.each{|idx, val|
      args << tagid(idx)
      if val.kind_of?(Array)
        args << val.join(',')
      else
        args << val
      end
    }
    tk_send('spans', *args)
  else
    # idx, val, idx, val, ...
    args = []
    0.step(pairs.size-1, 2){|i|
      args << tagid(pairs[i])
      val = pairs[i+1]
      if val.kind_of?(Array)
        args << val.join(',')
      else
        args << val
      end
    }
    tk_send('spans', *args)
  end
  self
end


856
857
858
859
860
861
862
863
864
865
866
867
868
869
# File 'lib/tkextlib/tktable/tktable.rb', line 856

def tagid(tag)
  if tag.kind_of?(Tk::TkTable::CellTag)
    tag.id
  elsif tag.kind_of?(Array)
    if tag[0].kind_of?(Integer) && tag[1].kind_of?(Integer)
      # [row, col]
      tag.join(',')
    else
      tag
    end
  else
    tag
  end
end

#tagid2obj(tagid) ⇒ Object



871
872
873
874
875
876
877
878
879
880
881
882
883
# File 'lib/tkextlib/tktable/tktable.rb', line 871

def tagid2obj(tagid)
  Tk::TkTable::CellTag::CellTagID_TBL.mutex.synchronize{
    if Tk::TkTable::CellTag::CellTagID_TBL.key?(@path)
      if Tk::TkTable::CellTag::CellTagID_TBL[@path].key?(tagid)
        Tk::TkTable::CellTag::CellTagID_TBL[@path][tagid]
      else
        tagid
      end
    else
      tagid
    end
  }
end

#validate(idx) ⇒ Object



940
941
942
# File 'lib/tkextlib/tktable/tktable.rb', line 940

def validate(idx)
  bool(tk_send('validate', tagid(idx)))
end

#width(row) ⇒ Object



947
948
949
# File 'lib/tkextlib/tktable/tktable.rb', line 947

def width(row)
  number(tk_send('width', row))
end

#width_listObject



944
945
946
# File 'lib/tkextlib/tktable/tktable.rb', line 944

def width_list
  list(tk_send('width'))
end

#window_delete(*args) ⇒ Object



955
956
957
958
# File 'lib/tkextlib/tktable/tktable.rb', line 955

def window_delete(*args)
  tk_send('window', 'delete', *(args.collect{|idx| tagid(idx)}))
  self
end

#window_move(from_idx, to_idx) ⇒ Object



959
960
961
962
# File 'lib/tkextlib/tktable/tktable.rb', line 959

def window_move(from_idx, to_idx)
  tk_send('window', 'move', tagid(from_idx), tagid(to_idx))
  self
end

#window_names(pat = None) ⇒ Object



963
964
965
# File 'lib/tkextlib/tktable/tktable.rb', line 963

def window_names(pat=None)
  simplelist(tk_send('window', 'names', pat))
end