Class: Tk::BWidget::ListBox::Item

Inherits:
TkObject show all
Includes:
TkTreatTagFont
Defined in:
lib/tkextlib/bwidget/listbox.rb,
lib/tkextlib/bwidget/listbox.rb

Overview

is NOT a subclass of a listbox widget class. because it constructed on a canvas widget.

Constant Summary collapse

ListItem_TBL =
TkCore::INTERP.create_table
ListItem_ID =
['bw:item'.freeze, '00000'.taint].freeze

Constants included from TkCore

TkCore::EventFlag, TkCore::INTERP, TkCore::WIDGET_DESTROY_HOOK

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

Constants included from Tk

AUTO_PATH, INTERP, JAPANIZED_TK, LIBRARY_PATH, MAINLOOP, PACKAGE_PATH, RELEASE_DATE, TCL_LIBRARY_PATH, TCL_MAJOR_VERSION, TCL_MINOR_VERSION, TCL_PACKAGE_PATH, TCL_PATCHLEVEL, TCL_PRECISION, TCL_VERSION, TK_MAJOR_VERSION, TK_MINOR_VERSION, TK_PATCHLEVEL, TK_VERSION, Tkextlib_RELEASE_DATE, TreeCtrl_Widget, X_Scrollable, Y_Scrollable

Constants included from Encoding

Encoding::TkCommandNames

Class Method Summary collapse

Instance Method Summary collapse

Methods included from TkTreatTagFont

#font_configinfo, #font_configure, #font_copy, #kanjifont_configure, #kanjifont_copy, #latinfont_configure, #latinfont_copy

Methods inherited from TkObject

#destroy, #epath, #event_generate, #method_missing, #path, #tk_send, #tk_send_to_list, #tk_send_to_list_with_enc, #tk_send_to_list_without_enc, #tk_send_to_simplelist, #tk_send_to_simplelist_with_enc, #tk_send_to_simplelist_without_enc, #tk_send_with_enc, #tk_send_without_enc, #to_eval

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, list, num_or_str, number, procedure, simplelist, string, #subst, tk_tcl2ruby, uninstall_cmd, window

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_str, #num_or_str, number, #number, string, #string, uninstall_cmd

Methods included from TkEvent

#install_bind, #install_bind_for_event_class

Methods included from TkBindCore

#bind, #bind_append, #bind_remove, #bindinfo

Methods included from TkConfigMethod

#config_hash_kv, #configure_cmd

Methods included from TkTreatFont

#font_configinfo, #font_configure, #font_copy, #kanjifont_configure, #kanjifont_copy, #latinfont_configure, #latinfont_copy

Methods included from Tk

BinaryString, EncodedString, UTF8_String, add_kinsoku, bell, bell_on_display, const_missing, current_grabs, cursor_display, 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, 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, ungrid, unload_tcllibrary, unpack, unplace, #update, update, update_idletasks, utf_to_backslash, utf_to_backslash_sequence

Methods included from Encoding

#encoding, #encoding=, #encoding_convertfrom, #encoding_convertto, #encoding_dirs, #encoding_dirs=, #encoding_names, #encoding_system, #encoding_system=

Methods inherited from TkKernel

new

Constructor Details

#initialize(lbox, *args) ⇒ Item

Returns a new instance of Item.



224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
# File 'lib/tkextlib/bwidget/listbox.rb', line 224

def initialize(lbox, *args)
  if lbox.kind_of?(Tk::BWidget::ListBox)
    @listbox = lbox
  else
    fail RuntimeError, 
      "expect Tk::BWidget::ListBox or Tk::BWidget::ListBox::Item for 1st argument"
  end

  if args[-1].kind_of?(Hash)
    keys = _symbolkey2str(args.pop)
  else
    keys = {}
  end

  index = keys.delete('index')
  unless args.empty?
    index = args.shift
  end
  index = 'end' unless index

  unless args.empty?
    fail RuntimeError, 'too much arguments'
  end

  @lpath = @listbox.path

  if keys.key?('itemname')
    @path = @id = keys.delete('itemname')
  else
    @path = @id = ListItem_ID.join(TkCore::INTERP._ip_id_)
    ListItem_ID[1].succ!
  end

  ListItem_TBL[@id] = self
  ListItem_TBL[@lpath] = {} unless ListItem_TBL[@lpath]
  ListItem_TBL[@lpath][@id] = self

  @listbox.insert(index, @id, keys)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class TkObject

Class Method Details

.id2obj(lbox, id) ⇒ Object



218
219
220
221
222
# File 'lib/tkextlib/bwidget/listbox.rb', line 218

def self.id2obj(lbox, id)
  lpath = lbox.path
  return id unless ListItem_TBL[lpath]
  ListItem_TBL[lpath][id]? ListItem_TBL[lpath][id]: id
end

Instance Method Details

#[](key) ⇒ Object



272
273
274
# File 'lib/tkextlib/bwidget/listbox.rb', line 272

def [](key)
  cget(key)
end

#[]=(key, val) ⇒ Object



276
277
278
279
# File 'lib/tkextlib/bwidget/listbox.rb', line 276

def []=(key, val)
  configure(key, val)
  val
end

#cget(key) ⇒ Object



281
282
283
# File 'lib/tkextlib/bwidget/listbox.rb', line 281

def cget(key)
  @listbox.itemcget(@id, key)
end

#configinfo(key = nil) ⇒ Object



289
290
291
# File 'lib/tkextlib/bwidget/listbox.rb', line 289

def configinfo(key=nil)
  @listbox.itemconfiginfo(@id, key)
end

#configure(key, val = None) ⇒ Object



285
286
287
# File 'lib/tkextlib/bwidget/listbox.rb', line 285

def configure(key, val=None)
  @listbox.itemconfigure(@id, key, val)
end

#current_configinfo(key = nil) ⇒ Object



293
294
295
# File 'lib/tkextlib/bwidget/listbox.rb', line 293

def current_configinfo(key=nil)
  @listbox.current_itemconfiginfo(@id, key)
end

#deleteObject



297
298
299
300
# File 'lib/tkextlib/bwidget/listbox.rb', line 297

def delete
  @listbox.delete(@id)
  self
end

#edit(*args) ⇒ Object



302
303
304
305
# File 'lib/tkextlib/bwidget/listbox.rb', line 302

def edit(*args)
  @listbox.edit(@id, *args)
  self
end

#exist?Boolean

Returns:

  • (Boolean)


307
308
309
# File 'lib/tkextlib/bwidget/listbox.rb', line 307

def exist?
  @listbox.exist?(@id)
end

#idObject



268
269
270
# File 'lib/tkextlib/bwidget/listbox.rb', line 268

def id
  @id
end

#indexObject



311
312
313
# File 'lib/tkextlib/bwidget/listbox.rb', line 311

def index
  @listbox.index(@id)
end

#listboxObject



264
265
266
# File 'lib/tkextlib/bwidget/listbox.rb', line 264

def listbox
  @listbox
end

#move(index) ⇒ Object



315
316
317
# File 'lib/tkextlib/bwidget/listbox.rb', line 315

def move(index)
  @listbox.move(@id, index)
end

#seeObject



319
320
321
# File 'lib/tkextlib/bwidget/listbox.rb', line 319

def see
  @listbox.see(@id)
end

#selection_addObject



323
324
325
# File 'lib/tkextlib/bwidget/listbox.rb', line 323

def selection_add
  @listbox.selection_add(@id)
end

#selection_removeObject



327
328
329
# File 'lib/tkextlib/bwidget/listbox.rb', line 327

def selection_remove
  @listbox.selection_remove(@id)
end

#selection_setObject



331
332
333
# File 'lib/tkextlib/bwidget/listbox.rb', line 331

def selection_set
  @listbox.selection_set(@id)
end

#selection_toggleObject



335
336
337
# File 'lib/tkextlib/bwidget/listbox.rb', line 335

def selection_toggle
  @listbox.selection_toggle(@id)
end