Class: TkTitledFrameAdapter

Inherits:
TkMenuTitledFrame show all
Defined in:
lib/a-tkcommons.rb

Overview

class TkTitledMovableFrame < TkTitledFrame

attr_reader :wrapper
def initialize(root_parent=nil, parent=nil, title=nil, img=nil , keys=nil)
  @root_parent = root_parent
  #@wrapper = TkFrameAdapter.new(@root_parent, 'background'=>'red')
  @wrapper = TkFrameAdapter.new(@root_parent, Arcadia.style('frame'))
  super(parent, title, img, keys)
  #@wrapper.add_moved_by(@top)
  @wrapper.attach_frame(@frame)
  @frame=@wrapper
end

def change_wrapper(_new_wrapper)
  @wrapper = _new_wrapper
  @frame = _new_wrapper
end

#  def initialize(root_parent=nil, parent=nil, title=nil, img=nil , keys=nil)
#    @root_parent = root_parent
#    @wrapper = TkFrameAdapter.new(@root_parent, Arcadia.style('frame'))
#    super(@wrapper, title, img, keys)
#    @wrapped_frame=parent
#    #@wrapper.add_moved_by(@top)
#    @wrapper.attach_frame(parent)
#  end

end

Instance Attribute Summary collapse

Attributes inherited from TkTitledFrame

#frame, #parent, #top

Attributes inherited from TkBaseTitledFrame

#frame, #top

Instance Method Summary collapse

Methods inherited from TkMenuTitledFrame

#__create_left_menu_button, #create_left_title, #shift_off, #shift_on, #title, #title_menu

Methods inherited from TkTitledFrame

#__create_right_label, #create_right_label, #head_buttons, #last_caption, #last_caption_image, #maximize, #maximized?, #resize, #restore_caption, #save_caption, #top_text, #top_text_bind_append, #top_text_bind_remove, #top_text_clear, #top_text_hide, #top_text_hint

Methods inherited from TkBaseTitledFrame

#add_fixed_button, #add_fixed_menu_button, #add_fixed_panel, #add_fixed_progress, #add_fixed_sep, #create_frame, #head_buttons, #menu_button, #visible?

Constructor Details

#initialize(parent = nil, title = nil, img = nil, keys = nil) ⇒ TkTitledFrameAdapter

Returns a new instance of TkTitledFrameAdapter.



1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
# File 'lib/a-tkcommons.rb', line 1512

def initialize(parent=nil, title=nil, img=nil , keys=nil)
  super(parent, title, img, keys)
  @transient_action_frame = TkFrame.new(@button_frame){
    background  Arcadia.conf('titlelabel.background')
    padx 0
    pady 0
    pack('side'=> "right",'anchor'=> 'e','fill'=>'both', 'expand'=>true)
  }
  @transient_state_frame = TkFrame.new(@state_frame){
    background  Arcadia.conf('titlelabel.background')
    padx 0
    pady 0
    pack('side'=> "left",'anchor'=> 'w','fill'=>'both', 'expand'=>true)
  }
  @transient_frame_adapter = Hash.new
  @@instances = [] if !defined?(@@instances)
  @@instances << self 
end

Instance Attribute Details

#transient_frame_adapterObject (readonly)

Returns the value of attribute transient_frame_adapter.



1510
1511
1512
# File 'lib/a-tkcommons.rb', line 1510

def transient_frame_adapter
  @transient_frame_adapter
end

Instance Method Details

#__attach_action_adapter(_adapter) ⇒ Object

def __attach_adapter(_adapter)

  @last_attached_adapter.detach_frame if @last_attached_adapter
  _adapter.attach_frame(@transient_action_frame)
  @last_attached_adapter = _adapter
end


1550
1551
1552
1553
1554
# File 'lib/a-tkcommons.rb', line 1550

def __attach_action_adapter(_adapter)
  @last_attached_action_adapter.detach_frame if @last_attached_action_adapter
  _adapter.attach_frame(@transient_action_frame)
  @last_attached_action_adapter = _adapter
end

#__attach_state_adapter(_adapter) ⇒ Object



1556
1557
1558
1559
1560
# File 'lib/a-tkcommons.rb', line 1556

def __attach_state_adapter(_adapter)
  @last_attached_state_adapter.detach_frame if @last_attached_state_adapter
  _adapter.attach_frame(@transient_state_frame)
  @last_attached_state_adapter = _adapter
end

#add_button(_sender_name, _label, _proc = nil, _image = nil, _side = 'right') ⇒ Object



1607
1608
1609
1610
# File 'lib/a-tkcommons.rb', line 1607

def add_button(_sender_name, _label,_proc=nil,_image=nil, _side= 'right')
  forge_transient_adapter(_sender_name)
  __add_button(_label,_proc,_image, _side, @transient_frame_adapter[_sender_name][:action])
end

#add_check_button(_sender_name, _label, _proc = nil, _image = nil, _side = 'right') ⇒ Object



1617
1618
1619
1620
# File 'lib/a-tkcommons.rb', line 1617

def add_check_button(_sender_name, _label,_proc=nil,_image=nil, _side= 'right')
  forge_transient_adapter(_sender_name)
  __add_check_button(_label,_proc,_image, _side, @transient_frame_adapter[_sender_name][:action])
end

#add_menu_button(_sender_name, _name = 'default', _image = nil, _side = 'right', _args = nil) ⇒ Object



1612
1613
1614
1615
# File 'lib/a-tkcommons.rb', line 1612

def add_menu_button(_sender_name, _name='default',_image=nil, _side= 'right', _args=nil)
  forge_transient_adapter(_sender_name)
  __add_menu_button(_name, _image, _side, _args, @transient_frame_adapter[_sender_name][:action])
end

#add_panel(_sender_name, _name = 'default', _side = 'right', _args = nil) ⇒ Object



1622
1623
1624
1625
# File 'lib/a-tkcommons.rb', line 1622

def add_panel(_sender_name, _name='default',_side= 'right', _args=nil)
  forge_transient_adapter(_sender_name)
  __add_panel(_name, _side, _args, @transient_frame_adapter[_sender_name][:action])
end

#add_progress(_sender_name, _max = 100, _canc_proc = nil, _hint = nil) ⇒ Object



1637
1638
1639
1640
# File 'lib/a-tkcommons.rb', line 1637

def add_progress(_sender_name, _max=100, _canc_proc=nil, _hint=nil)
  forge_transient_adapter(_sender_name)
  __add_progress(_max, _canc_proc, @transient_frame_adapter[_sender_name][:action], _hint)
end

#add_sep(_sender_name, _width = 0) ⇒ Object



1627
1628
1629
1630
# File 'lib/a-tkcommons.rb', line 1627

def add_sep(_sender_name, _width=0)
  forge_transient_adapter(_sender_name)
  __add_sep(_width, @transient_frame_adapter[_sender_name][:action])
end

#add_state_button(_sender_name, _label, _proc = nil, _image = nil, _side = 'left') ⇒ Object



1632
1633
1634
1635
# File 'lib/a-tkcommons.rb', line 1632

def add_state_button(_sender_name, _label,_proc=nil,_image=nil, _side= 'left')
  forge_transient_adapter(_sender_name)
  __add_state_button(_label,_proc,_image, _side, @transient_frame_adapter[_sender_name][:state])
end

#change_adapters(_name, _adapters) ⇒ Object

def change_adapter(_name, _adapter)

  @transient_frame_adapter[_name] = _adapter
  @transient_frame_adapter[_name].detach_frame
  __attach_adapter(@transient_frame_adapter[_name])
  @transient_frame_adapter[_name].raise
end

def change_adapter_name(_name)
  __attach_adapter(forge_transient_adapter(_name))
  @transient_frame_adapter[_name].raise
end


1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
# File 'lib/a-tkcommons.rb', line 1574

def change_adapters(_name, _adapters)
  forge_transient_adapter(_name)
  @transient_frame_adapter[_name][:action] = _adapters[:action]
  @transient_frame_adapter[_name][:state] = _adapters[:state]
  @transient_frame_adapter[_name][:action].detach_frame
  @transient_frame_adapter[_name][:state].detach_frame
  __attach_action_adapter(@transient_frame_adapter[_name][:action])
  __attach_state_adapter(@transient_frame_adapter[_name][:state])
  @transient_frame_adapter[_name][:action].raise
  @transient_frame_adapter[_name][:state].raise
end

#change_adapters_name(_name) ⇒ Object



1586
1587
1588
1589
1590
1591
# File 'lib/a-tkcommons.rb', line 1586

def change_adapters_name(_name)
  __attach_action_adapter(forge_transient_adapter(_name)[:action])
  __attach_state_adapter(forge_transient_adapter(_name)[:state])
  @transient_frame_adapter[_name][:action].raise
  @transient_frame_adapter[_name][:state].raise
end

#clear_transient_adapters(_name) ⇒ Object



1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
# File 'lib/a-tkcommons.rb', line 1593

def clear_transient_adapters(_name)
  @@instances.each{|i| 
    if i.transient_frame_adapter[_name] 
      if i.transient_frame_adapter[_name][:action]
        i.transient_frame_adapter[_name][:action].detach_frame
      end
      if i.transient_frame_adapter[_name][:state]
        i.transient_frame_adapter[_name][:state].detach_frame
      end
      i.transient_frame_adapter.delete(_name).clear
    end 
  }
end

#destroy_progress(_sender_name, _progress) ⇒ Object



1642
1643
1644
# File 'lib/a-tkcommons.rb', line 1642

def destroy_progress(_sender_name, _progress)
  __destroy_progress(_progress, @transient_frame_adapter[_sender_name][:action])
end

#forge_transient_adapter(_name) ⇒ Object



1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
# File 'lib/a-tkcommons.rb', line 1531

def forge_transient_adapter(_name)
  if @transient_frame_adapter[_name].nil?
    @transient_frame_adapter[_name] = Hash.new
    @transient_frame_adapter[_name][:action] = TkFrameAdapter.new(Arcadia.layout.root, {'background'=>  Arcadia.conf('titlelabel.background')})
    @transient_frame_adapter[_name][:state] = TkFrameAdapter.new(Arcadia.layout.root, {'background'=>  Arcadia.conf('titlelabel.background')})
    __attach_action_adapter(@transient_frame_adapter[_name][:action])
    __attach_action_adapter(@transient_frame_adapter[_name][:state])
    @transient_frame_adapter[_name][:action].raise
    @transient_frame_adapter[_name][:state].raise
  end
  @transient_frame_adapter[_name]
end