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

#%, #&, #**, #[email protected], #[email protected], #<=>, #==, #===, #=~, #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.


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 '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 '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 '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 '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 '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 'lib/tkextlib/blt/vector.rb', line 86

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

#+(item) ⇒ Object


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

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

#-(item) ⇒ Object


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

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

#/(item) ⇒ Object


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

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

#[](idx) ⇒ Object


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

def [](idx)
  index(idx)
end

#[]=(idx, val) ⇒ Object


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

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

#append(*vectors) ⇒ Object


102
103
104
# File '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 '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 'lib/tkextlib/blt/vector.rb', line 116

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

#delete(*indices) ⇒ Object


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

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

#destroyObject


74
75
76
# File '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 '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 '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 '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 'lib/tkextlib/blt/vector.rb', line 78

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

#lengthObject


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

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

#length=(size) ⇒ Object


152
153
154
# File '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 '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 '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 'lib/tkextlib/blt/vector.rb', line 166

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

#offsetObject


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

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

#offset=(val) ⇒ Object


175
176
177
# File '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 '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 'lib/tkextlib/blt/vector.rb', line 179

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

#range(first, last = None) ⇒ Object


188
189
190
# File '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 '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 '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 '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 '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 '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 'lib/tkextlib/blt/vector.rb', line 216

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

#to_sObject


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

def to_s
  @id
end

#variable(var) ⇒ Object


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

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