Class: TkMultiColumnList
- Includes:
- TkComposite
- Defined in:
- sample/tkmulticolumnlist.rb
Constant Summary
Constants included from Tk
Tk::AUTO_PATH, Tk::Fontchooser, Tk::INTERP, Tk::JAPANIZED_TK, Tk::LIBRARY_PATH, Tk::MAINLOOP, Tk::PACKAGE_PATH, Tk::RELEASE_DATE, Tk::TCL_LIBRARY_PATH, Tk::TCL_MAJOR_VERSION, Tk::TCL_MINOR_VERSION, Tk::TCL_PACKAGE_PATH, Tk::TCL_PATCHLEVEL, Tk::TCL_PRECISION, Tk::TCL_VERSION, Tk::TK_MAJOR_VERSION, Tk::TK_MINOR_VERSION, Tk::TK_PATCHLEVEL, Tk::TK_VERSION, Tk::Tkextlib_RELEASE_DATE, Tk::TreeCtrl_Widget, Tk::X_Scrollable, Tk::Y_Scrollable
Constants included from Tk::Encoding
Tk::Encoding::BINARY, Tk::Encoding::BINARY_NAME, Tk::Encoding::DEFAULT_EXTERNAL_NAME, Tk::Encoding::DEFAULT_INTERNAL_NAME, Tk::Encoding::ENCODING_TABLE, Tk::Encoding::RubyEncoding, Tk::Encoding::TkCommandNames, Tk::Encoding::UNKNOWN, Tk::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
Constants included from TkUtil
TkUtil::None, TkUtil::RELEASE_DATE
Instance Method Summary collapse
-
#columns(*indices) ⇒ Object
get listbox widgets.
-
#command(cmd) ⇒ Object
set command.
- #delete(*idx) ⇒ Object
- #get(idx_s, idx_e = nil) ⇒ Object
- #get_by_hash(*idx) ⇒ Object
- #get_select ⇒ Object
- #hide_each_hscr ⇒ Object
- #hide_win_hscr ⇒ Object
- #insert(idx, *lines) ⇒ Object
- #keep_minsize(bool) ⇒ Object
-
#keep_minsize? ⇒ Boolean
keep_minsize?.
-
#listboxborder(width) ⇒ Object
set listbox borders.
-
#listboxrelief(relief) ⇒ Object
set listbox relief.
-
#scrollbarborder(width) ⇒ Object
set scrollbar border.
-
#scrollbarwidth(width) ⇒ Object
set scrollbar width.
- #select_clear(first, last = None) ⇒ Object
- #select_set(first, last = None) ⇒ Object
-
#show_each_hscr ⇒ Object
each hscr.
-
#show_win_hscr ⇒ Object
window hscroll.
-
#titlebackground(bg) ⇒ Object
set title background color.
-
#titleborder(width) ⇒ Object
set title borders.
-
#titlecommand(idx, cmd = Proc.new) ⇒ Object
set title cmds.
-
#titlefont(font) ⇒ Object
set title font.
-
#titleforeground(fg) ⇒ Object
set title foreground color.
-
#titleinvoke(idx) ⇒ Object
call title cmds.
-
#titlelabels(*indices) ⇒ Object
get label widgets of listbox titles.
Methods included from TkComposite
#cget, #cget_strict, #cget_tkstring, #configinfo, #configure, #database_class, #database_classname, #delegate, #delegate_alias, #epath, #initialize, #inspect, #option_methods
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 Tk::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_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 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
Instance Method Details
#columns(*indices) ⇒ Object
get listbox widgets
429 430 431 |
# File 'sample/tkmulticolumnlist.rb', line 429 def columns(*indices) @lbox_list[*indices] end |
#command(cmd) ⇒ Object
set command
341 342 343 344 |
# File 'sample/tkmulticolumnlist.rb', line 341 def command(cmd) @command = cmd self end |
#delete(*idx) ⇒ Object
433 434 435 436 437 438 439 440 441 442 |
# File 'sample/tkmulticolumnlist.rb', line 433 def delete(*idx) idx = idx.collect{|i| if i.kind_of?(Integer) "#{i}.0" else i.to_s end } @lbox_list.collect{|lbox| lbox.delete(*idx)} end |
#get(idx_s, idx_e = nil) ⇒ Object
444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 |
# File 'sample/tkmulticolumnlist.rb', line 444 def get(idx_s, idx_e=nil) unless idx_e if idx_s.kind_of?(Integer) idx_s = "#{idx_s}.0" idx_e = "#{idx_s} lineend" else idx_s = idx_s.to_s idx_e = "#{idx_s} lineend" end @lbox_list.collect{|lbox| lbox.get(idx_s, idx_e) } else if idx_s.kind_of?(Integer) idx_s = "#{idx_s}.0" else idx_s = idx_s.to_s end if idx_e.kind_of?(Integer) idx_e = "#{idx_e}.end" else idx_e = "#{idx_e} lineend" end list = @lbox_list.collect{|lbox| lbox.get(idx_s, idx_e).split(/\n/)} result = [] list[0].each_with_index{|line, index| result << list.collect{|lines| lines[index]} } result end end |
#get_by_hash(*idx) ⇒ Object
493 494 495 496 497 498 499 500 |
# File 'sample/tkmulticolumnlist.rb', line 493 def get_by_hash(*idx) get_result = get(*idx) if idx.size == 1 _line_array_to_hash(get_result) else get_result.collect{|line| _line_array_to_hash(line)} end end |
#get_select ⇒ Object
476 477 478 |
# File 'sample/tkmulticolumnlist.rb', line 476 def get_select get(@lbox_list[0].select_index) end |
#hide_each_hscr ⇒ Object
325 326 327 328 |
# File 'sample/tkmulticolumnlist.rb', line 325 def hide_each_hscr @show_each_hscr = false @c_hscr.ungrid end |
#hide_win_hscr ⇒ Object
335 336 337 338 |
# File 'sample/tkmulticolumnlist.rb', line 335 def hide_win_hscr @show_each_hscr = false @h_scroll.ungrid end |
#insert(idx, *lines) ⇒ Object
502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 |
# File 'sample/tkmulticolumnlist.rb', line 502 def insert(idx, *lines) lbox_ins = [] (0..@lbox_list.size).each{lbox_ins << []} if idx.kind_of?(Integer) idx = "#{idx}.0" else idx = idx.to_s end if @lbox_list[0].index('1.0 + 1 char') == @lbox_list[0].index('end') cr = "" else cr = "\n" end lines.each{|line| if line.kind_of? Hash array = [] @name_index.each_pair{|label, indices| if indices.size == 1 array[indices[0]] = line[label] else if line[label].kind_of? Array indices.each_with_index{|index, num| array[index] = line[label][num] } else array[indices[0]] = line[label] end end } line = array end @name_index.each_pair{|label, indices| if indices.size == 1 lbox_ins[indices[0]] << line[indices[0]] else indices.each{|index| lbox_ins[index] << line[index]} end } } @lbox_list.each_with_index{|lbox, index| lbox.insert(idx, cr + lbox_ins[index].join("\n")) if lbox_ins[index] } end |
#keep_minsize(bool) ⇒ Object
316 317 318 |
# File 'sample/tkmulticolumnlist.rb', line 316 def keep_minsize(bool) @keep_minsize = bool end |
#keep_minsize? ⇒ Boolean
keep_minsize?
313 314 315 |
# File 'sample/tkmulticolumnlist.rb', line 313 def keep_minsize? @keep_minsize end |
#listboxborder(width) ⇒ Object
set listbox borders
365 366 367 368 369 |
# File 'sample/tkmulticolumnlist.rb', line 365 def listboxborder(width) @lbox_border = width @lbox_list.each{|w| w['border'] = @lbox_border} self end |
#listboxrelief(relief) ⇒ Object
set listbox relief
372 373 374 375 |
# File 'sample/tkmulticolumnlist.rb', line 372 def listboxrelief(relief) @lbox_list.each{|w| w['relief'] = relief} self end |
#scrollbarborder(width) ⇒ Object
set scrollbar border
356 357 358 359 360 361 362 |
# File 'sample/tkmulticolumnlist.rb', line 356 def (width) @scrbar_border = width @v_scroll['border'] = @scrbar_border @h_scroll['border'] = @scrbar_border @hscr_list.each{|hscr| hscr['border'] = @scrbar_border} self end |
#scrollbarwidth(width) ⇒ Object
set scrollbar width
347 348 349 350 351 352 353 |
# File 'sample/tkmulticolumnlist.rb', line 347 def (width) @scrbar_width = width @v_scroll['width'] = @scrbar_width @h_scroll['width'] = @scrbar_width @hscr_list.each{|hscr| hscr['width'] = @scrbar_width} self end |
#select_clear(first, last = None) ⇒ Object
551 552 553 |
# File 'sample/tkmulticolumnlist.rb', line 551 def select_clear(first, last=None) @lbox_list.each{|lbox| lbox.sel_clear(first, last=None)} end |
#select_set(first, last = None) ⇒ Object
555 556 557 |
# File 'sample/tkmulticolumnlist.rb', line 555 def select_set(first, last=None) @lbox_list.each{|lbox| lbox.sel_set(first, last=None)} end |
#show_each_hscr ⇒ Object
each hscr
321 322 323 324 |
# File 'sample/tkmulticolumnlist.rb', line 321 def show_each_hscr @show_each_hscr = true @c_hscr.grid('row'=>2, 'column'=>0, 'sticky'=>'ew') end |
#show_win_hscr ⇒ Object
window hscroll
331 332 333 334 |
# File 'sample/tkmulticolumnlist.rb', line 331 def show_win_hscr @show_win_hscr = true @h_scroll.grid('row'=>3, 'column'=>0, 'sticky'=>'ew') end |
#titlebackground(bg) ⇒ Object
set title background color
407 408 409 410 411 |
# File 'sample/tkmulticolumnlist.rb', line 407 def titlebackground(bg) @f_title_pad['background'] = bg @title_list.each{|label| label['background'] = bg} self end |
#titleborder(width) ⇒ Object
set title borders
378 379 380 381 382 383 |
# File 'sample/tkmulticolumnlist.rb', line 378 def titleborder(width) @title_border = width @f_title_pad['border'] = @title_border @title_list.each{|label| label['border'] = @title_border} self end |
#titlecommand(idx, cmd = Proc.new) ⇒ Object
set title cmds
414 415 416 |
# File 'sample/tkmulticolumnlist.rb', line 414 def titlecommand(idx, cmd=Proc.new) @title_cmd[idx] = cmd end |
#titlefont(font) ⇒ Object
set title font
386 387 388 389 390 391 392 393 394 395 396 397 398 |
# File 'sample/tkmulticolumnlist.rb', line 386 def titlefont(font) @title_list.each{|label| label['font'] = font} title_height = 0 @title_list.each{|w| h = w.winfo_reqheight title_height = h if title_height < h } @f_title.height title_height bbox = @w_title.bbox @c_title.height(bbox[3]) @c_title.scrollregion(bbox) self end |
#titleforeground(fg) ⇒ Object
set title foreground color
401 402 403 404 |
# File 'sample/tkmulticolumnlist.rb', line 401 def titleforeground(fg) @title_list.each{|label| label['foreground'] = fg} self end |
#titleinvoke(idx) ⇒ Object
call title cmds
419 420 421 |
# File 'sample/tkmulticolumnlist.rb', line 419 def titleinvoke(idx) @title_cmd[idx].call if @title_cmd[idx] end |
#titlelabels(*indices) ⇒ Object
get label widgets of listbox titles
424 425 426 |
# File 'sample/tkmulticolumnlist.rb', line 424 def titlelabels(*indices) @title_list[*indices] end |