Class: TkMultiListFrame
- Includes:
- TkComposite
- Defined in:
- sample/tkmultilistframe.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
- #activate(idx) ⇒ Object
- #bbox(idx) ⇒ Object
-
#columns(*indices) ⇒ Object
get listbox widgets.
- #delete(*idx) ⇒ Object
- #get(*idx) ⇒ Object
- #get_by_hash(*idx) ⇒ 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.
-
#mode(sel_mode) ⇒ Object
set ‘mode’ option of listboxes.
-
#scrollbarborder(width) ⇒ Object
set scrollbar border.
-
#scrollbarwidth(width) ⇒ Object
set scrollbar width.
- #selection_anchor(index) ⇒ Object
- #selection_clear(first, last = None) ⇒ Object
- #selection_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
#activate(idx) ⇒ Object
443 444 445 |
# File 'sample/tkmultilistframe.rb', line 443 def activate(idx) @lbox_list.each{|lbox| lbox.activate(idx)} end |
#bbox(idx) ⇒ Object
447 448 449 |
# File 'sample/tkmultilistframe.rb', line 447 def bbox(idx) @lbox_list.collect{|lbox| lbox.bbox(idx)} end |
#columns(*indices) ⇒ Object
get listbox widgets
439 440 441 |
# File 'sample/tkmultilistframe.rb', line 439 def columns(*indices) @lbox_list[*indices] end |
#delete(*idx) ⇒ Object
451 452 453 |
# File 'sample/tkmultilistframe.rb', line 451 def delete(*idx) @lbox_list.collect{|lbox| lbox.delete(*idx)} end |
#get(*idx) ⇒ Object
455 456 457 458 459 460 461 462 463 464 465 466 |
# File 'sample/tkmultilistframe.rb', line 455 def get(*idx) if idx.size == 1 @lbox_list.collect{|lbox| lbox.get(*idx)} else list = @lbox_list.collect{|lbox| lbox.get(*idx)} result = [] list[0].each_with_index{|line, index| result << list.collect{|lines| lines[index]} } result end end |
#get_by_hash(*idx) ⇒ Object
481 482 483 484 485 486 487 488 |
# File 'sample/tkmultilistframe.rb', line 481 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 |
#hide_each_hscr ⇒ Object
341 342 343 344 |
# File 'sample/tkmultilistframe.rb', line 341 def hide_each_hscr @show_each_hscr = false @c_hscr.ungrid end |
#hide_win_hscr ⇒ Object
351 352 353 354 |
# File 'sample/tkmultilistframe.rb', line 351 def hide_win_hscr @show_each_hscr = false @h_scroll.ungrid end |
#insert(idx, *lines) ⇒ Object
490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 |
# File 'sample/tkmultilistframe.rb', line 490 def insert(idx, *lines) lbox_ins = [] (0..@lbox_list.size).each{lbox_ins << []} 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, *lbox_ins[index]) if lbox_ins[index] } end |
#keep_minsize(bool) ⇒ Object
332 333 334 |
# File 'sample/tkmultilistframe.rb', line 332 def keep_minsize(bool) @keep_minsize = bool end |
#keep_minsize? ⇒ Boolean
keep_minsize?
329 330 331 |
# File 'sample/tkmultilistframe.rb', line 329 def keep_minsize? @keep_minsize end |
#listboxborder(width) ⇒ Object
set listbox borders
375 376 377 378 379 |
# File 'sample/tkmultilistframe.rb', line 375 def listboxborder(width) @lbox_border = width @lbox_list.each{|w| w['border'] = @lbox_border} self end |
#listboxrelief(relief) ⇒ Object
set listbox relief
382 383 384 385 |
# File 'sample/tkmultilistframe.rb', line 382 def listboxrelief(relief) @lbox_list.each{|w| w['relief'] = relief} self end |
#mode(sel_mode) ⇒ Object
set ‘mode’ option of listboxes
319 320 321 322 323 324 325 326 |
# File 'sample/tkmultilistframe.rb', line 319 def mode(sel_mode) @lbox_list.each{|l| = l. = - [ @lbox_mode[@current_mode] ] l.(.unshift(@lbox_mode[sel_mode])) @current_mode = sel_mode } end |
#scrollbarborder(width) ⇒ Object
set scrollbar border
366 367 368 369 370 371 372 |
# File 'sample/tkmultilistframe.rb', line 366 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
357 358 359 360 361 362 363 |
# File 'sample/tkmultilistframe.rb', line 357 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 |
#selection_anchor(index) ⇒ Object
527 528 529 |
# File 'sample/tkmultilistframe.rb', line 527 def selection_anchor(index) @lbox_list.each{|lbox| lbox.selection_anchor(index)} end |
#selection_clear(first, last = None) ⇒ Object
531 532 533 |
# File 'sample/tkmultilistframe.rb', line 531 def selection_clear(first, last=None) @lbox_list.each{|lbox| lbox.selection_clear(first, last=None)} end |
#selection_set(first, last = None) ⇒ Object
535 536 537 |
# File 'sample/tkmultilistframe.rb', line 535 def selection_set(first, last=None) @lbox_list.each{|lbox| lbox.selection_set(first, last=None)} end |
#show_each_hscr ⇒ Object
each hscr
337 338 339 340 |
# File 'sample/tkmultilistframe.rb', line 337 def show_each_hscr @show_each_hscr = true @c_hscr.grid('row'=>2, 'column'=>0, 'sticky'=>'ew') end |
#show_win_hscr ⇒ Object
window hscroll
347 348 349 350 |
# File 'sample/tkmultilistframe.rb', line 347 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
417 418 419 420 421 |
# File 'sample/tkmultilistframe.rb', line 417 def titlebackground(bg) @f_title_pad['background'] = bg @title_list.each{|label| label['background'] = bg} self end |
#titleborder(width) ⇒ Object
set title borders
388 389 390 391 392 393 |
# File 'sample/tkmultilistframe.rb', line 388 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
424 425 426 |
# File 'sample/tkmultilistframe.rb', line 424 def titlecommand(idx, cmd=Proc.new) @title_cmd[idx] = cmd end |
#titlefont(font) ⇒ Object
set title font
396 397 398 399 400 401 402 403 404 405 406 407 408 |
# File 'sample/tkmultilistframe.rb', line 396 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
411 412 413 414 |
# File 'sample/tkmultilistframe.rb', line 411 def titleforeground(fg) @title_list.each{|label| label['foreground'] = fg} self end |
#titleinvoke(idx) ⇒ Object
call title cmds
429 430 431 |
# File 'sample/tkmultilistframe.rb', line 429 def titleinvoke(idx) @title_cmd[idx].call if @title_cmd[idx] end |
#titlelabels(*indices) ⇒ Object
get label widgets of listbox titles
434 435 436 |
# File 'sample/tkmultilistframe.rb', line 434 def titlelabels(*indices) @title_list[*indices] end |