Class: Tk::BLT::Tree::Notify

Inherits:
TkObject show all
Defined in:
lib/tkextlib/blt/tree.rb

Constant Summary collapse

NotifyID_TBL =
TkCore::INTERP.create_table

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 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, #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, #bind, #bind_all, #bind_append, #bind_append_all, #bind_remove, #bind_remove_all, #bindinfo, #bindinfo_all, #image_obj, #install_cmd, #subst, #uninstall_cmd

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

Methods included from TkBindCore

#bind, #bind_append, #bind_remove, #bindinfo

Methods included from TkConfigMethod

#[], #[]=, #cget, #config_hash_kv, #configinfo, #configure, #configure_cmd, #current_configinfo

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=

Constructor Details

#initialize(create, tree, *args, &b) ⇒ Notify

Returns a new instance of Notify.



344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
# File 'lib/tkextlib/blt/tree.rb', line 344

def initialize(create, tree, *args, &b)
  @parent = @tree = tree
  @tpath = @parent.path

  unless create
    @path = @id = args[0]
    return
  end

  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
  if TkComm._callback_entry?(args[0])
    cmd = args.shift
  # elsif args[-1].kind_of?(Proc) || args[-1].kind_of?(Method)
  elsif TkComm._callback_entry?(args[-1])
    cmd = args.pop
  elsif b
    cmd = Proc.new(&b)
  else
    fail ArgumentError, "lack of 'command' argument"
  end

  args = args.collect{|arg| '-' << arg.to_s}

  args << proc{|id, type|
    cmd.call(Tk::BLT::Tree::Node.id2obj(@tree, id), 
             ((type[0] == ?-)? type[1..-1]: type))
  }

  @path = @id = tk_call(@tpath, 'notify', 'create', *args)
end

Dynamic Method Handling

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

Class Method Details

.id2obj(tree, id) ⇒ Object



317
318
319
320
321
322
323
324
325
326
327
328
329
# File 'lib/tkextlib/blt/tree.rb', line 317

def self.id2obj(tree, id)
  tpath = tree.path
  return id unless NotifyID_TBL[tpath]
  if NotifyID_TBL[tpath][id]
    NotifyID_TBL[tpath][id]
  else
    begin
      self.new([tree, id])
    rescue
      id
    end
  end
end

.new(tree, *args, &b) ⇒ Object



331
332
333
334
335
336
337
338
339
340
341
342
# File 'lib/tkextlib/blt/tree.rb', line 331

def self.new(tree, *args, &b)
  if tree.kind_of?(Array)
    # not create
    if obj = NotifyID_TBL[tree[0].path][tree[1]]
      return obj
    else
      return super(false, tree[0], tree[1])
    end
  end

  super(true, tree, *args, &b)
end

Instance Method Details

#deleteObject



379
380
381
382
383
# File 'lib/tkextlib/blt/tree.rb', line 379

def delete()
  tk_call(@tpath, 'notify', 'delete', @id)
  NotifyID_TBL[tpath].delete(@id)
  self
end

#idObject



375
376
377
# File 'lib/tkextlib/blt/tree.rb', line 375

def id
  @id
end

#infoObject



385
386
387
388
389
390
391
# File 'lib/tkextlib/blt/tree.rb', line 385

def info()
  lst = simplelist(tk_call(@tpath, 'notify', 'info', id))
  lst[0] = Tk::BLT::Tree::Notify.id2obj(@tree, lst[0])
  lst[1] = simplelist(lst[1]).collect{|flag| flag[1..-1]}
  lst[2] = tk_tcl2ruby(lst[2])
  lst
end