Class: Tk::BLT::Vector

Inherits:
TkVariable show all
Defined in:
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, Fontchooser, 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::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_hash, #to_i, #to_proc, #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_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

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



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
73
# File 'lib/tkextlib/blt/vector.rb', line 43

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



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

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

.destroy(*args) ⇒ Object



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

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

.expr(expression) ⇒ Object



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

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

.names(pat = None) ⇒ Object



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

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



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

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

#+(item) ⇒ Object



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

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

#-(item) ⇒ Object



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

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

#/(item) ⇒ Object



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

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

#[](idx) ⇒ Object



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

def [](idx)
  index(idx)
end

#[]=(idx, val) ⇒ Object



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

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

#append(*vectors) ⇒ Object



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

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

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



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

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



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

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

#delete(*indices) ⇒ Object



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

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

#destroyObject



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

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

#dup_vector(vec) ⇒ Object



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

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

#expr(expression) ⇒ Object



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

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

#index(idx, val = None) ⇒ Object



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

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

#inspectObject



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

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

#lengthObject



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

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

#length=(size) ⇒ Object



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

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

#merge(*vectors) ⇒ Object



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

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

#normalize(vec = None) ⇒ Object



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

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

#notify(keyword) ⇒ Object



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

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

#offsetObject



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

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

#offset=(val) ⇒ Object



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

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

#populate(vector, density = None) ⇒ Object



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

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

#randomObject



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

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

#range(first, last = None) ⇒ Object



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

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

#search(val1, val2 = None) ⇒ Object



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

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

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



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

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

#set(item) ⇒ Object



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

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

#sort(*vectors) ⇒ Object



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

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

#sort_reverse(*vectors) ⇒ Object



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

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

#split(*vectors) ⇒ Object



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

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

#to_sObject



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

def to_s
  @id
end

#variable(var) ⇒ Object



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

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