Class: FloatFrameWrapper

Inherits:
AbstractFrameWrapper show all
Defined in:
lib/a-commons.rb

Instance Method Summary collapse

Constructor Details

#initialize(_arcadia, _geometry = nil, _title = nil) ⇒ FloatFrameWrapper

include AbstractFrameWrapper


152
153
154
155
156
157
# File 'lib/a-commons.rb', line 152

def initialize(_arcadia, _geometry=nil, _title=nil)
  @arcadia = _arcadia
  @geometry = _geometry
  @title= _title
  float_frame_forge
end

Instance Method Details

#float_frame_forgeObject


159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# File 'lib/a-commons.rb', line 159

def float_frame_forge
  if @obj.nil?
    a = @geometry.scan(/[+-]*\d\d*%*/)
    p_height = TkWinfo.screenheight(@arcadia.layout.root)
    p_width = TkWinfo.screenwidth(@arcadia.layout.root)
    if a[0][-1..-1]=='%'
      n = a[0][0..-2].to_i.abs
      a[0] = (p_width/100*n).to_i
    end
    if a[1][-1..-1]=='%'
      n = a[1][0..-2].to_i.abs
      a[1] = (p_height/100*n).to_i
    end
    if a[2][-1..-1]=='%'
      n = a[2][0..-2].to_i.abs
      a[2] = (p_width/100*n).to_i
    end
    if a[3][-1..-1]=='%'
      n = a[3][0..-2].to_i.abs
      a[3] = (p_height/100*n).to_i
    end

    args = {'width'=>a[0], 'height'=>a[1], 'x'=>a[2], 'y'=>a[3]}
    @obj = @arcadia.layout.add_float_frame(args)
    @obj.title(@title) if @title
  end
end

#freeObject


207
208
209
210
# File 'lib/a-commons.rb', line 207

def free
  @obj.destroy if @obj
  @obj = nil
end

#hideObject


202
203
204
205
# File 'lib/a-commons.rb', line 202

def hide
  float_frame_forge
  @obj.hide if @obj
end

#hinner_frameObject


187
188
189
190
# File 'lib/a-commons.rb', line 187

def hinner_frame
  float_frame_forge
  @obj.frame if @obj
end

#showObject


197
198
199
200
# File 'lib/a-commons.rb', line 197

def show
  float_frame_forge
  @obj.show if @obj
end

#title(_title = nil) ⇒ Object


192
193
194
195
# File 'lib/a-commons.rb', line 192

def title(_title=nil)
  float_frame_forge
  @obj.title(_title)  if @obj
end