arcadia 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -256,33 +256,52 @@ class TkFrameAdapter < TkFrame
256
256
  @frame.bind_remove("Unmap")
257
257
  end
258
258
  @frame = nil
259
- self.unplace
259
+ self.unmap
260
260
  end
261
261
  end
262
262
 
263
+ def unmap
264
+ if is_place?
265
+ self.unplace
266
+ elsif is_pack?
267
+ self.unpack
268
+ end
269
+ end
270
+
263
271
  def attach_frame(_frame)
264
272
  @frame = _frame
273
+ @frame_manager = TkWinfo.manager(@frame)
265
274
  refresh
266
275
  if @movable
267
- @frame.bind_append("Configure",proc{ refresh})
276
+ @frame.bind_append("Configure",proc{refresh})
268
277
  @frame.bind_append("Map",proc{refresh})
269
- @frame.bind_append("Unmap",proc{unplace if TkWinfo.mapped?(@frame)})
278
+ @frame.bind_append("Unmap",proc{unmap if TkWinfo.mapped?(@frame)})
270
279
  end
271
280
  self
272
281
  end
273
282
 
283
+ def is_place?
284
+ @frame_manager == 'place' || @frame_manager.nil? || @frame_manager == ''
285
+ end
286
+
287
+ def is_pack?
288
+ @frame_manager == 'pack'
289
+ end
274
290
 
275
291
  def refresh(_x=0, _y=0)
276
- place('in'=>@frame, 'x'=>_x, 'y'=>_y, 'relheight'=> 1, 'relwidth'=>1, 'bordermode'=>'outside')
292
+ if is_place?
293
+ place('in'=>@frame, 'x'=>_x, 'y'=>_y, 'relheight'=> 1, 'relwidth'=>1, 'bordermode'=>'outside')
294
+ elsif is_pack?
295
+ pack('in'=>@frame, 'fill'=>'both', 'expand'=>true)
296
+ end
277
297
  end
278
298
 
279
299
  end
280
300
 
281
-
282
301
  class AGTkSplittedFrames < TkFrameAdapter
283
302
  attr_reader :frame1
284
303
  attr_reader :frame2
285
- def initialize(parent=nil, frame=nil, length=10, slen=5, keys=nil)
304
+ def initialize(parent=nil, frame=nil, length=10, slen=5, user_control=true, keys=nil)
286
305
  if keys.nil?
287
306
  keys = Hash.new
288
307
  end
@@ -290,6 +309,7 @@ class AGTkSplittedFrames < TkFrameAdapter
290
309
  super(parent, keys)
291
310
  @parent = parent
292
311
  @slen = slen
312
+ @user_control = user_control
293
313
  if frame
294
314
  self.attach_frame(frame)
295
315
  end
@@ -314,8 +334,8 @@ end
314
334
 
315
335
  class AGTkVSplittedFrames < AGTkSplittedFrames
316
336
  attr_reader :left_frame, :right_frame, :splitter_frame
317
- def initialize(parent=nil, frame=nil, width=10, slen=5, perc=false, keys=nil)
318
- super(parent, frame, width, slen, keys)
337
+ def initialize(parent=nil, frame=nil, width=10, slen=5, perc=false, user_control=true, keys=nil)
338
+ super(parent, frame, width, slen, user_control, keys)
319
339
  @left_frame = TkFrame.new(self, Arcadia.style('panel'))
320
340
  @frame1 = @left_frame
321
341
  if perc
@@ -351,97 +371,44 @@ class AGTkVSplittedFrames < AGTkSplittedFrames
351
371
  'bordermode' => 'inside',
352
372
  'width' => @slen
353
373
  )
354
- @splitter_frame.bind_append(
355
- "ButtonRelease-1",
356
- proc{do_resize}
357
- )
358
- #-----
359
- #-----
360
- # _self = self
361
- # @b_left = TkButton.new(nil, Arcadia.style('button')){
362
- # image TkPhotoImage.new('dat'=>LEFT_SIDE_GIF)
363
- # }
364
- #
365
- # @b_right = TkButton.new(nil, Arcadia.style('button')){
366
- # image TkPhotoImage.new('dat'=>RIGHT_SIDE_GIF)
367
- # }
368
- # @proc_unplace = proc{
369
- # @b_left.unplace
370
- # @b_right.unplace
371
- # }
372
- # @splitter_frame.bind_append(
373
- # "B1-Motion",
374
- # proc{@splitter_frame.raise;@proc_unplace.call}
375
- # )
376
- # @@last_b_left = nil
377
- # @@last_b_right = nil
378
- # @b_left.bind_append('ButtonPress-1',proc{_self.hide_left;@proc_unplace.call})
379
- # @b_right.bind_append('ButtonPress-1',proc{_self.hide_right;@proc_unplace.call})
380
- # @proc_place = proc{|x,y|
381
- # if !TkWinfo.mapped?(@b_left)
382
- # _x = TkWinfo.pointerx(self) - 10
383
- # _y = TkWinfo.pointery(self) - 20
384
- # if @@last_b_left != nil
385
- # @@last_b_left.unplace
386
- # @@last_b_right.unplace
387
- # end
388
- # @b_left.place('x'=>_x,'y'=>_y,'border'=>'outside')
389
- # @b_right.place('x'=>_x,'y'=>_y+25,'border'=>'outside')
390
- # @b_left.raise
391
- # @b_right.raise
392
- # @@last_b_left = @b_left
393
- # @@last_b_right = @b_right
394
- # if @thread_unplace
395
- # @thread_unplace.kill
396
- # end
397
- # @thread_unplace= Thread.new {
398
- # sleep(5)
399
- # @proc_unplace.call
400
- # kill
401
- # }
402
- # end
403
- # }
404
- #
405
- # @splitter_frame.bind_append(
406
- # 'ButtonPress-1',
407
- # proc{|x,y|
408
- # @thread_place= Thread.new {
409
- # @proc_place.call(x,y)
410
- # }
411
- # }, "%x %y")
412
- #-----
413
- #-----
414
- _xbutton = TkButton.new(@splitter_frame, Arcadia.style('toolbarbutton')){
415
- background '#4966d7'
416
- }
417
- _xbutton.place(
418
- 'x' => 0,
419
- 'y' => 0,
420
- 'relwidth' => 1,
421
- 'bordermode' => 'outside',
422
- 'height' => 20
423
- )
424
- _xbutton.bind_append(
425
- "ButtonPress-1",
426
- proc{hide_left}
427
- )
428
- _ybutton = TkButton.new(@splitter_frame, Arcadia.style('toolbarbutton')){
429
- background '#118124'
430
- }
431
- _ybutton.place(
432
- 'x' => 0,
433
- 'y' => 21,
434
- 'bordermode' => 'outside',
435
- 'height' => 20,
436
- 'relwidth' => 1
437
- )
438
- _ybutton.bind_append(
439
- "ButtonPress-1",
440
- proc{hide_right}
441
- )
374
+
375
+ if @user_control
376
+ @splitter_frame.bind_append(
377
+ "ButtonRelease-1",
378
+ proc{do_resize}
379
+ )
380
+ _xbutton = TkButton.new(@splitter_frame, Arcadia.style('toolbarbutton')){
381
+ background '#4966d7'
382
+ }
383
+ _xbutton.place(
384
+ 'x' => 0,
385
+ 'y' => 0,
386
+ 'relwidth' => 1,
387
+ 'bordermode' => 'outside',
388
+ 'height' => 20
389
+ )
390
+ _xbutton.bind_append(
391
+ "ButtonPress-1",
392
+ proc{hide_left}
393
+ )
394
+ _ybutton = TkButton.new(@splitter_frame, Arcadia.style('toolbarbutton')){
395
+ background '#118124'
396
+ }
397
+ _ybutton.place(
398
+ 'x' => 0,
399
+ 'y' => 21,
400
+ 'bordermode' => 'outside',
401
+ 'height' => 20,
402
+ 'relwidth' => 1
403
+ )
404
+ _ybutton.bind_append(
405
+ "ButtonPress-1",
406
+ proc{hide_right}
407
+ )
408
+ end
442
409
  #-----
443
410
  #-----
444
- @splitter_frame_obj = AGTkObjPlace.new(@splitter_frame, 'x')
411
+ @splitter_frame_obj = AGTkObjPlace.new(@splitter_frame, 'x', nil, @user_control)
445
412
  @splitter_frame_obj.width = @slen
446
413
  @splitter_frame_obj.height = 0
447
414
  @splitter_frame_obj.relwidth = 0
@@ -521,6 +488,18 @@ class AGTkVSplittedFrames < AGTkSplittedFrames
521
488
  @left_frame_obj.w == 0
522
489
  end
523
490
 
491
+ def show_left
492
+ if @state=='right'
493
+ _w = @last
494
+ @state = 'middle'
495
+ @right_frame_obj.width = - _w - @slen
496
+ @right_frame_obj.amove(_w + @slen,0)
497
+ @splitter_frame_obj.amove(_w,0)
498
+ @left_frame_obj.width = _w
499
+ @left_frame_obj.go(_w,0)
500
+ end
501
+ end
502
+
524
503
  def hide_right
525
504
  if (@state=='right')
526
505
  _w = @last
@@ -571,8 +550,8 @@ end
571
550
 
572
551
  class AGTkOSplittedFrames < AGTkSplittedFrames
573
552
  attr_reader :top_frame, :bottom_frame, :splitter_frame
574
- def initialize(parent=nil, frame=nil, height=10, slen=5, perc=false, keys=nil)
575
- super(parent, frame, height, slen, keys)
553
+ def initialize(parent=nil, frame=nil, height=10, slen=5, perc=false, user_control=true, keys=nil)
554
+ super(parent, frame, height, slen, user_control, keys)
576
555
  @top_frame = TkFrame.new(self, Arcadia.style('panel')){
577
556
  # relief 'flat'
578
557
  }
@@ -607,15 +586,7 @@ class AGTkOSplittedFrames < AGTkSplittedFrames
607
586
  'bordermode' => 'inside',
608
587
  'height' => @slen
609
588
  )
610
- @splitter_frame.bind_append(
611
- "B1-Motion",
612
- proc{@splitter_frame.raise}
613
- )
614
- @splitter_frame.bind_append(
615
- "ButtonRelease-1",
616
- proc{do_resize}
617
- )
618
- @splitter_frame_obj = AGTkObjPlace.new(@splitter_frame, 'y')
589
+ @splitter_frame_obj = AGTkObjPlace.new(@splitter_frame, 'y', nil, user_control)
619
590
  @splitter_frame_obj.width = 0
620
591
  @splitter_frame_obj.height = @slen
621
592
  @splitter_frame_obj.relwidth = 1
@@ -640,34 +611,44 @@ class AGTkOSplittedFrames < AGTkSplittedFrames
640
611
  @bottom_frame_obj.height = -y
641
612
  @bottom_frame_obj.relwidth = 1
642
613
  @bottom_frame_obj.relheight = 1
643
- _xbutton = TkButton.new(@splitter_frame, Arcadia.style('toolbarbutton')){
644
- background '#4966d7'
645
- }
646
- _xbutton.place(
647
- 'x' => 0,
648
- 'y' => 0,
649
- 'relheight' => 1,
650
- 'bordermode' => 'outside',
651
- 'width' => 20
652
- )
653
- _xbutton.bind_append(
654
- "ButtonPress-1",
655
- proc{hide_top}
656
- )
657
- _ybutton = TkButton.new(@splitter_frame, Arcadia.style('toolbarbutton')){
658
- background '#118124'
659
- }
660
- _ybutton.place(
661
- 'x' => 21,
662
- 'y' => 0,
663
- 'bordermode' => 'outside',
664
- 'width' => 20,
665
- 'relheight' => 1
666
- )
667
- _ybutton.bind_append(
668
- "ButtonPress-1",
669
- proc{hide_bottom}
670
- )
614
+ if @user_control
615
+ @splitter_frame.bind_append(
616
+ "B1-Motion",
617
+ proc{@splitter_frame.raise}
618
+ )
619
+ @splitter_frame.bind_append(
620
+ "ButtonRelease-1",
621
+ proc{do_resize}
622
+ )
623
+ _xbutton = TkButton.new(@splitter_frame, Arcadia.style('toolbarbutton')){
624
+ background '#4966d7'
625
+ }
626
+ _xbutton.place(
627
+ 'x' => 0,
628
+ 'y' => 0,
629
+ 'relheight' => 1,
630
+ 'bordermode' => 'outside',
631
+ 'width' => 20
632
+ )
633
+ _xbutton.bind_append(
634
+ "ButtonPress-1",
635
+ proc{hide_top}
636
+ )
637
+ _ybutton = TkButton.new(@splitter_frame, Arcadia.style('toolbarbutton')){
638
+ background '#118124'
639
+ }
640
+ _ybutton.place(
641
+ 'x' => 21,
642
+ 'y' => 0,
643
+ 'bordermode' => 'outside',
644
+ 'width' => 20,
645
+ 'relheight' => 1
646
+ )
647
+ _ybutton.bind_append(
648
+ "ButtonPress-1",
649
+ proc{hide_bottom}
650
+ )
651
+ end
671
652
  @state = 'middle'
672
653
  yield(self) if block_given?
673
654
  end
@@ -776,8 +757,10 @@ class TkBaseTitledFrame < TkFrame
776
757
  #background '#303b50'
777
758
  background Arcadia.conf('titlelabel.background')
778
759
  }.pack('side'=> 'right','anchor'=> 'w')
760
+
779
761
  @buttons = Hash.new
780
762
  @menu_buttons = Hash.new
763
+ @last_for_frame = Hash.new
781
764
  self.head_buttons
782
765
  end
783
766
 
@@ -785,45 +768,84 @@ class TkBaseTitledFrame < TkFrame
785
768
  return TkFrame.new(self,Arcadia.style('panel')).place('x'=>0, 'y'=>@title_height,'height'=>-@title_height,'relheight'=>1, 'relwidth'=>1)
786
769
  end
787
770
 
788
- def add_button(_label,_proc=nil,_image=nil, _side= 'right')
789
- TkButton.new(@button_frame, Arcadia.style('toolbarbutton')){
771
+ def add_fixed_button(_label,_proc=nil,_image=nil, _side= 'right')
772
+ __add_button(_label,_proc,_image, _side,@button_frame)
773
+ end
774
+
775
+ def add_fixed_menu_button(_name='default',_image=nil, _side= 'right', _args=nil)
776
+ __add_menu_button(_name, _image, _side, _args, @button_frame)
777
+ end
778
+
779
+ def add_fixed_sep(_width=0)
780
+ __add_sep(_width, @button_frame)
781
+ end
782
+
783
+ def __add_button(_label,_proc=nil,_image=nil, _side= 'right', _frame=nil)
784
+ return if _frame.nil?
785
+ last = @last_for_frame[_frame]
786
+ @last_for_frame[_frame] = TkButton.new(_frame, Arcadia.style('titletoolbarbutton')){
790
787
  text _label if _label
791
788
  image TkPhotoImage.new('dat' => _image) if _image
792
- #relief 'flat'
793
789
  font 'helvetica 8 bold'
794
- #borderwidth 0
795
- #background '#303b50'
796
- #background '#8080ff'
797
- pack('side'=> _side,'anchor'=> 'e')
790
+ padx 0
791
+ pady 0
792
+ if last
793
+ pack('side'=> _side,'anchor'=> 'e', 'after'=>last)
794
+ else
795
+ pack('side'=> _side,'anchor'=> 'e')
796
+ end
798
797
  bind('1',_proc) if _proc
799
798
  }
800
799
  end
800
+ private :__add_button
801
801
 
802
- def add_menu_button(_name='default',_image=nil, _side= 'right')
803
- @menu_buttons[_name] = TkMenuButton.new(@button_frame, Arcadia.style('titlelabel')){|mb|
804
- indicatoron true
802
+ def __add_menu_button(_name='default',_image=nil, _side= 'right', _args=nil, _frame=nil)
803
+ return if _frame.nil?
804
+ args = Arcadia.style('titlelabel')
805
+ args.update(_args) if _args
806
+ last = @last_for_frame[_frame]
807
+ @last_for_frame[_frame] = @menu_buttons[_name] = TkMenuButton.new(_frame, args){|mb|
805
808
  menu TkMenu.new(mb, Arcadia.style('titlemenu'))
806
- # menu TkMenu.new(:parent=>mb, Arcadia.style('titlemenu'))
807
- # menu TkMenu.new(:parent=>mb,
808
- # :tearoff=>0,
809
- # :background=>Arcadia.style('titlelabel')['background'],
810
- # :foreground=>Arcadia.style('titlelabel')['foreground']
811
- # )
812
809
  if _image
810
+ indicatoron false
813
811
  image TkPhotoImage.new('dat' => _image)
812
+ else
813
+ indicatoron true
814
814
  end
815
815
  padx 0
816
- pack('side'=> _side,'anchor'=> 'e')
816
+ if last
817
+ pack('side'=> _side,'anchor'=> 'e', 'after'=>last)
818
+ else
819
+ pack('side'=> _side,'anchor'=> 'e')
820
+ end
817
821
  }
818
822
  @menu_buttons[_name]
819
823
  end
824
+ private :__add_menu_button
825
+
826
+
827
+ def __add_sep(_width=0, _frame=nil)
828
+ return if _width <= 0 || _frame.nil?
829
+ _background=_frame.background
830
+ last = @last_for_frame[_frame]
831
+ @last_for_frame[_frame] = TkLabel.new(_frame){||
832
+ text ''
833
+ background _background
834
+ if last
835
+ pack('side'=> 'right','anchor'=> 'e', 'ipadx'=>_width, 'after'=>last)
836
+ else
837
+ pack('side'=> 'right','anchor'=> 'e', 'ipadx'=>_width)
838
+ end
839
+ }
840
+ end
841
+ private :__add_sep
820
842
 
821
843
  def menu_button(_name='default')
822
844
  @menu_buttons[_name]
823
845
  end
824
846
 
825
847
  def head_buttons
826
- @bmaxmin = add_button('[ ]',proc{resize}, W_MAX_GIF)
848
+ @bmaxmin = add_fixed_button('[ ]',proc{resize}, W_MAX_GIF)
827
849
  end
828
850
 
829
851
  def visible?
@@ -831,75 +853,98 @@ class TkBaseTitledFrame < TkFrame
831
853
  end
832
854
  end
833
855
 
834
-
835
-
836
856
  class TkTitledFrame < TkBaseTitledFrame
837
857
  attr_accessor :frame
838
858
  attr_reader :top
839
859
  attr_reader :parent
840
-
841
860
  def initialize(parent=nil, title=nil, img=nil , keys=nil)
842
861
  super(parent, keys)
843
862
  @state = 'normal'
844
- title.nil??_text_title ='':_text_title = title+' :: '
845
- @title_label =TkLabel.new(@top, Arcadia.style('titlelabel')){
863
+ @title = title
864
+ @img = img
865
+ @left_label = create_left_label
866
+ @right_label = create_right_label
867
+ @right_labels_text = Hash.new
868
+ @ap = Array.new
869
+ @apx = Array.new
870
+ @apy = Array.new
871
+ @apw = Array.new
872
+ @aph = Array.new
873
+ end
874
+
875
+ def create_left_label
876
+ __create_left_label(@top)
877
+ end
878
+
879
+ def create_right_label
880
+ __create_right_label(@top)
881
+ end
882
+
883
+ def __create_left_label(_frame)
884
+ @title.nil??_text_title ='':_text_title = @title+' :: '
885
+ _img=@img
886
+ TkLabel.new(_frame, Arcadia.style('titlelabel')){
846
887
  text _text_title
847
888
  anchor 'w'
848
889
  compound 'left'
849
- image TkAllPhotoImage.new('file' => img) if img
890
+ image TkAllPhotoImage.new('file' => _img) if _img
850
891
  pack('side'=> 'left','anchor'=> 'e')
851
892
  }
852
- @top_label =TkLabel.new(@top, Arcadia.style('titlelabel')){
893
+ end
894
+
895
+ def __create_right_label(_frame)
896
+ TkLabel.new(_frame, Arcadia.style('titlelabel')){
853
897
  anchor 'w'
854
898
  font "#{Arcadia.conf('titlelabel.font')} italic"
855
899
  foreground Arcadia.conf('titlecontext.foreground')
856
900
  compound 'left'
857
901
  pack('side'=> 'left','anchor'=> 'e')
858
902
  }
859
-
860
- @ap = Array.new
861
- @apx = Array.new
862
- @apy = Array.new
863
- @apw = Array.new
864
- @aph = Array.new
865
903
  end
866
-
904
+
867
905
  def title(_text=nil)
868
906
  if _text.nil?
869
907
  return @title
870
908
  else
871
909
  @title=_text
872
910
  if _text.strip.length == 0
873
- @title_label.text('')
911
+ @left_label.text('')
874
912
  else
875
- @title_label.text(_text+'::')
913
+ @left_label.text(_text+'::')
876
914
  end
877
915
  end
878
916
  end
879
917
 
880
918
  def top_text(_text=nil)
881
919
  if _text.nil?
882
- return @top_label.text
920
+ return @right_label.text
883
921
  else
884
- @top_label.text(_text)
922
+ @right_label.text(_text)
885
923
  end
886
924
  end
887
925
 
888
- # def top_text(_text)
889
- # @top_label.text(_text)
890
- # end
891
-
892
- def add_sep(_width=0,_background =@top.background)
893
- TkLabel.new(@top){||
894
- text ''
895
- background _background
896
- pack('side'=> 'right','anchor'=> 'e', 'ipadx'=>_width)
897
- }
926
+ def save_caption(_name, _caption)
927
+ @right_labels_text[_name] = _caption
928
+ end
929
+
930
+ def last_caption(_name)
931
+ @right_labels_text[_name]
932
+ end
933
+
934
+ def restore_caption(_name)
935
+ if @right_labels_text[_name]
936
+ top_text(@right_labels_text[_name])
937
+ else
938
+ top_text('')
939
+ end
898
940
  end
899
941
 
942
+ # def top_text(_text)
943
+ # @right_label.text(_text)
944
+ # end
900
945
 
901
946
  def head_buttons
902
- @bmaxmin = add_button('[ ]',proc{resize}, W_MAX_GIF)
947
+ @bmaxmin = add_fixed_button('[ ]',proc{resize}, W_MAX_GIF)
903
948
  #@bmaxmin = add_button('[ ]',proc{resize}, EXPAND_GIF)
904
949
  end
905
950
 
@@ -1064,6 +1109,66 @@ end
1064
1109
  #
1065
1110
  #end
1066
1111
 
1112
+ class TkTitledFrameAdapter < TkTitledFrame
1113
+ attr_reader :transient_frame_adapter
1114
+
1115
+ def initialize(parent=nil, title=nil, img=nil , keys=nil)
1116
+ super(parent, title, img, keys)
1117
+ @transient_frame = TkFrame.new(@button_frame){
1118
+ background Arcadia.conf('titlelabel.background')
1119
+ padx 0
1120
+ pady 0
1121
+ pack('side'=> "right",'anchor'=> 'e','fill'=>'both', 'expand'=>true)
1122
+ }
1123
+ @transient_frame_adapter = Hash.new
1124
+ end
1125
+
1126
+ def forge_transient_adapter(_name)
1127
+ if @transient_frame_adapter[_name].nil?
1128
+ @transient_frame_adapter[_name] = TkFrameAdapter.new(Arcadia.layout.root,
1129
+ Arcadia.style('frame').update({'background'=> Arcadia.conf('titlelabel.background')}))
1130
+ __attach_adapter(@transient_frame_adapter[_name])
1131
+ @transient_frame_adapter[_name].raise
1132
+ end
1133
+ @transient_frame_adapter[_name]
1134
+ end
1135
+
1136
+ def __attach_adapter(_adapter)
1137
+ @last_attached_adapter.detach_frame if @last_attached_adapter
1138
+ _adapter.attach_frame(@transient_frame)
1139
+ @last_attached_adapter = _adapter
1140
+ end
1141
+
1142
+ def change_adapter(_name, _adapter)
1143
+ @transient_frame_adapter[_name] = _adapter
1144
+ @transient_frame_adapter[_name].detach_frame
1145
+ __attach_adapter(@transient_frame_adapter[_name])
1146
+ @transient_frame_adapter[_name].raise
1147
+ end
1148
+
1149
+ def change_adapter_name(_name)
1150
+ __attach_adapter(forge_transient_adapter(_name))
1151
+ @transient_frame_adapter[_name].raise
1152
+ end
1153
+
1154
+ def add_button(_sender_name, _label,_proc=nil,_image=nil, _side= 'right')
1155
+ forge_transient_adapter(_sender_name)
1156
+ __add_button(_label,_proc,_image, _side, @transient_frame_adapter[_sender_name])
1157
+ end
1158
+
1159
+ def add_menu_button(_sender_name, _name='default',_image=nil, _side= 'right', _args=nil)
1160
+ forge_transient_adapter(_sender_name)
1161
+ __add_menu_button(_name, _image, _side, _args, @transient_frame_adapter[_sender_name])
1162
+ end
1163
+
1164
+ def add_sep(_sender_name, _width=0)
1165
+ forge_transient_adapter(_sender_name)
1166
+ __add_sep(_width, @transient_frame_adapter[_sender_name])
1167
+ end
1168
+
1169
+ end
1170
+
1171
+
1067
1172
  class TkTitledScrollFrame < TkTitledFrame
1068
1173
 
1069
1174
  def create_frame
@@ -1096,7 +1201,7 @@ class TkFloatTitledFrame < TkBaseTitledFrame
1096
1201
  borderwidth 2
1097
1202
  relief 'groove'
1098
1203
 
1099
- @top_label = TkLabel.new(@top, Arcadia.style('titlelabel')){
1204
+ @right_label = TkLabel.new(@top, Arcadia.style('titlelabel')){
1100
1205
  anchor 'w'
1101
1206
  }.pack('fill'=>'x', 'side'=>'top')
1102
1207
  #.place('x'=>0, 'y'=>0,'relheight'=>1, 'relwidth'=>1 ,'width'=>-20)
@@ -1105,7 +1210,7 @@ class TkFloatTitledFrame < TkBaseTitledFrame
1105
1210
  text '-'
1106
1211
  image TkPhotoImage.new('dat'=>EXPAND_LIGHT_GIF)
1107
1212
  }.pack('side'=> 'right','anchor'=> 's')
1108
- start_moving(@top_label, self)
1213
+ start_moving(@right_label, self)
1109
1214
  start_moving(frame, self)
1110
1215
  start_resizing(@resizing_label, self)
1111
1216
  @grabbed = false
@@ -1120,11 +1225,11 @@ class TkFloatTitledFrame < TkBaseTitledFrame
1120
1225
  end
1121
1226
 
1122
1227
  def title(_text)
1123
- @top_label.text(_text)
1228
+ @right_label.text(_text)
1124
1229
  end
1125
1230
 
1126
1231
  def on_close=(_proc)
1127
- add_button('X', _proc, TAB_CLOSE_GIF)
1232
+ add_fixed_button('X', _proc, TAB_CLOSE_GIF)
1128
1233
  end
1129
1234
 
1130
1235
  def hide
@@ -1542,7 +1647,7 @@ module TkScrollableWidget
1542
1647
  end
1543
1648
  end
1544
1649
 
1545
- def show(_x=0,_y=0,_border_mode='outside')
1650
+ def show(_x=0,_y=0,_border_mode='inside')
1546
1651
  @x=_x
1547
1652
  @y=_y
1548
1653
  @widget.place(
@@ -1554,6 +1659,7 @@ module TkScrollableWidget
1554
1659
  'relwidth'=>1,
1555
1660
  'bordermode'=>_border_mode
1556
1661
  )
1662
+ @widget.raise
1557
1663
  if @v_scroll_on
1558
1664
  show_v_scroll(true)
1559
1665
  end