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.


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