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
442 443 444 |
# File 'sample/tkmultilistframe.rb', line 442 def activate(idx) @lbox_list.each{|lbox| lbox.activate(idx)} end |
#bbox(idx) ⇒ Object
446 447 448 |
# File 'sample/tkmultilistframe.rb', line 446 def bbox(idx) @lbox_list.collect{|lbox| lbox.bbox(idx)} end |
#columns(*indices) ⇒ Object
get listbox widgets
438 439 440 |
# File 'sample/tkmultilistframe.rb', line 438 def columns(*indices) @lbox_list[*indices] end |
#delete(*idx) ⇒ Object
450 451 452 |
# File 'sample/tkmultilistframe.rb', line 450 def delete(*idx) @lbox_list.collect{|lbox| lbox.delete(*idx)} end |
#get(*idx) ⇒ Object
454 455 456 457 458 459 460 461 462 463 464 465 |
# File 'sample/tkmultilistframe.rb', line 454 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
480 481 482 483 484 485 486 487 |
# File 'sample/tkmultilistframe.rb', line 480 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
340 341 342 343 |
# File 'sample/tkmultilistframe.rb', line 340 def hide_each_hscr @show_each_hscr = false @c_hscr.ungrid end |
#hide_win_hscr ⇒ Object
350 351 352 353 |
# File 'sample/tkmultilistframe.rb', line 350 def hide_win_hscr @show_each_hscr = false @h_scroll.ungrid end |
#insert(idx, *lines) ⇒ Object
489 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 |
# File 'sample/tkmultilistframe.rb', line 489 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
331 332 333 |
# File 'sample/tkmultilistframe.rb', line 331 def keep_minsize(bool) @keep_minsize = bool end |
#keep_minsize? ⇒ Boolean
keep_minsize?
328 329 330 |
# File 'sample/tkmultilistframe.rb', line 328 def keep_minsize? @keep_minsize end |
#listboxborder(width) ⇒ Object
set listbox borders
374 375 376 377 378 |
# File 'sample/tkmultilistframe.rb', line 374 def listboxborder(width) @lbox_border = width @lbox_list.each{|w| w['border'] = @lbox_border} self end |
#listboxrelief(relief) ⇒ Object
set listbox relief
381 382 383 384 |
# File 'sample/tkmultilistframe.rb', line 381 def listboxrelief(relief) @lbox_list.each{|w| w['relief'] = relief} self end |
#mode(sel_mode) ⇒ Object
set ‘mode’ option of listboxes
318 319 320 321 322 323 324 325 |
# File 'sample/tkmultilistframe.rb', line 318 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
365 366 367 368 369 370 371 |
# File 'sample/tkmultilistframe.rb', line 365 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
356 357 358 359 360 361 362 |
# File 'sample/tkmultilistframe.rb', line 356 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
526 527 528 |
# File 'sample/tkmultilistframe.rb', line 526 def selection_anchor(index) @lbox_list.each{|lbox| lbox.selection_anchor(index)} end |
#selection_clear(first, last = None) ⇒ Object
530 531 532 |
# File 'sample/tkmultilistframe.rb', line 530 def selection_clear(first, last=None) @lbox_list.each{|lbox| lbox.selection_clear(first, last=None)} end |
#selection_set(first, last = None) ⇒ Object
534 535 536 |
# File 'sample/tkmultilistframe.rb', line 534 def selection_set(first, last=None) @lbox_list.each{|lbox| lbox.selection_set(first, last=None)} end |
#show_each_hscr ⇒ Object
each hscr
336 337 338 339 |
# File 'sample/tkmultilistframe.rb', line 336 def show_each_hscr @show_each_hscr = true @c_hscr.grid('row'=>2, 'column'=>0, 'sticky'=>'ew') end |
#show_win_hscr ⇒ Object
window hscroll
346 347 348 349 |
# File 'sample/tkmultilistframe.rb', line 346 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
416 417 418 419 420 |
# File 'sample/tkmultilistframe.rb', line 416 def titlebackground(bg) @f_title_pad['background'] = bg @title_list.each{|label| label['background'] = bg} self end |
#titleborder(width) ⇒ Object
set title borders
387 388 389 390 391 392 |
# File 'sample/tkmultilistframe.rb', line 387 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
423 424 425 |
# File 'sample/tkmultilistframe.rb', line 423 def titlecommand(idx, cmd=Proc.new) @title_cmd[idx] = cmd end |
#titlefont(font) ⇒ Object
set title font
395 396 397 398 399 400 401 402 403 404 405 406 407 |
# File 'sample/tkmultilistframe.rb', line 395 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
410 411 412 413 |
# File 'sample/tkmultilistframe.rb', line 410 def titleforeground(fg) @title_list.each{|label| label['foreground'] = fg} self end |
#titleinvoke(idx) ⇒ Object
call title cmds
428 429 430 |
# File 'sample/tkmultilistframe.rb', line 428 def titleinvoke(idx) @title_cmd[idx].call if @title_cmd[idx] end |
#titlelabels(*indices) ⇒ Object
get label widgets of listbox titles
433 434 435 |
# File 'sample/tkmultilistframe.rb', line 433 def titlelabels(*indices) @title_list[*indices] end |