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 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 TkCore

TkCore::EventFlag, TkCore::INTERP, TkCore::WIDGET_DESTROY_HOOK

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_configinfo, #tag_configure, #window_cget, #window_configinfo, #window_configure

Methods included from TkItemConfigMethod

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

#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_bbox, #grid_columnconfig, #grid_columnconfiginfo, #grid_config, #grid_forget, #grid_in, #grid_info, #grid_location, #grid_propagate, #grid_remove, #grid_rowconfig, #grid_rowconfiginfo, #grid_size, #grid_slaves, #initialize, #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, UTF8_String, add_kinsoku, bell, bell_on_display, const_missing, current_grabs, cursor_display, 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, 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

Methods included from Encoding

#encoding, #encoding=, #encoding_convertfrom, #encoding_convertto, #encoding_dirs, #encoding_dirs=, #encoding_names, #encoding_system, #encoding_system=

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, list, num_or_str, number, procedure, simplelist, string, #subst, tk_tcl2ruby, 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

#[], #[]=, #cget, #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



222
223
224
# File 'lib/tkextlib/tktable/tktable.rb', line 222

def __destroy_hook__
  Tk::TkTable::CelTag::CellTagID_TBL.delete(@path)
end

#__validation_class_listObject



369
370
371
372
# File 'lib/tkextlib/tktable/tktable.rb', line 369

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

#activate(idx) ⇒ Object



381
382
383
# File 'lib/tkextlib/tktable/tktable.rb', line 381

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

#bbox(idx) ⇒ Object



385
386
387
# File 'lib/tkextlib/tktable/tktable.rb', line 385

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

#border_dragto(x, y) ⇒ Object



398
399
400
# File 'lib/tkextlib/tktable/tktable.rb', line 398

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

#border_mark(x, y) ⇒ Object



389
390
391
# File 'lib/tkextlib/tktable/tktable.rb', line 389

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

#border_mark_col(x, y) ⇒ Object



395
396
397
# File 'lib/tkextlib/tktable/tktable.rb', line 395

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

#border_mark_row(x, y) ⇒ Object



392
393
394
# File 'lib/tkextlib/tktable/tktable.rb', line 392

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

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



414
415
416
417
# File 'lib/tkextlib/tktable/tktable.rb', line 414

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

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



402
403
404
405
# File 'lib/tkextlib/tktable/tktable.rb', line 402

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

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



406
407
408
409
# File 'lib/tkextlib/tktable/tktable.rb', line 406

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

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



410
411
412
413
# File 'lib/tkextlib/tktable/tktable.rb', line 410

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

#col_index(idx) ⇒ Object



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

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

#curselectionObject



419
420
421
# File 'lib/tkextlib/tktable/tktable.rb', line 419

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

#curselection=(val) ⇒ Object



422
423
424
425
# File 'lib/tkextlib/tktable/tktable.rb', line 422

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

#curvalueObject



427
428
429
# File 'lib/tkextlib/tktable/tktable.rb', line 427

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

#curvalue=(val) ⇒ Object



430
431
432
433
# File 'lib/tkextlib/tktable/tktable.rb', line 430

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

#delete_active(idx1, idx2 = None) ⇒ Object



435
436
437
438
# File 'lib/tkextlib/tktable/tktable.rb', line 435

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

#delete_cols(*args) ⇒ Object

?switches_array?, index, ?count?



439
440
441
442
443
444
445
446
447
448
449
450
# File 'lib/tkextlib/tktable/tktable.rb', line 439

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?



451
452
453
454
455
456
457
458
459
460
461
462
# File 'lib/tkextlib/tktable/tktable.rb', line 451

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



464
465
466
# File 'lib/tkextlib/tktable/tktable.rb', line 464

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

#get_area(idx1, idx2) ⇒ Object



467
468
469
470
471
# File 'lib/tkextlib/tktable/tktable.rb', line 467

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

#height(row) ⇒ Object



476
477
478
# File 'lib/tkextlib/tktable/tktable.rb', line 476

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

#height_listObject



473
474
475
# File 'lib/tkextlib/tktable/tktable.rb', line 473

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

#hidden?(idx, *args) ⇒ Boolean

Returns:

  • (Boolean)


487
488
489
490
491
492
493
494
495
496
497
# File 'lib/tkextlib/tktable/tktable.rb', line 487

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



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

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

#icursorObject



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

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

#icursor_set(idx) ⇒ Object



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

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

#index(idx) ⇒ Object



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

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

#insert_active(idx, val) ⇒ Object



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

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

#insert_cols(*args) ⇒ Object

?switches_array?, index, ?count?



520
521
522
523
524
525
526
527
528
529
530
531
# File 'lib/tkextlib/tktable/tktable.rb', line 520

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?



532
533
534
535
536
537
538
539
540
541
542
543
# File 'lib/tkextlib/tktable/tktable.rb', line 532

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



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

def reread
  tk_send('reread')
  self
end

#row_index(idx) ⇒ Object



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

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

#scan_dragto(x, y) ⇒ Object



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

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

#scan_mark(x, y) ⇒ Object



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

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

#see(idx) ⇒ Object



563
564
565
566
# File 'lib/tkextlib/tktable/tktable.rb', line 563

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

#selection_anchor(idx) ⇒ Object



568
569
570
571
# File 'lib/tkextlib/tktable/tktable.rb', line 568

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

#selection_clear(first, last = None) ⇒ Object



572
573
574
575
# File 'lib/tkextlib/tktable/tktable.rb', line 572

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

#selection_clear_allObject



576
577
578
# File 'lib/tkextlib/tktable/tktable.rb', line 576

def selection_clear_all
  selection_clear('all')
end

#selection_include?(idx) ⇒ Boolean

Returns:

  • (Boolean)


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

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

#selection_presentObject



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

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

#selection_set(first, last = None) ⇒ Object



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

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

#set(*pairs) ⇒ Object

idx, val, idx, val, …



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

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



608
609
610
611
612
613
614
615
616
# File 'lib/tkextlib/tktable/tktable.rb', line 608

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



479
480
481
482
# File 'lib/tkextlib/tktable/tktable.rb', line 479

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

#set_row(*pairs) ⇒ Object

idx, val, idx, val, …



599
600
601
602
603
604
605
606
607
# File 'lib/tkextlib/tktable/tktable.rb', line 599

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



686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
# File 'lib/tkextlib/tktable/tktable.rb', line 686

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



823
824
825
826
# File 'lib/tkextlib/tktable/tktable.rb', line 823

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

#span(idx) ⇒ Object



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

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


671
672
673
674
675
676
677
678
# File 'lib/tkextlib/tktable/tktable.rb', line 671

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



760
761
762
763
# File 'lib/tkextlib/tktable/tktable.rb', line 760

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

#tag_col(tag, *cols) ⇒ Object



768
769
770
771
# File 'lib/tkextlib/tktable/tktable.rb', line 768

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

#tag_col_reset(*cols) ⇒ Object



772
773
774
775
# File 'lib/tkextlib/tktable/tktable.rb', line 772

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

#tag_delete(tag) ⇒ Object



776
777
778
779
780
781
782
783
784
785
786
# File 'lib/tkextlib/tktable/tktable.rb', line 776

def tag_delete(tag)
  tk_send('tag', 'delete', tagid(tag))
  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)


787
788
789
# File 'lib/tkextlib/tktable/tktable.rb', line 787

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

#tag_include?(tag, idx) ⇒ Boolean

Returns:

  • (Boolean)


790
791
792
# File 'lib/tkextlib/tktable/tktable.rb', line 790

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

#tag_lower(tag, target = None) ⇒ Object



793
794
795
796
# File 'lib/tkextlib/tktable/tktable.rb', line 793

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

#tag_names(pat = None) ⇒ Object



797
798
799
# File 'lib/tkextlib/tktable/tktable.rb', line 797

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

#tag_raise(tag, target = None) ⇒ Object



800
801
802
803
# File 'lib/tkextlib/tktable/tktable.rb', line 800

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

#tag_reset(*cells) ⇒ Object



764
765
766
767
# File 'lib/tkextlib/tktable/tktable.rb', line 764

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

#tag_row(tag, *rows) ⇒ Object



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

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

#tag_row_reset(*rows) ⇒ Object



808
809
810
811
# File 'lib/tkextlib/tktable/tktable.rb', line 808

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


733
734
735
736
737
738
739
740
741
742
743
744
745
746
# File 'lib/tkextlib/tktable/tktable.rb', line 733

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



748
749
750
751
752
753
754
755
756
757
758
# File 'lib/tkextlib/tktable/tktable.rb', line 748

def tagid2obj(tagid)
  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



813
814
815
# File 'lib/tkextlib/tktable/tktable.rb', line 813

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

#width(row) ⇒ Object



820
821
822
# File 'lib/tkextlib/tktable/tktable.rb', line 820

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

#width_listObject



817
818
819
# File 'lib/tkextlib/tktable/tktable.rb', line 817

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

#window_delete(*args) ⇒ Object



828
829
830
831
# File 'lib/tkextlib/tktable/tktable.rb', line 828

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

#window_move(from_idx, to_idx) ⇒ Object



832
833
834
835
# File 'lib/tkextlib/tktable/tktable.rb', line 832

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

#window_names(pat = None) ⇒ Object



836
837
838
# File 'lib/tkextlib/tktable/tktable.rb', line 836

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