Class: TkFrameAdapter

Inherits:
TkFrame
  • Object
show all
Includes:
TkMovable
Defined in:
lib/a-tkcommons.rb

Direct Known Subclasses

AGTkSplittedFrames

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from TkMovable

#moving_do_move_obj, #moving_do_press, #start_moving, #stop_moving

Constructor Details

#initialize(scope_parent = nil, *args) ⇒ TkFrameAdapter

Returns a new instance of TkFrameAdapter.



267
268
269
270
271
272
# File 'lib/a-tkcommons.rb', line 267

def initialize(scope_parent=nil, *args)
  super(scope_parent, *args)
  @scope_parent = scope_parent
  @movable = true
  #ObjectSpace.define_finalizer(self, self.method(:detach_frame).to_proc)
end

Instance Attribute Details

#frameObject (readonly)

Returns the value of attribute frame.



266
267
268
# File 'lib/a-tkcommons.rb', line 266

def frame
  @frame
end

Instance Method Details

#add_moved_by(_obj) ⇒ Object



274
275
276
277
# File 'lib/a-tkcommons.rb', line 274

def add_moved_by(_obj)
  @movable = true
  start_moving(_obj, self)
end

#attach_frame(_frame) ⇒ Object



299
300
301
302
303
304
305
306
307
308
309
# File 'lib/a-tkcommons.rb', line 299

def attach_frame(_frame)
  @frame = _frame
  @frame_manager = TkWinfo.manager(@frame)
  refresh
  if @movable
    @frame.bind_append("Configure",proc{refresh})
    @frame.bind_append("Map",proc{refresh})
    @frame.bind_append("Unmap",proc{unmap  if TkWinfo.mapped?(@frame)})
  end
  self
end

#detach_frameObject



279
280
281
282
283
284
285
286
287
288
289
# File 'lib/a-tkcommons.rb', line 279

def detach_frame
  if @frame
    if @movable
      @frame.bind_remove("Configure")
      @frame.bind_remove("Map")
      @frame.bind_remove("Unmap")
    end
    @frame = nil
    self.unmap
  end
end

#is_pack?Boolean

Returns:

  • (Boolean)


315
316
317
# File 'lib/a-tkcommons.rb', line 315

def is_pack?
  @frame_manager == 'pack'
end

#is_place?Boolean

Returns:

  • (Boolean)


311
312
313
# File 'lib/a-tkcommons.rb', line 311

def is_place?
  @frame_manager == 'place' || @frame_manager.nil? || @frame_manager == ''
end

#refresh(_x = 0, _y = 0) ⇒ Object



319
320
321
322
323
324
325
# File 'lib/a-tkcommons.rb', line 319

def refresh(_x=0, _y=0)
  if is_place?
    place('in'=>@frame, 'x'=>_x, 'y'=>_y, 'relheight'=> 1, 'relwidth'=>1, 'bordermode'=>'outside')
  elsif is_pack?
    pack('in'=>@frame, 'fill'=>'both', 'expand'=>true)
  end
end

#unmapObject



291
292
293
294
295
296
297
# File 'lib/a-tkcommons.rb', line 291

def unmap
  if is_place?
    self.unplace
  elsif is_pack?
    self.unpack
  end
end