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
430 431 432 |
# File 'sample/tkmulticolumnlist.rb', line 430 def columns(*indices) @lbox_list[*indices] end |
#command(cmd) ⇒ Object
set command
342 343 344 345 |
# File 'sample/tkmulticolumnlist.rb', line 342 def command(cmd) @command = cmd self end |
#delete(*idx) ⇒ Object
434 435 436 437 438 439 440 441 442 443 |
# File 'sample/tkmulticolumnlist.rb', line 434 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
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 475 |
# File 'sample/tkmulticolumnlist.rb', line 445 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
494 495 496 497 498 499 500 501 |
# File 'sample/tkmulticolumnlist.rb', line 494 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
477 478 479 |
# File 'sample/tkmulticolumnlist.rb', line 477 def get_select get(@lbox_list[0].select_index) end |
#hide_each_hscr ⇒ Object
326 327 328 329 |
# File 'sample/tkmulticolumnlist.rb', line 326 def hide_each_hscr @show_each_hscr = false @c_hscr.ungrid end |
#hide_win_hscr ⇒ Object
336 337 338 339 |
# File 'sample/tkmulticolumnlist.rb', line 336 def hide_win_hscr @show_each_hscr = false @h_scroll.ungrid end |
#insert(idx, *lines) ⇒ Object
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 550 |
# File 'sample/tkmulticolumnlist.rb', line 503 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
317 318 319 |
# File 'sample/tkmulticolumnlist.rb', line 317 def keep_minsize(bool) @keep_minsize = bool end |
#keep_minsize? ⇒ Boolean
keep_minsize?
314 315 316 |
# File 'sample/tkmulticolumnlist.rb', line 314 def keep_minsize? @keep_minsize end |
#listboxborder(width) ⇒ Object
set listbox borders
366 367 368 369 370 |
# File 'sample/tkmulticolumnlist.rb', line 366 def listboxborder(width) @lbox_border = width @lbox_list.each{|w| w['border'] = @lbox_border} self end |
#listboxrelief(relief) ⇒ Object
set listbox relief
373 374 375 376 |
# File 'sample/tkmulticolumnlist.rb', line 373 def listboxrelief(relief) @lbox_list.each{|w| w['relief'] = relief} self end |
#scrollbarborder(width) ⇒ Object
set scrollbar border
357 358 359 360 361 362 363 |
# File 'sample/tkmulticolumnlist.rb', line 357 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
348 349 350 351 352 353 354 |
# File 'sample/tkmulticolumnlist.rb', line 348 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
552 553 554 |
# File 'sample/tkmulticolumnlist.rb', line 552 def select_clear(first, last=None) @lbox_list.each{|lbox| lbox.sel_clear(first, last=None)} end |
#select_set(first, last = None) ⇒ Object
556 557 558 |
# File 'sample/tkmulticolumnlist.rb', line 556 def select_set(first, last=None) @lbox_list.each{|lbox| lbox.sel_set(first, last=None)} end |
#show_each_hscr ⇒ Object
each hscr
322 323 324 325 |
# File 'sample/tkmulticolumnlist.rb', line 322 def show_each_hscr @show_each_hscr = true @c_hscr.grid('row'=>2, 'column'=>0, 'sticky'=>'ew') end |
#show_win_hscr ⇒ Object
window hscroll
332 333 334 335 |
# File 'sample/tkmulticolumnlist.rb', line 332 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
408 409 410 411 412 |
# File 'sample/tkmulticolumnlist.rb', line 408 def titlebackground(bg) @f_title_pad['background'] = bg @title_list.each{|label| label['background'] = bg} self end |
#titleborder(width) ⇒ Object
set title borders
379 380 381 382 383 384 |
# File 'sample/tkmulticolumnlist.rb', line 379 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
415 416 417 |
# File 'sample/tkmulticolumnlist.rb', line 415 def titlecommand(idx, cmd=Proc.new) @title_cmd[idx] = cmd end |
#titlefont(font) ⇒ Object
set title font
387 388 389 390 391 392 393 394 395 396 397 398 399 |
# File 'sample/tkmulticolumnlist.rb', line 387 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
402 403 404 405 |
# File 'sample/tkmulticolumnlist.rb', line 402 def titleforeground(fg) @title_list.each{|label| label['foreground'] = fg} self end |
#titleinvoke(idx) ⇒ Object
call title cmds
420 421 422 |
# File 'sample/tkmulticolumnlist.rb', line 420 def titleinvoke(idx) @title_cmd[idx].call if @title_cmd[idx] end |
#titlelabels(*indices) ⇒ Object
get label widgets of listbox titles
425 426 427 |
# File 'sample/tkmulticolumnlist.rb', line 425 def titlelabels(*indices) @title_list[*indices] end |