Class: Tk::BLT::PlotComponent::Marker

Inherits:
TkObject show all
Extended by:
Tk, OptKeys, TkItemConfigOptkeys, TkItemFontOptkeys
Defined in:
lib/tkextlib/blt/component.rb

Constant Summary collapse

MarkerTypeName =
nil
MarkerTypeToClass =
{}
MarkerID_TBL =
TkCore::INTERP.create_table

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

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

Class Method Summary collapse

Instance Method Summary collapse

Methods included from TkItemConfigOptkeys

__conv_item_keyonly_opts, itemconfig_hash_kv

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 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 included from TkCore

#_tk_call_to_list_core, #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, #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 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

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 inherited from TkKernel

new

Constructor Details

#initialize(parent, *args) ⇒ Marker

Returns a new instance of Marker.



954
955
956
957
958
959
960
961
962
963
# File 'lib/tkextlib/blt/component.rb', line 954

def initialize(parent, *args)
  @parent = @chart = parent
  @cpath = parent.path

  @path = @id = create_self(*args) # an integer number as 'item id'
  unless Tk::BLT::PlotComponent::Marker::MarkerID_TBL[@cpath]
    Tk::BLT::PlotComponent::Marker::MarkerID_TBL[@cpath] = {}
  end
  Tk::BLT::PlotComponent::Marker::MarkerID_TBL[@cpath][@id] = self
end

Dynamic Method Handling

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

Class Method Details

._parse_create_args(keys) ⇒ Object



885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
# File 'lib/tkextlib/blt/component.rb', line 885

def self._parse_create_args(keys)
  fontkeys = {}
  methodkeys = {}
  if keys.kind_of? Hash
    keys = _symbolkey2str(keys)

    __item_font_optkeys(nil).each{|key|
      fkey = key.to_s
      fontkeys[fkey] = keys.delete(fkey) if keys.key?(fkey)

      fkey = "kanji#{key}"
      fontkeys[fkey] = keys.delete(fkey) if keys.key?(fkey)

      fkey = "latin#{key}"
      fontkeys[fkey] = keys.delete(fkey) if keys.key?(fkey)

      fkey = "ascii#{key}"
      fontkeys[fkey] = keys.delete(fkey) if keys.key?(fkey)
    }

    __item_methodcall_optkeys(nil).each{|key|
      key = key.to_s
      methodkeys[key] = keys.delete(key) if keys.key?(key)
    }

    __item_ruby2val_optkeys(nil).each{|key, method|
      key = key.to_s
      keys[key] = method.call(keys[key]) if keys.has_key?(key)
    }

    args = itemconfig_hash_kv(nil, keys)
  else
    args = []
  end

  [args, fontkeys]
end

.create(chart, keys = {}) ⇒ Object



924
925
926
927
928
929
930
931
932
933
# File 'lib/tkextlib/blt/component.rb', line 924

def self.create(chart, keys={})
  unless self::MarkerTypeName
    fail RuntimeError, "#{self} is an abstract class"
  end
  args, fontkeys = _parse_create_args(keys)
  idnum = tk_call_without_enc(chart.path, 'marker', 'create', 
                              self::MarkerTypeName, *args)
  chart.marker_configure(idnum, fontkeys) unless fontkeys.empty?
  idnum.to_i  # 'item id' is an integer number
end

.create_type(chart, type, keys = {}) ⇒ Object



935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
# File 'lib/tkextlib/blt/component.rb', line 935

def self.create_type(chart, type, keys={})
  args, fontkeys = _parse_create_args(keys)
  idnum = tk_call_without_enc(chart.path, 'marker', 'create', 
                              type, *args)
  chart.marker_configure(idnum, fontkeys) unless fontkeys.empty?
  id = idnum.to_i  # 'item id' is an integer number
  obj = self.allocate
  obj.instance_eval{
    @parent = @chart = chart
    @cpath = chart.path
    @id = id
    unless Tk::BLT::PlotComponent::Marker::MarkerID_TBL[@cpath]
      Tk::BLT::PlotComponent::Marker::MarkerID_TBL[@cpath] = {}
    end
    Tk::BLT::PlotComponent::Marker::MarkerID_TBL[@cpath][@id] = self
  }
  obj
end

.id2obj(chart, id) ⇒ Object



879
880
881
882
883
# File 'lib/tkextlib/blt/component.rb', line 879

def Marker.id2obj(chart, id)
  cpath = chart.path
  return id unless MarkerID_TBL[cpath]
  MarkerID_TBL[cpath][id]? MarkerID_TBL[cpath][id]: id
end

.type2class(type) ⇒ Object



875
876
877
# File 'lib/tkextlib/blt/component.rb', line 875

def Marker.type2class(type)
  MarkerTypeToClass[type]
end

Instance Method Details

#after(target = None) ⇒ Object



991
992
993
# File 'lib/tkextlib/blt/component.rb', line 991

def after(target=None)
  @chart.marker_after(@id, target)
end

#before(target = None) ⇒ Object



995
996
997
# File 'lib/tkextlib/blt/component.rb', line 995

def before(target=None)
  @chart.marker_before(@id, target)
end

#cget(option) ⇒ Object



977
978
979
# File 'lib/tkextlib/blt/component.rb', line 977

def cget(option)
  @chart.marker_cget(@id, option)
end

#configinfo(key = nil) ⇒ Object



984
985
986
# File 'lib/tkextlib/blt/component.rb', line 984

def configinfo(key=nil)
  @chart.marker_configinfo(@id, key)
end

#configure(key, value = None) ⇒ Object



980
981
982
983
# File 'lib/tkextlib/blt/component.rb', line 980

def configure(key, value=None)
  @chart.marker_configure(@id, key, value)
  self
end

#current_configinfo(key = nil) ⇒ Object



987
988
989
# File 'lib/tkextlib/blt/component.rb', line 987

def current_configinfo(key=nil)
  @chart.current_marker_configinfo(@id, key)
end

#deleteObject



999
1000
1001
# File 'lib/tkextlib/blt/component.rb', line 999

def delete
  @chart.marker_delete(@id)
end

#exist?Boolean

Returns:

  • (Boolean)


1003
1004
1005
# File 'lib/tkextlib/blt/component.rb', line 1003

def exist?
  @chart.marker_exist(@id)
end

#idObject



969
970
971
# File 'lib/tkextlib/blt/component.rb', line 969

def id
  @id
end

#to_evalObject



973
974
975
# File 'lib/tkextlib/blt/component.rb', line 973

def to_eval
  @id
end

#typeObject



1007
1008
1009
# File 'lib/tkextlib/blt/component.rb', line 1007

def type
  @chart.marker_type(@id)
end