Class: TkMultiListbox
- Includes:
- TkComposite
- Defined in:
- sample/tkmultilistbox.rb
Constant Summary
Constants included from Tk
Tk::AUTO_PATH, 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
- #insert(idx, *lines) ⇒ Object
-
#mode(sel_mode) ⇒ Object
set ‘mode’ option of listboxes.
-
#scrollbarwidth(width) ⇒ Object
set scrollbar width.
- #selection_anchor(index) ⇒ Object
- #selection_clear(first, last = None) ⇒ Object
- #selection_set(first, last = None) ⇒ Object
-
#titleconfig(font, fg, bg) ⇒ Object
set options of titles.
-
#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__, add_kinsoku, bell, bell_on_display, const_missing, current_grabs, cursor_display, default_widget_set, default_widget_set=, 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, 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, toplevel_aliases_on_widget_set, 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
226 227 228 |
# File 'sample/tkmultilistbox.rb', line 226 def activate(idx) @lbox_list.each{|lbox| lbox.activate(idx)} end |
#bbox(idx) ⇒ Object
230 231 232 |
# File 'sample/tkmultilistbox.rb', line 230 def bbox(idx) @lbox_list.collect{|lbox| lbox.bbox(idx)} end |
#columns(*indices) ⇒ Object
get listbox widgets
222 223 224 |
# File 'sample/tkmultilistbox.rb', line 222 def columns(*indices) @lbox_list[*indices] end |
#delete(*idx) ⇒ Object
234 235 236 |
# File 'sample/tkmultilistbox.rb', line 234 def delete(*idx) @lbox_list.collect{|lbox| lbox.delete(*idx)} end |
#get(*idx) ⇒ Object
238 239 240 241 242 243 244 245 246 247 248 249 |
# File 'sample/tkmultilistbox.rb', line 238 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
264 265 266 267 268 269 270 271 |
# File 'sample/tkmultilistbox.rb', line 264 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 |
#insert(idx, *lines) ⇒ Object
273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 |
# File 'sample/tkmultilistbox.rb', line 273 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 |
#mode(sel_mode) ⇒ Object
set ‘mode’ option of listboxes
191 192 193 194 195 196 197 198 |
# File 'sample/tkmultilistbox.rb', line 191 def mode(sel_mode) @lbox_list.each{|l| = l. = - [ @mode[@current_mode] ] l.(.unshift(@mode[sel_mode])) @current_mode = sel_mode } end |
#scrollbarwidth(width) ⇒ Object
set scrollbar width
201 202 203 204 205 |
# File 'sample/tkmultilistbox.rb', line 201 def (width) @v_scroll['width'] = width @hscr_list.each{|hscr| hscr['width'] = width} @f_hscr['height'] = width + 2 * @v_scroll.cget('borderwidth') end |
#selection_anchor(index) ⇒ Object
310 311 312 |
# File 'sample/tkmultilistbox.rb', line 310 def selection_anchor(index) @lbox_list.each{|lbox| lbox.selection_anchor(index)} end |
#selection_clear(first, last = None) ⇒ Object
314 315 316 |
# File 'sample/tkmultilistbox.rb', line 314 def selection_clear(first, last=None) @lbox_list.each{|lbox| lbox.selection_clear(first, last=None)} end |
#selection_set(first, last = None) ⇒ Object
318 319 320 |
# File 'sample/tkmultilistbox.rb', line 318 def selection_set(first, last=None) @lbox_list.each{|lbox| lbox.selection_set(first, last=None)} end |
#titleconfig(font, fg, bg) ⇒ Object
set options of titles
208 209 210 211 212 213 214 |
# File 'sample/tkmultilistbox.rb', line 208 def titleconfig(font, fg, bg) keys = {} keys['font'] = font if font keys['foreground'] = fg if fg keys['background'] = bg if bg @title_list.each{|label| label.configure(keys)} end |
#titlelabels(*indices) ⇒ Object
get label widgets of listbox titles
217 218 219 |
# File 'sample/tkmultilistbox.rb', line 217 def titlelabels(*indices) @title_list[*indices] end |