Class: Tk::BLT::Vector

Inherits:
TkVariable show all
Defined in:
ext/lib/tkextlib/blt/vector.rb

Direct Known Subclasses

VectorAccess

Constant Summary collapse

TkCommandNames =
['::blt::vector'.freeze].freeze

Constants inherited from TkVariable

TkVariable::TkVar_CB_TBL, TkVariable::TkVar_ID_TBL, TkVariable::USE_OLD_TRACE_OPTION_STYLE, TkVariable::USE_TCLs_SET_VARIABLE_FUNCTIONS

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

Constants included from Tk

AUTO_PATH, Checkbutton, CloneMenu, JAPANIZED_TK, LIBRARY_PATH, Labelframe, MenuButton, OptionMenuButton, PACKAGE_PATH, Panedwindow, RELEASE_DATE, Radiobutton, 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::BINARY, Encoding::BINARY_NAME, Encoding::DEFAULT_EXTERNAL_NAME, Encoding::DEFAULT_INTERNAL_NAME, Encoding::ENCODING_TABLE, Encoding::RubyEncoding, Encoding::UNKNOWN, Encoding::UTF8_NAME

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from TkVariable

#%, #&, #**, #<=>, #==, #=~, #bool, #bool_element, callback, #coerce, #default_element_value_type, #default_proc, #default_value, #default_value_type, #element_lappend, #element_lget_f, #element_lget_i, #element_lindex, #element_lset, #element_to_f, #element_to_i, #element_to_s, #element_to_sym, #eventloop_tkwait, #eventloop_wait, #exist?, #id, #is_hash?, #is_scalar?, #keys, #lappend, #lget_f, #lget_i, #lindex, #list, #list_element, #lset, new_hash, #nonzero?, #numeric, #numeric_element, #numlist, #numlist_element, #procedure, #procedure_element, #ref, #set_bool, #set_bool_element, #set_bool_element_type, #set_bool_type, #set_default_element_value_type, #set_default_value, #set_default_value_type, #set_element_value, #set_element_value_type, #set_list, #set_list_element, #set_list_element_type, #set_list_type, #set_numeric, #set_numeric_element, #set_numeric_element_type, #set_numeric_type, #set_numlist_element_type, #set_numlist_type, #set_procedure, #set_procedure_element, #set_procedure_element_type, #set_procedure_type, #set_string, #set_string_element, #set_string_element_type, #set_string_type, #set_symbol, #set_symbol_element, #set_symbol_element_type, #set_symbol_type, #set_value, #set_value_type, #set_variable, #set_variable_element, #set_variable_element_type, #set_variable_type, #set_window, #set_window_element, #set_window_element_type, #set_window_type, #size, #string_element, #thread_tkwait, #thread_wait, #tkwait, #to_eval, #to_f, #to_i, #to_sym, #trace, #trace_callback, #trace_element, #trace_info, #trace_info_for_element, #trace_remove, #trace_remove_for_element, #undef_default, #unset, #update, #value, #value=, #variable_element, #wait, #window, #window_element, #zero?, #|

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_str, number, procedure, simplelist, string, #subst, tk_tcl2ruby, uninstall_cmd, #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 Tk

BinaryString, EncodedString, #Grid, #Pack, #Place, UTF8_String, __set_toplevel_aliases__, add_kinsoku, bell, bell_on_display, const_missing, current_grabs, cursor_display, default_widget_set, default_widget_set=, delete_kinsoku, 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, ungrid, unload_tcllibrary, unpack, unplace, update, #update, update_idletasks, utf_to_backslash, utf_to_backslash_sequence, wakeup

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

Constructor Details

#initialize(size = nil, keys = {}) ⇒ Vector

Returns a new instance of Vector.



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'ext/lib/tkextlib/blt/vector.rb', line 42

def initialize(size=nil, keys={})
  if size.kind_of?(Hash)
    keys = size
    size = nil
  end
  if size.kind_of?(Array)
    # [first, last]
    size = size.join(':')
  end
  if size
    @id = TkCore::INTERP._invoke('::blt::vector', 'create', 
                                 "#auto(#{size})", *hash_kv(keys))
  else
    @id = TkCore::INTERP._invoke('::blt::vector', 'create', 
                                 "#auto", *hash_kv(keys))
  end

  TkVar_ID_TBL.mutex.synchronize{
    TkVar_ID_TBL[@id] = self
  }

  @def_default = false
  @default_val = nil

  @trace_var  = nil
  @trace_elem = nil
  @trace_opts = nil

  # teach Tk-ip that @id is global var
  TkCore::INTERP._invoke_without_enc('global', @id)
end

Class Method Details

.create(*args) ⇒ Object



13
14
15
# File 'ext/lib/tkextlib/blt/vector.rb', line 13

def self.create(*args)
  tk_call('::blt::vector', 'create', *args)
end

.destroy(*args) ⇒ Object



17
18
19
# File 'ext/lib/tkextlib/blt/vector.rb', line 17

def self.destroy(*args)
  tk_call('::blt::vector', 'destroy', *args)
end

.expr(expression) ⇒ Object



21
22
23
# File 'ext/lib/tkextlib/blt/vector.rb', line 21

def self.expr(expression)
  tk_call('::blt::vector', 'expr', expression)
end

.names(pat = None) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'ext/lib/tkextlib/blt/vector.rb', line 25

def self.names(pat=None)
  list = simplelist(tk_call('::blt::vector', 'names', pat))
  TkVar_ID_TBL.mutex.synchronize{
    list.collect{|name|
      if TkVar_ID_TBL[name]
        TkVar_ID_TBL[name]
      elsif name[0..1] == '::' && TkVar_ID_TBL[name[2..-1]]
        TkVar_ID_TBL[name[2..-1]]
      else
        name
      end
    }
  }
end

Instance Method Details

#*(item) ⇒ Object



86
87
88
# File 'ext/lib/tkextlib/blt/vector.rb', line 86

def *(item)
  list(tk_call(@id, '*', item))
end

#+(item) ⇒ Object



90
91
92
# File 'ext/lib/tkextlib/blt/vector.rb', line 90

def +(item)
  list(tk_call(@id, '+', item))
end

#-(item) ⇒ Object



94
95
96
# File 'ext/lib/tkextlib/blt/vector.rb', line 94

def -(item)
  list(tk_call(@id, '-', item))
end

#/(item) ⇒ Object



98
99
100
# File 'ext/lib/tkextlib/blt/vector.rb', line 98

def /(item)
  list(tk_call(@id, '/', item))
end

#[](idx) ⇒ Object



140
141
142
# File 'ext/lib/tkextlib/blt/vector.rb', line 140

def [](idx)
  index(idx)
end

#[]=(idx, val) ⇒ Object



144
145
146
# File 'ext/lib/tkextlib/blt/vector.rb', line 144

def []=(idx, val)
  index(idx, val)
end

#append(*vectors) ⇒ Object



102
103
104
# File 'ext/lib/tkextlib/blt/vector.rb', line 102

def append(*vectors)
  tk_call(@id, 'append', *vectors)
end

#binread(channel, len = None, keys = {}) ⇒ Object



106
107
108
109
110
111
112
113
114
# File 'ext/lib/tkextlib/blt/vector.rb', line 106

def binread(channel, len=None, keys={})
  if len.kind_of?(Hash)
    keys = len
    len = None
  end
  keys = _symbolkey2str(keys)
  keys['swap'] = None if keys.delete('swap')
  tk_call(@id, 'binread', channel, len, keys)
end

#clearObject



116
117
118
119
# File 'ext/lib/tkextlib/blt/vector.rb', line 116

def clear()
  tk_call(@id, 'clear')
  self
end

#delete(*indices) ⇒ Object



121
122
123
124
# File 'ext/lib/tkextlib/blt/vector.rb', line 121

def delete(*indices)
  tk_call(@id, 'delete', *indices)
  self
end

#destroyObject



74
75
76
# File 'ext/lib/tkextlib/blt/vector.rb', line 74

def destroy
  tk_call('::blt::vector', 'destroy', @id)
end

#dup_vector(vec) ⇒ Object



126
127
128
129
# File 'ext/lib/tkextlib/blt/vector.rb', line 126

def dup_vector(vec)
  tk_call(@id, 'dup', vec)
  self
end

#expr(expression) ⇒ Object



131
132
133
134
# File 'ext/lib/tkextlib/blt/vector.rb', line 131

def expr(expression)
  tk_call(@id, 'expr', expression)
  self
end

#index(idx, val = None) ⇒ Object



136
137
138
# File 'ext/lib/tkextlib/blt/vector.rb', line 136

def index(idx, val=None)
  number(tk_call(@id, 'index', idx, val))
end

#inspectObject



78
79
80
# File 'ext/lib/tkextlib/blt/vector.rb', line 78

def inspect
  '#<Tk::BLT::Vector: ' + @id + '>'
end

#lengthObject



148
149
150
# File 'ext/lib/tkextlib/blt/vector.rb', line 148

def length()
  number(tk_call(@id, 'length'))
end

#length=(size) ⇒ Object



152
153
154
# File 'ext/lib/tkextlib/blt/vector.rb', line 152

def length=(size)
  number(tk_call(@id, 'length', size))
end

#merge(*vectors) ⇒ Object



156
157
158
159
# File 'ext/lib/tkextlib/blt/vector.rb', line 156

def merge(*vectors)
  tk_call(@id, 'merge', *vectors)
  self
end

#normalize(vec = None) ⇒ Object



161
162
163
164
# File 'ext/lib/tkextlib/blt/vector.rb', line 161

def normalize(vec=None)
  tk_call(@id, 'normalize', vec)
  self
end

#notify(keyword) ⇒ Object



166
167
168
169
# File 'ext/lib/tkextlib/blt/vector.rb', line 166

def notify(keyword)
  tk_call(@id, 'notify', keyword)
  self
end

#offsetObject



171
172
173
# File 'ext/lib/tkextlib/blt/vector.rb', line 171

def offset()
  number(tk_call(@id, 'offset'))
end

#offset=(val) ⇒ Object



175
176
177
# File 'ext/lib/tkextlib/blt/vector.rb', line 175

def offset=(val)
  number(tk_call(@id, 'offset', val))
end

#populate(vector, density = None) ⇒ Object



183
184
185
186
# File 'ext/lib/tkextlib/blt/vector.rb', line 183

def populate(vector, density=None)
  tk_call(@id, 'populate', vector, density)
  self
end

#randomObject



179
180
181
# File 'ext/lib/tkextlib/blt/vector.rb', line 179

def random()
  tk_call(@id, 'random')
end

#range(first, last = None) ⇒ Object



188
189
190
# File 'ext/lib/tkextlib/blt/vector.rb', line 188

def range(first, last=None)
  list(tk_call(@id, 'range', first, last))
end

#search(val1, val2 = None) ⇒ Object



192
193
194
# File 'ext/lib/tkextlib/blt/vector.rb', line 192

def search(val1, val2=None)
  list(tk_call(@id, 'search', val1, val2))
end

#seq(start, finish = None, step = None) ⇒ Object



201
202
203
204
# File 'ext/lib/tkextlib/blt/vector.rb', line 201

def seq(start, finish=None, step=None)
  tk_call(@id, 'seq', start, finish, step)
  self
end

#set(item) ⇒ Object



196
197
198
199
# File 'ext/lib/tkextlib/blt/vector.rb', line 196

def set(item)
  tk_call(@id, 'set', item)
  self
end

#sort(*vectors) ⇒ Object



206
207
208
209
# File 'ext/lib/tkextlib/blt/vector.rb', line 206

def sort(*vectors)
  tk_call(@id, 'sort', *vectors)
  self
end

#sort_reverse(*vectors) ⇒ Object



211
212
213
214
# File 'ext/lib/tkextlib/blt/vector.rb', line 211

def sort_reverse(*vectors)
  tk_call(@id, 'sort', '-reverse', *vectors)
  self
end

#split(*vectors) ⇒ Object



216
217
218
219
# File 'ext/lib/tkextlib/blt/vector.rb', line 216

def split(*vectors)
  tk_call(@id, 'split', *vectors)
  self
end

#to_sObject



82
83
84
# File 'ext/lib/tkextlib/blt/vector.rb', line 82

def to_s
  @id
end

#variable(var) ⇒ Object



221
222
223
224
# File 'ext/lib/tkextlib/blt/vector.rb', line 221

def variable(var)
  tk_call(@id, 'variable', var)
  self
end