Class: Tk::BLT::Tabset::Tab

Inherits:
TkObject show all
Includes:
TkTreatItemFont
Defined in:
lib/tkextlib/blt/tabset.rb

Direct Known Subclasses

NamedTab

Constant Summary collapse

TabID_TBL =
TkCore::INTERP.create_table
TabsetTab_ID =
['blt_tabset_tab'.freeze, '00000'.taint].freeze

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

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

Class Method Summary collapse

Instance Method Summary collapse

Methods included from TkTreatItemFont

#kanjifont_copy, #kanjitagfont_configure, #latintagfont_configure, #latintagfont_copy, #tagfont_configinfo, #tagfont_configure, #tagfont_copy

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

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_all, #bind_append_all, #bind_remove_all, #bindinfo_all, bool, image_obj, install_cmd, list, num_or_str, number, procedure, simplelist, string, #subst, tk_tcl2ruby, 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 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 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=

Constructor Details

#initialize(parent, pos, name, keys) ⇒ Tab

Returns a new instance of Tab.



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/tabset.rb', line 43

def initialize(parent, pos, name, keys)
  @t = parent
  @tpath = parent.path
  if name
    @path = @id = name
    TabID_TBL[@tpath] = {} unless TabID_TBL[@tpath]
    TabID_TBL[@tpath][@id] = self

    unless (list(tk_call(@tpath, 'tab', 'names', @id)).empty?)
      if pos
        idx = tk_call(@tpath, 'index', '-name', @id)
        if pos.to_s == 'end'
          tk_call(@tpath, idx, 'moveto', 'after', 'end')
        else
          tk_call(@tpath, idx, 'moveto', 'before', pos)
        end
      end
      tk_call(@tpath, 'tab', 'configure', @id, keys)
      return
    end

  else
    @path = @id = TabsetTab_ID.join(TkCore::INTERP._ip_id_)
    TabID_TBL[@tpath] = {} unless TabID_TBL[@tpath]
    TabID_TBL[@tpath][@id] = self
    TabsetTab_ID[1].succ!
  end

  pos = 'end' unless pos
  tk_call(@tpath, 'insert', pos, @id, keys)
end

Dynamic Method Handling

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

Class Method Details

.id2obj(tabset, id) ⇒ Object



19
20
21
22
23
# File 'lib/tkextlib/blt/tabset.rb', line 19

def self.id2obj(tabset, id)
  tpath = tabset.path
  return id unless TabID_TBL[tpath]
  TabID_TBL[tpath][id]? TabID_TBL[tpath]: id
end

.new(parent, pos = nil, name = nil, keys = {}) ⇒ Object



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

def self.new(parent, pos=nil, name=nil, keys={})
  if pos.kind_of?(Hash)
    keys = pos
    name = nil
    pos  = nil
  end
  if name.kind_of?(Hash)
    keys = name
    name = nil
  end

  if name && TabID_TBL[parent.path] && TabID_TBL[parent.path][name]
    TabID_TBL[parent.path][name]
  else
    super(parent, pos, name, keys)
  end
end

Instance Method Details

#bind(context, *args) ⇒ Object

def bind(context, cmd=Proc.new, *args)

@t.tab_bind(@id, context, cmd, *args)
self

end



79
80
81
82
83
84
85
86
87
88
# File 'lib/tkextlib/blt/tabset.rb', line 79

def bind(context, *args)
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
  if TkComm._callback_entry?(args[0]) || !block_given?
    cmd = args.shift
  else
    cmd = Proc.new
  end
  @t.tab_bind(@id, context, cmd, *args)
  self
end

#bind_append(context, *args) ⇒ Object

def bind_append(context, cmd=Proc.new, *args)

@t.tab_bind_append(@id, context, cmd, *args)
self

end



93
94
95
96
97
98
99
100
101
102
# File 'lib/tkextlib/blt/tabset.rb', line 93

def bind_append(context, *args)
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
  if TkComm._callback_entry?(args[0]) || !block_given?
    cmd = args.shift
  else
    cmd = Proc.new
  end
  @t.tab_bind_append(@id, context, cmd, *args)
  self
end

#bind_remove(context) ⇒ Object



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

def bind_remove(context)
  @t.tab_bind_remove(@id, context)
  self
end

#bindinfo(context = nil) ⇒ Object



107
108
109
# File 'lib/tkextlib/blt/tabset.rb', line 107

def bindinfo(context=nil)
  @t.tab_bindinfo(@id, context)
end

#cget(*args) ⇒ Object



111
112
113
# File 'lib/tkextlib/blt/tabset.rb', line 111

def cget(*args)
  @t.tab_cget(@id, *args)
end

#configinfo(*args) ⇒ Object



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

def configinfo(*args)
  @t.tab_configinfo(@id, *args)
end

#configure(*args) ⇒ Object



114
115
116
# File 'lib/tkextlib/blt/tabset.rb', line 114

def configure(*args)
  @t.tab_configure(@id, *args)
end

#current_configinfo(*args) ⇒ Object



120
121
122
# File 'lib/tkextlib/blt/tabset.rb', line 120

def current_configinfo(*args)
  @t.current_tab_configinfo(@id, *args)
end

#deleteObject



124
125
126
127
128
# File 'lib/tkextlib/blt/tabset.rb', line 124

def delete()
  @t.delete(@id)
  TabID_TBL[@tpath].delete(@id)
  self
end

#focusObject



134
135
136
# File 'lib/tkextlib/blt/tabset.rb', line 134

def focus()
  @t.focus(self.index)
end

#get_nameObject



130
131
132
# File 'lib/tkextlib/blt/tabset.rb', line 130

def get_name()
  @id.dup
end

#indexObject



138
139
140
# File 'lib/tkextlib/blt/tabset.rb', line 138

def index()
  @t.index_name(@id)
end

#invokeObject



142
143
144
# File 'lib/tkextlib/blt/tabset.rb', line 142

def invoke()
  @t.invoke(self.index)
end

#move_after(idx) ⇒ Object



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

def move_after(idx)
  @t.move_after(self.index, idx)
end

#move_before(idx) ⇒ Object



146
147
148
# File 'lib/tkextlib/blt/tabset.rb', line 146

def move_before(idx)
  @t.move_before(self.index, idx)
end

#perforation_highlight(mode) ⇒ Object



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

def perforation_highlight(mode)
  @t.perforation.highlight(self.index, mode)
end

#perforation_invokeObject



156
157
158
# File 'lib/tkextlib/blt/tabset.rb', line 156

def perforation_invoke()
  @t.perforation.invoke(self.index)
end

#seeObject



160
161
162
# File 'lib/tkextlib/blt/tabset.rb', line 160

def see()
  @t.see(self.index)
end

#tearoff(name = None) ⇒ Object



164
165
166
# File 'lib/tkextlib/blt/tabset.rb', line 164

def tearoff(name=None)
  @t.tab_tearoff(self.index, *args)
end