Class: TkMultiListbox
- Includes:
- TkComposite
- Defined in:
- sample/tkmultilistbox.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
- #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__, _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
227 228 229 |
# File 'sample/tkmultilistbox.rb', line 227 def activate(idx) @lbox_list.each{|lbox| lbox.activate(idx)} end |
#bbox(idx) ⇒ Object
231 232 233 |
# File 'sample/tkmultilistbox.rb', line 231 def bbox(idx) @lbox_list.collect{|lbox| lbox.bbox(idx)} end |
#columns(*indices) ⇒ Object
get listbox widgets
223 224 225 |
# File 'sample/tkmultilistbox.rb', line 223 def columns(*indices) @lbox_list[*indices] end |
#delete(*idx) ⇒ Object
235 236 237 |
# File 'sample/tkmultilistbox.rb', line 235 def delete(*idx) @lbox_list.collect{|lbox| lbox.delete(*idx)} end |
#get(*idx) ⇒ Object
239 240 241 242 243 244 245 246 247 248 249 250 |
# File 'sample/tkmultilistbox.rb', line 239 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
265 266 267 268 269 270 271 272 |
# File 'sample/tkmultilistbox.rb', line 265 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
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 309 |
# File 'sample/tkmultilistbox.rb', line 274 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
192 193 194 195 196 197 198 199 |
# File 'sample/tkmultilistbox.rb', line 192 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
202 203 204 205 206 |
# File 'sample/tkmultilistbox.rb', line 202 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
311 312 313 |
# File 'sample/tkmultilistbox.rb', line 311 def selection_anchor(index) @lbox_list.each{|lbox| lbox.selection_anchor(index)} end |
#selection_clear(first, last = None) ⇒ Object
315 316 317 |
# File 'sample/tkmultilistbox.rb', line 315 def selection_clear(first, last=None) @lbox_list.each{|lbox| lbox.selection_clear(first, last=None)} end |
#selection_set(first, last = None) ⇒ Object
319 320 321 |
# File 'sample/tkmultilistbox.rb', line 319 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
209 210 211 212 213 214 215 |
# File 'sample/tkmultilistbox.rb', line 209 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
218 219 220 |
# File 'sample/tkmultilistbox.rb', line 218 def titlelabels(*indices) @title_list[*indices] end |