Class: Tk::TkTable

Inherits:
TkWindow show all
Includes:
Scrollable, ConfigMethod, ValidateConfigure
Defined in:
ext/lib/tkextlib/tktable/tktable.rb,
ext/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 Tk

AUTO_PATH, Checkbutton, CloneMenu, JAPANIZED_TK, LIBRARY_PATH, Labelframe, MenuButton, OptionMenuButton, PACKAGE_PATH, Panedwindow, RELEASE_DATE, Radiobutton, 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

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

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_configinfo, #tag_configure, #window_cget, #window_cget_strict, #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, #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_str, #num_or_str, number, #number, string, #string, uninstall_cmd

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 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, __set_toplevel_aliases__, add_kinsoku, bell, bell_on_display, const_missing, current_grabs, cursor_display, default_widget_set, default_widget_set=, delete_kinsoku, destroy, 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, ungrid, unload_tcllibrary, unpack, unplace, #update, update, update_idletasks, utf_to_backslash, utf_to_backslash_sequence, wakeup

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 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_str, number, procedure, simplelist, string, #subst, tk_tcl2ruby, uninstall_cmd, #uninstall_cmd, window

Methods included from TkEvent

#install_bind, #install_bind_for_event_class

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, #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 'ext/lib/tkextlib/tktable/tktable.rb', line 21

def self.package_name
  PACKAGE_NAME
end

.package_versionObject



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

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

Instance Method Details

#__destroy_hook__Object



262
263
264
265
266
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 262

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

#__validation_class_listObject



483
484
485
486
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 483

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

#activate(idx) ⇒ Object



495
496
497
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 495

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

#bbox(idx) ⇒ Object



499
500
501
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 499

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

#border_dragto(x, y) ⇒ Object



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

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

#border_mark(x, y) ⇒ Object



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

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

#border_mark_col(x, y) ⇒ Object



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

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

#border_mark_row(x, y) ⇒ Object



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

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

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



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

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

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



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

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

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



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

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

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



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

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

#col_index(idx) ⇒ Object



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

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

#curselectionObject



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

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

#curselection=(val) ⇒ Object



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

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

#curvalueObject



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

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

#curvalue=(val) ⇒ Object



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

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

#delete_active(idx1, idx2 = None) ⇒ Object



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

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

#delete_cols(*args) ⇒ Object

?switches_array?, index, ?count?



553
554
555
556
557
558
559
560
561
562
563
564
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 553

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?



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

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



578
579
580
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 578

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

#get_area(idx1, idx2) ⇒ Object



581
582
583
584
585
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 581

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

#height(row) ⇒ Object



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

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

#height_listObject



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

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

#hidden?(idx, *args) ⇒ Boolean

Returns:

  • (Boolean)


601
602
603
604
605
606
607
608
609
610
611
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 601

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



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

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

#icursorObject



613
614
615
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 613

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

#icursor_set(idx) ⇒ Object



616
617
618
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 616

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

#index(idx) ⇒ Object



620
621
622
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 620

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

#insert_active(idx, val) ⇒ Object



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

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

#insert_cols(*args) ⇒ Object

?switches_array?, index, ?count?



634
635
636
637
638
639
640
641
642
643
644
645
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 634

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?



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

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



663
664
665
666
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 663

def reread
  tk_send('reread')
  self
end

#row_index(idx) ⇒ Object



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

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

#scan_dragto(x, y) ⇒ Object



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

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

#scan_mark(x, y) ⇒ Object



668
669
670
671
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 668

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

#see(idx) ⇒ Object



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

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

#selection_anchor(idx) ⇒ Object



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

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

#selection_clear(first, last = None) ⇒ Object



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

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

#selection_clear_allObject



690
691
692
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 690

def selection_clear_all
  selection_clear('all')
end

#selection_include?(idx) ⇒ Boolean

Returns:

  • (Boolean)


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

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

#selection_presentObject



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

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

#selection_set(first, last = None) ⇒ Object



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

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

#set(*pairs) ⇒ Object

idx, val, idx, val, …



704
705
706
707
708
709
710
711
712
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 704

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



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

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



593
594
595
596
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 593

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

#set_row(*pairs) ⇒ Object

idx, val, idx, val, …



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

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



800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 800

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



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

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

#span(idx) ⇒ Object



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

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


785
786
787
788
789
790
791
792
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 785

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



876
877
878
879
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 876

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

#tag_col(tag, *cols) ⇒ Object



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

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

#tag_col_reset(*cols) ⇒ Object



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

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

#tag_delete(tag) ⇒ Object



892
893
894
895
896
897
898
899
900
901
902
903
904
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 892

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)


905
906
907
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 905

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

#tag_include?(tag, idx) ⇒ Boolean

Returns:

  • (Boolean)


908
909
910
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 908

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

#tag_lower(tag, target = None) ⇒ Object



911
912
913
914
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 911

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

#tag_names(pat = None) ⇒ Object



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

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

#tag_raise(tag, target = None) ⇒ Object



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

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

#tag_reset(*cells) ⇒ Object



880
881
882
883
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 880

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

#tag_row(tag, *rows) ⇒ Object



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

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

#tag_row_reset(*rows) ⇒ Object



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

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


847
848
849
850
851
852
853
854
855
856
857
858
859
860
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 847

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



862
863
864
865
866
867
868
869
870
871
872
873
874
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 862

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



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

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

#width(row) ⇒ Object



938
939
940
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 938

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

#width_listObject



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

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

#window_delete(*args) ⇒ Object



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

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

#window_move(from_idx, to_idx) ⇒ Object



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

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

#window_names(pat = None) ⇒ Object



954
955
956
# File 'ext/lib/tkextlib/tktable/tktable.rb', line 954

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