Module: Tk::Pack

Included in:
Widget
Defined in:
lib/ffi-tk/command/pack.rb

Overview

Geometry manager that packs around edges of cavity

The pack command is used to communicate with the packer, a geometry manager that arranges the children of a parent by packing them in order around the edges of the parent.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.configure(*arguments) ⇒ Object

The arguments consist of the names of one or more slave windows followed by a hash of arguments that specify how to manage the slaves. See THE PACKER ALGORITHM for details on how the options are used by the packer.



19
20
21
# File 'lib/ffi-tk/command/pack.rb', line 19

def self.configure(*arguments)
  Tk.execute('pack', 'configure', *arguments)
end

.forget(*slaves) ⇒ Object

Removes each of the slaves from the packing order for its master and unmaps their windows. The slaves will no longer be managed by the packer.



26
27
28
# File 'lib/ffi-tk/command/pack.rb', line 26

def self.forget(*slaves)
  Tk.execute_only('pack', 'forget', *slaves)
end

.info(slave) ⇒ Object

Returns a hash whose elements are the current configuration state of the slave given by in the same option-value form that might be specified to pack configure. The hash contains`in: master` where master is the slave‘s master.



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/ffi-tk/command/pack.rb', line 34

def self.info(slave)
  info = Tk.execute('pack', 'info', slave)

  array = info.map do |key, value|
    case key = key[1..-1].to_sym
    when :expand
      [key, Tk.boolean(value)]
    when :ipadx, :ipady, :padx, :pady
      [key, value.to_i]
    when :fill, :side
      [key, value.to_sym]
    when :after, :anchor, :before, :in
      [key, value]
    else
      raise 'Unknown info pair: %p => %p' % [key, value]
    end
  end

  Hash[array]
end

.pack(*args) ⇒ Object

If the first argument to pack is a window name (any value starting with “.”), then the command is processed in the same way as [configure].



11
12
13
# File 'lib/ffi-tk/command/pack.rb', line 11

def self.pack(*args)
  Tk.execute('pack', *args)
end

.propagate(master, boolean = true) ⇒ Object

If boolean is true then propagation is enabled for master, which must be a window (see GEOMETRY PROPAGATION below). If boolean is false, then propagation is disabled for master. In either of these cases nil is returned. If boolean is omitted then the command returns 0 or 1 to indicate whether propagation is currently enabled for master. Propagation is enabled by default.



62
63
64
# File 'lib/ffi-tk/command/pack.rb', line 62

def self.propagate(master, boolean = true)
  Tk.execute_only('pack', 'propagate', master, boolean)
end

.slaves(master) ⇒ Object

Returns a list of all of the slaves in the packing order for master. The order of the slaves in the list is the same as their order in the packing order.



69
70
71
# File 'lib/ffi-tk/command/pack.rb', line 69

def self.slaves(master)
  Tk.execute('pack', 'slaves', master)
end

Instance Method Details

#pack(options = {}) ⇒ Object



73
74
75
76
# File 'lib/ffi-tk/command/pack.rb', line 73

def pack(options = {})
  Pack.pack(self, options.to_tcl_options)
  self
end

#pack_configure(options = {}) ⇒ Object



78
79
80
81
# File 'lib/ffi-tk/command/pack.rb', line 78

def pack_configure(options = {})
  Tk.execute_only('pack', 'configure', self, options)
  self
end

#pack_forgetObject



83
84
85
86
# File 'lib/ffi-tk/command/pack.rb', line 83

def pack_forget
  Pack.forget(self)
  self
end

#pack_infoObject



88
89
90
# File 'lib/ffi-tk/command/pack.rb', line 88

def pack_info
  Pack.info(self)
end

#pack_propagate(boolean = true) ⇒ Object



92
93
94
# File 'lib/ffi-tk/command/pack.rb', line 92

def pack_propagate(boolean = true)
  Pack.propagate(self, boolean)
end

#pack_slavesObject



96
97
98
# File 'lib/ffi-tk/command/pack.rb', line 96

def pack_slaves
  Pack.slaves(self)
end