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

__item_cget_cmd, __item_config_cmd, __item_confinfo_cmd, #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__, _replace_toplevel_aliases, add_kinsoku, backup_current_topdef, bell, bell_on_display, const_missing, current_grabs, cursor_display, default_widget_set, default_widget_set=, define_topalias, define_topobj, 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, regist_sym_for_loaded_file, replace_topalias, replace_topobj, #root, set_topalias, 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, topalias_defined?, toplevel_aliases_on_widget_set, topobj_defined?, 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



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

def self.package_name
  PACKAGE_NAME
end

.package_versionObject



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

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

Instance Method Details

#__destroy_hook__Object



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

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

#__validation_class_listObject



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

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

#activate(idx) ⇒ Object



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

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

#bbox(idx) ⇒ Object



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

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

#border_dragto(x, y) ⇒ Object



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

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

#border_mark(x, y) ⇒ Object



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

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

#border_mark_col(x, y) ⇒ Object



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

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

#border_mark_row(x, y) ⇒ Object



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

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

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



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

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

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



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

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

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



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

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

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



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

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

#col_index(idx) ⇒ Object



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

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

#curselectionObject



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

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

#curselection=(val) ⇒ Object



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

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

#curvalueObject



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

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

#curvalue=(val) ⇒ Object



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

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

#delete_active(idx1, idx2 = None) ⇒ Object



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

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

#delete_cols(*args) ⇒ Object

?switches_array?, index, ?count?



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

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?



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

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



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

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

#get_area(idx1, idx2) ⇒ Object



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

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

#height(row) ⇒ Object



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

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

#height_listObject



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

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

#hidden?(idx, *args) ⇒ Boolean

Returns:

  • (Boolean)


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

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



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

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

#icursorObject



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

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

#icursor_set(idx) ⇒ Object



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

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

#index(idx) ⇒ Object



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

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

#insert_active(idx, val) ⇒ Object



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

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

#insert_cols(*args) ⇒ Object

?switches_array?, index, ?count?



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

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?



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

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



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

def reread
  tk_send('reread')
  self
end

#row_index(idx) ⇒ Object



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

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

#scan_dragto(x, y) ⇒ Object



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

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

#scan_mark(x, y) ⇒ Object



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

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

#see(idx) ⇒ Object



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

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

#selection_anchor(idx) ⇒ Object



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

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

#selection_clear(first, last = None) ⇒ Object



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

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

#selection_clear_allObject



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

def selection_clear_all
  selection_clear('all')
end

#selection_include?(idx) ⇒ Boolean

Returns:

  • (Boolean)


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

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

#selection_presentObject



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

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

#selection_set(first, last = None) ⇒ Object



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

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

#set(*pairs) ⇒ Object

idx, val, idx, val, …



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

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



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

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



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

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

#set_row(*pairs) ⇒ Object

idx, val, idx, val, …



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

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



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

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



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

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

#span(idx) ⇒ Object



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

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


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

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



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

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

#tag_col(tag, *cols) ⇒ Object



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

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

#tag_col_reset(*cols) ⇒ Object



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

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

#tag_delete(tag) ⇒ Object



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

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)


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

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

#tag_include?(tag, idx) ⇒ Boolean

Returns:

  • (Boolean)


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

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

#tag_lower(tag, target = None) ⇒ Object



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

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

#tag_names(pat = None) ⇒ Object



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

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

#tag_raise(tag, target = None) ⇒ Object



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

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

#tag_reset(*cells) ⇒ Object



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

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

#tag_row(tag, *rows) ⇒ Object



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

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

#tag_row_reset(*rows) ⇒ Object



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

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


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

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



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

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



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

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

#width(row) ⇒ Object



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

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

#width_listObject



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

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

#window_delete(*args) ⇒ Object



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

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

#window_move(from_idx, to_idx) ⇒ Object



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

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

#window_names(pat = None) ⇒ Object



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

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