arcadia 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +11 -8
- data/bin/arcadia +1 -1
- data/bin/arcadia.bat +0 -0
- data/conf/arcadia.conf +21 -4
- data/conf/arcadia.init.rb +0 -0
- data/conf/arcadia.res.rb +25 -2
- data/ext/ae-breakpoints/ae-breakpoints.conf +2 -1
- data/ext/ae-breakpoints/ae-breakpoints.rb +12 -12
- data/ext/ae-editor/ae-editor.conf +2 -1
- data/ext/ae-editor/ae-editor.rb +3841 -3813
- data/ext/ae-editor/langs/conf.lang +0 -0
- data/ext/ae-editor/langs/lang.lang.bind +0 -0
- data/ext/ae-editor/langs/rb.lang +0 -0
- data/ext/ae-editor/langs/rbw.lang.bind +0 -0
- data/ext/ae-file-history/ae-file-history.conf +2 -1
- data/ext/ae-file-history/ae-file-history.rb +1 -0
- data/ext/ae-output/ae-output.conf +2 -1
- data/ext/ae-output/ae-output.rb +0 -0
- data/ext/ae-rad/ae-rad-inspector.rb +4 -3
- data/ext/ae-rad/ae-rad-libs.rb +0 -0
- data/ext/ae-rad/ae-rad-palette.rb +0 -0
- data/ext/ae-rad/ae-rad.conf +2 -1
- data/ext/ae-rad/ae-rad.rb +0 -0
- data/ext/ae-rad/lib/tk/al-tk.rb +0 -0
- data/ext/ae-rad/lib/tk/al-tk.res.rb +0 -0
- data/ext/ae-rad/lib/tk/al-tkarcadia.rb +25 -25
- data/ext/ae-rad/lib/tk/al-tkcustom.rb +0 -0
- data/ext/ae-rad/lib/tkext/al-bwidget.rb +0 -0
- data/ext/ae-rad/lib/tkext/al-iwidgets.rb +0 -0
- data/ext/ae-rad/lib/tkext/al-tile.rb +0 -0
- data/ext/ae-rad/lib/tkext/al-tktable.rb +0 -0
- data/ext/ae-ruby-debug/ae-ruby-debug.conf +3 -2
- data/ext/ae-ruby-debug/ae-ruby-debug.rb +10 -6
- data/ext/ae-search-in-files/ae-search-in-files.conf +2 -1
- data/ext/ae-search-in-files/ae-search-in-files.rb +0 -0
- data/ext/ae-shell/ae-shell.conf +0 -0
- data/ext/ae-shell/ae-shell.rb +0 -0
- data/ext/ae-shell/sh.rb +0 -0
- data/lib/a-commons.rb +37 -15
- data/lib/a-contracts.rb +11 -0
- data/lib/a-core.rb +1084 -84
- data/lib/a-tkcommons.rb +240 -43
- data/tcl/BWidget-1.8.0/BWman/ArrowButton.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/BWidget.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/Button.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ButtonBox.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ComboBox.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/Dialog.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/DragSite.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/DropSite.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/DynamicHelp.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/Entry.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/Label.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/LabelEntry.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/LabelFrame.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ListBox.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/MainFrame.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/MessageDlg.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/NoteBook.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/PagesManager.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/PanedWindow.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/PanelFrame.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/PasswdDlg.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ProgressBar.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ProgressDlg.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ScrollView.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ScrollableFrame.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ScrolledWindow.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/SelectColor.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/SelectFont.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/Separator.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/SpinBox.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/StatusBar.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/TitleFrame.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/Tree.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/Widget.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/contents.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/index.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/navtree.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/options.htm +0 -0
- data/tcl/BWidget-1.8.0/CHANGES.txt +0 -0
- data/tcl/BWidget-1.8.0/ChangeLog +0 -0
- data/tcl/BWidget-1.8.0/LICENSE.txt +0 -0
- data/tcl/BWidget-1.8.0/README.txt +0 -0
- data/tcl/BWidget-1.8.0/arrow.tcl +0 -0
- data/tcl/BWidget-1.8.0/bitmap.tcl +0 -0
- data/tcl/BWidget-1.8.0/button.tcl +0 -0
- data/tcl/BWidget-1.8.0/buttonbox.tcl +0 -0
- data/tcl/BWidget-1.8.0/color.tcl +0 -0
- data/tcl/BWidget-1.8.0/combobox.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/basic.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/bwidget.xbm +0 -0
- data/tcl/BWidget-1.8.0/demo/demo.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/dnd.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/manager.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/select.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/tmpldlg.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/tree.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/x1.xbm +0 -0
- data/tcl/BWidget-1.8.0/dialog.tcl +0 -0
- data/tcl/BWidget-1.8.0/dragsite.tcl +0 -0
- data/tcl/BWidget-1.8.0/dropsite.tcl +0 -0
- data/tcl/BWidget-1.8.0/dynhelp.tcl +0 -0
- data/tcl/BWidget-1.8.0/entry.tcl +0 -0
- data/tcl/BWidget-1.8.0/font.tcl +0 -0
- data/tcl/BWidget-1.8.0/images/bold.gif +0 -0
- data/tcl/BWidget-1.8.0/images/copy.gif +0 -0
- data/tcl/BWidget-1.8.0/images/cut.gif +0 -0
- data/tcl/BWidget-1.8.0/images/dragfile.gif +0 -0
- data/tcl/BWidget-1.8.0/images/dragicon.gif +0 -0
- data/tcl/BWidget-1.8.0/images/error.gif +0 -0
- data/tcl/BWidget-1.8.0/images/file.gif +0 -0
- data/tcl/BWidget-1.8.0/images/folder.gif +0 -0
- data/tcl/BWidget-1.8.0/images/hourglass.gif +0 -0
- data/tcl/BWidget-1.8.0/images/info.gif +0 -0
- data/tcl/BWidget-1.8.0/images/italic.gif +0 -0
- data/tcl/BWidget-1.8.0/images/minus.xbm +0 -0
- data/tcl/BWidget-1.8.0/images/new.gif +0 -0
- data/tcl/BWidget-1.8.0/images/opcopy.xbm +0 -0
- data/tcl/BWidget-1.8.0/images/open.gif +0 -0
- data/tcl/BWidget-1.8.0/images/openfold.gif +0 -0
- data/tcl/BWidget-1.8.0/images/oplink.xbm +0 -0
- data/tcl/BWidget-1.8.0/images/opmove.xbm +0 -0
- data/tcl/BWidget-1.8.0/images/overstrike.gif +0 -0
- data/tcl/BWidget-1.8.0/images/palette.gif +0 -0
- data/tcl/BWidget-1.8.0/images/passwd.gif +0 -0
- data/tcl/BWidget-1.8.0/images/paste.gif +0 -0
- data/tcl/BWidget-1.8.0/images/plus.xbm +0 -0
- data/tcl/BWidget-1.8.0/images/print.gif +0 -0
- data/tcl/BWidget-1.8.0/images/question.gif +0 -0
- data/tcl/BWidget-1.8.0/images/redo.gif +0 -0
- data/tcl/BWidget-1.8.0/images/save.gif +0 -0
- data/tcl/BWidget-1.8.0/images/target.xbm +0 -0
- data/tcl/BWidget-1.8.0/images/underline.gif +0 -0
- data/tcl/BWidget-1.8.0/images/undo.gif +0 -0
- data/tcl/BWidget-1.8.0/images/warning.gif +0 -0
- data/tcl/BWidget-1.8.0/init.tcl +0 -0
- data/tcl/BWidget-1.8.0/label.tcl +0 -0
- data/tcl/BWidget-1.8.0/labelentry.tcl +0 -0
- data/tcl/BWidget-1.8.0/labelframe.tcl +0 -0
- data/tcl/BWidget-1.8.0/lang/da.rc +0 -0
- data/tcl/BWidget-1.8.0/lang/de.rc +0 -0
- data/tcl/BWidget-1.8.0/lang/en.rc +0 -0
- data/tcl/BWidget-1.8.0/lang/es.rc +0 -0
- data/tcl/BWidget-1.8.0/lang/fr.rc +0 -0
- data/tcl/BWidget-1.8.0/listbox.tcl +0 -0
- data/tcl/BWidget-1.8.0/mainframe.tcl +0 -0
- data/tcl/BWidget-1.8.0/messagedlg.tcl +0 -0
- data/tcl/BWidget-1.8.0/notebook.tcl +0 -0
- data/tcl/BWidget-1.8.0/pagesmgr.tcl +0 -0
- data/tcl/BWidget-1.8.0/panedw.tcl +0 -0
- data/tcl/BWidget-1.8.0/panelframe.tcl +0 -0
- data/tcl/BWidget-1.8.0/passwddlg.tcl +0 -0
- data/tcl/BWidget-1.8.0/pkgIndex.tcl +0 -0
- data/tcl/BWidget-1.8.0/progressbar.tcl +0 -0
- data/tcl/BWidget-1.8.0/progressdlg.tcl +0 -0
- data/tcl/BWidget-1.8.0/scrollframe.tcl +0 -0
- data/tcl/BWidget-1.8.0/scrollview.tcl +0 -0
- data/tcl/BWidget-1.8.0/scrollw.tcl +0 -0
- data/tcl/BWidget-1.8.0/separator.tcl +0 -0
- data/tcl/BWidget-1.8.0/spinbox.tcl +0 -0
- data/tcl/BWidget-1.8.0/statusbar.tcl +0 -0
- data/tcl/BWidget-1.8.0/tests/entry.test +0 -0
- data/tcl/BWidget-1.8.0/titleframe.tcl +0 -0
- data/tcl/BWidget-1.8.0/tree.tcl +0 -0
- data/tcl/BWidget-1.8.0/utils.tcl +0 -0
- data/tcl/BWidget-1.8.0/widget.tcl +0 -0
- data/tcl/BWidget-1.8.0/wizard.tcl +0 -0
- data/tcl/BWidget-1.8.0/xpm2image.tcl +0 -0
- metadata +136 -135
data/lib/a-tkcommons.rb
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
#
|
5
5
|
|
6
6
|
require "lib/a-commons"
|
7
|
+
require "tk/menu"
|
7
8
|
|
8
9
|
class TkApplication < Application
|
9
10
|
attr_reader :tcltk_info
|
@@ -192,9 +193,55 @@ class AGTkObjPlace
|
|
192
193
|
|
193
194
|
end
|
194
195
|
|
196
|
+
class TkFrameAdapter < TkFrame
|
197
|
+
include TkMovable
|
198
|
+
attr_reader :frame
|
199
|
+
def initialize(scope_parent=nil, *args)
|
200
|
+
super(scope_parent, *args)
|
201
|
+
@scope_parent = scope_parent
|
202
|
+
@movable = true
|
203
|
+
end
|
204
|
+
|
205
|
+
def add_moved_by(_obj)
|
206
|
+
@movable = true
|
207
|
+
start_moving(_obj, self)
|
208
|
+
end
|
209
|
+
|
210
|
+
def detach_frame
|
211
|
+
if @frame
|
212
|
+
if @movable
|
213
|
+
@frame.bind_remove("Configure")
|
214
|
+
@frame.bind_remove("Map")
|
215
|
+
@frame.bind_remove("Unmap")
|
216
|
+
end
|
217
|
+
@frame = nil
|
218
|
+
self.unplace
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
def attach_frame(_frame)
|
223
|
+
@frame = _frame
|
224
|
+
refresh
|
225
|
+
if @movable
|
226
|
+
@frame.bind_append("Configure",proc{ refresh})
|
227
|
+
@frame.bind_append("Map",proc{refresh})
|
228
|
+
@frame.bind_append("Unmap",proc{unplace})
|
229
|
+
end
|
230
|
+
self
|
231
|
+
end
|
232
|
+
|
233
|
+
|
234
|
+
def refresh(_x=0, _y=0)
|
235
|
+
place('in'=>@frame, 'x'=>_x, 'y'=>_y, 'relheight'=> 1, 'relwidth'=>1, 'bordermode'=>'outside')
|
236
|
+
end
|
237
|
+
|
238
|
+
end
|
195
239
|
|
196
|
-
|
197
|
-
|
240
|
+
|
241
|
+
class AGTkSplittedFrames < TkFrameAdapter
|
242
|
+
attr_reader :frame1
|
243
|
+
attr_reader :frame2
|
244
|
+
def initialize(parent=nil, frame=nil, length=10, slen=5, keys=nil)
|
198
245
|
if keys.nil?
|
199
246
|
keys = Hash.new
|
200
247
|
end
|
@@ -202,20 +249,22 @@ class AGTkSplittedFrames < TkFrame
|
|
202
249
|
super(parent, keys)
|
203
250
|
@parent = parent
|
204
251
|
@slen = slen
|
205
|
-
|
252
|
+
if frame
|
253
|
+
self.attach_frame(frame)
|
254
|
+
end
|
206
255
|
end
|
207
256
|
|
208
257
|
def maximize(_frame)
|
209
|
-
p = TkWinfo.parent(@
|
258
|
+
p = TkWinfo.parent(@frame)
|
210
259
|
if p.kind_of?(AGTkSplittedFrames)
|
211
|
-
p.maximize(@
|
260
|
+
p.maximize(@frame)
|
212
261
|
end
|
213
262
|
end
|
214
263
|
|
215
264
|
def minimize(_frame)
|
216
|
-
p = TkWinfo.parent(@
|
265
|
+
p = TkWinfo.parent(@frame)
|
217
266
|
if p.kind_of?(AGTkSplittedFrames)
|
218
|
-
p.minimize(@
|
267
|
+
p.minimize(@frame)
|
219
268
|
end
|
220
269
|
end
|
221
270
|
|
@@ -224,18 +273,19 @@ end
|
|
224
273
|
|
225
274
|
class AGTkVSplittedFrames < AGTkSplittedFrames
|
226
275
|
attr_reader :left_frame, :right_frame, :splitter_frame
|
227
|
-
def initialize(parent=nil, width=10, slen=5, perc=false, keys=nil)
|
228
|
-
super(parent, width, slen, keys)
|
276
|
+
def initialize(parent=nil, frame=nil, width=10, slen=5, perc=false, keys=nil)
|
277
|
+
super(parent, frame, width, slen, keys)
|
229
278
|
#self.place('relheight'=>1, 'relwidth'=>1, 'bordermode'=>'outside' )
|
230
|
-
self.pack(:expand=>true, :fill=>:both)
|
279
|
+
#self.pack(:expand=>true, :fill=>:both)
|
231
280
|
@left_frame = TkFrame.new(self, Arcadia.style('panel')){
|
232
281
|
#relief 'flat'
|
233
282
|
}
|
283
|
+
@frame1 = @left_frame
|
234
284
|
if perc
|
235
|
-
p_width = TkWinfo.screenwidth(self)
|
285
|
+
p_width = TkWinfo.screenwidth(self)
|
236
286
|
x = (p_width/100*width).to_i
|
237
287
|
else
|
238
|
-
x = width
|
288
|
+
x = width
|
239
289
|
end
|
240
290
|
|
241
291
|
@left_frame.place(
|
@@ -346,6 +396,7 @@ class AGTkVSplittedFrames < AGTkSplittedFrames
|
|
346
396
|
@right_frame = TkFrame.new(self, Arcadia.style('panel')){
|
347
397
|
#relief 'flat'
|
348
398
|
}
|
399
|
+
@frame2 = @right_frame
|
349
400
|
@right_frame.place(
|
350
401
|
'relwidth' => 1,
|
351
402
|
'relx' => 0,
|
@@ -394,6 +445,7 @@ class AGTkVSplittedFrames < AGTkSplittedFrames
|
|
394
445
|
@last = @left_frame_obj.w
|
395
446
|
end
|
396
447
|
@left_frame_obj.amove(0,0)
|
448
|
+
@left_frame_obj.obj.place_forget if @state=='right'
|
397
449
|
@splitter_frame_obj.amove(_w,0)
|
398
450
|
@right_frame_obj.width = - _w - @slen
|
399
451
|
@right_frame_obj.amove(_w + @slen,0)
|
@@ -414,6 +466,7 @@ class AGTkVSplittedFrames < AGTkSplittedFrames
|
|
414
466
|
end
|
415
467
|
@right_frame_obj.width = - _w - @slen
|
416
468
|
@right_frame_obj.amove(_w + @slen,0)
|
469
|
+
@right_frame_obj.obj.unplace if @state=='left'
|
417
470
|
@splitter_frame_obj.amove(_w,0)
|
418
471
|
@left_frame_obj.width = _w
|
419
472
|
@left_frame_obj.go(_w,0)
|
@@ -450,21 +503,22 @@ class AGTkVSplittedFrames < AGTkSplittedFrames
|
|
450
503
|
end
|
451
504
|
|
452
505
|
class AGTkOSplittedFrames < AGTkSplittedFrames
|
453
|
-
attr_reader :top_frame, :bottom_frame
|
454
|
-
def initialize(parent=nil, height=10, slen=5, perc=false, keys=nil)
|
455
|
-
super(parent, height, slen, keys)
|
456
|
-
self.place(
|
457
|
-
'relwidth' => 1,
|
458
|
-
'relx' => 0,
|
459
|
-
'x' => 0,
|
460
|
-
'y' => 0,
|
461
|
-
'relheight' => 1,
|
462
|
-
'rely' => 0,
|
463
|
-
'bordermode' => 'inside'
|
464
|
-
)
|
506
|
+
attr_reader :top_frame, :bottom_frame, :splitter_frame
|
507
|
+
def initialize(parent=nil, frame=nil, height=10, slen=5, perc=false, keys=nil)
|
508
|
+
super(parent, frame, height, slen, keys)
|
509
|
+
# self.place(
|
510
|
+
# 'relwidth' => 1,
|
511
|
+
# 'relx' => 0,
|
512
|
+
# 'x' => 0,
|
513
|
+
# 'y' => 0,
|
514
|
+
# 'relheight' => 1,
|
515
|
+
# 'rely' => 0,
|
516
|
+
# 'bordermode' => 'inside'
|
517
|
+
# )
|
465
518
|
@top_frame = TkFrame.new(self, Arcadia.style('panel')){
|
466
519
|
# relief 'flat'
|
467
520
|
}
|
521
|
+
@frame1 = @top_frame
|
468
522
|
if perc
|
469
523
|
p_height = TkWinfo.screenheight(self)
|
470
524
|
y = (p_height/100*height).to_i
|
@@ -476,6 +530,7 @@ class AGTkOSplittedFrames < AGTkSplittedFrames
|
|
476
530
|
'bordermode' => 'inside',
|
477
531
|
'height' => y
|
478
532
|
)
|
533
|
+
|
479
534
|
@top_frame_obj = AGTkObjPlace.new(@top_frame, 'y', nil, false)
|
480
535
|
@top_frame_obj.width = 0
|
481
536
|
@top_frame_obj.height = y
|
@@ -511,6 +566,7 @@ class AGTkOSplittedFrames < AGTkSplittedFrames
|
|
511
566
|
@bottom_frame = TkFrame.new(self, Arcadia.style('panel')){
|
512
567
|
# relief 'flat'
|
513
568
|
}
|
569
|
+
@frame2 = @bottom_frame
|
514
570
|
@bottom_frame.place(
|
515
571
|
'relwidth' => 1,
|
516
572
|
'relx' => 0,
|
@@ -576,6 +632,7 @@ class AGTkOSplittedFrames < AGTkSplittedFrames
|
|
576
632
|
@last = @top_frame_obj.h
|
577
633
|
end
|
578
634
|
@top_frame_obj.amove(0,0)
|
635
|
+
@top_frame_obj.obj.unplace if @state=='bottom'
|
579
636
|
@splitter_frame_obj.amove(0, _h)
|
580
637
|
@bottom_frame_obj.height = - _h - @slen
|
581
638
|
@bottom_frame_obj.amove(0,_h + @slen)
|
@@ -594,6 +651,7 @@ class AGTkOSplittedFrames < AGTkSplittedFrames
|
|
594
651
|
end
|
595
652
|
@bottom_frame_obj.height = - _h - @slen
|
596
653
|
@bottom_frame_obj.amove(0,_h + @slen)
|
654
|
+
@bottom_frame_obj.obj.unplace if @state=='top'
|
597
655
|
@splitter_frame_obj.amove(0,_h)
|
598
656
|
@top_frame_obj.height = _h
|
599
657
|
@top_frame_obj.go(0,_h)
|
@@ -659,24 +717,18 @@ class TkBaseTitledFrame < TkFrame
|
|
659
717
|
#anchor 'w'
|
660
718
|
}.place('x'=>0, 'y'=>0,'height'=>@title_height, 'relwidth'=>1)
|
661
719
|
#.pack('fill'=> 'x','ipady'=> @title_height, 'side'=>'top')
|
662
|
-
|
663
|
-
|
664
720
|
@frame = create_frame
|
665
|
-
|
666
|
-
|
667
|
-
|
668
721
|
@button_frame=TkFrame.new(@top){
|
669
722
|
#background '#303b50'
|
670
723
|
background Arcadia.conf('titlelabel.background')
|
671
724
|
}.pack('side'=> 'right','anchor'=> 'w')
|
672
|
-
|
725
|
+
@buttons = Hash.new
|
726
|
+
@menu_buttons = Hash.new
|
673
727
|
self.head_buttons
|
674
728
|
end
|
675
729
|
|
676
730
|
def create_frame
|
677
731
|
return TkFrame.new(self,Arcadia.style('panel')).place('x'=>0, 'y'=>@title_height,'height'=>-@title_height,'relheight'=>1, 'relwidth'=>1)
|
678
|
-
#pack('fill'=>'both','expand'=> 1, 'anchor'=>'center')
|
679
|
-
#
|
680
732
|
end
|
681
733
|
|
682
734
|
def add_button(_label,_proc=nil,_image=nil, _side= 'right')
|
@@ -693,6 +745,28 @@ class TkBaseTitledFrame < TkFrame
|
|
693
745
|
}
|
694
746
|
end
|
695
747
|
|
748
|
+
def add_menu_button(_name='default',_image=nil, _side= 'right')
|
749
|
+
@menu_buttons[_name] = TkMenuButton.new(@button_frame, Arcadia.style('titlelabel')){|mb|
|
750
|
+
indicatoron true
|
751
|
+
menu TkMenu.new(mb, Arcadia.style('titlemenu'))
|
752
|
+
# menu TkMenu.new(:parent=>mb, Arcadia.style('titlemenu'))
|
753
|
+
# menu TkMenu.new(:parent=>mb,
|
754
|
+
# :tearoff=>0,
|
755
|
+
# :background=>Arcadia.style('titlelabel')['background'],
|
756
|
+
# :foreground=>Arcadia.style('titlelabel')['foreground']
|
757
|
+
# )
|
758
|
+
if _image
|
759
|
+
image TkPhotoImage.new('dat' => _image)
|
760
|
+
end
|
761
|
+
pack('side'=> _side,'anchor'=> 'e')
|
762
|
+
}
|
763
|
+
@menu_buttons[_name]
|
764
|
+
end
|
765
|
+
|
766
|
+
def menu_button(_name='default')
|
767
|
+
@menu_buttons[_name]
|
768
|
+
end
|
769
|
+
|
696
770
|
def head_buttons
|
697
771
|
@bmaxmin = add_button('[ ]',proc{resize}, W_MAX_GIF)
|
698
772
|
end
|
@@ -702,8 +776,9 @@ end
|
|
702
776
|
|
703
777
|
|
704
778
|
class TkTitledFrame < TkBaseTitledFrame
|
705
|
-
|
779
|
+
attr_accessor :frame
|
706
780
|
attr_reader :top
|
781
|
+
attr_reader :parent
|
707
782
|
|
708
783
|
def initialize(parent=nil, title=nil, img=nil , keys=nil)
|
709
784
|
super(parent, keys)
|
@@ -712,12 +787,6 @@ class TkTitledFrame < TkBaseTitledFrame
|
|
712
787
|
@title_label =TkLabel.new(@top, Arcadia.style('titlelabel')){
|
713
788
|
text _text_title
|
714
789
|
anchor 'w'
|
715
|
-
#font $arcadia['conf']['all.frame.title.font']
|
716
|
-
# background '#303b50'
|
717
|
-
# foreground '#e8e651'
|
718
|
-
# font Arcadia.conf('titlepanel.font')
|
719
|
-
# background Arcadia.conf('titlepanel.background')
|
720
|
-
# foreground Arcadia.conf('titlepanel.foreground')
|
721
790
|
compound 'left'
|
722
791
|
image TkAllPhotoImage.new('file' => img) if img
|
723
792
|
pack('side'=> 'left','anchor'=> 'e')
|
@@ -737,14 +806,30 @@ class TkTitledFrame < TkBaseTitledFrame
|
|
737
806
|
@aph = Array.new
|
738
807
|
end
|
739
808
|
|
740
|
-
def
|
741
|
-
|
809
|
+
def title(_text=nil)
|
810
|
+
if _text.nil?
|
811
|
+
return @title
|
812
|
+
else
|
813
|
+
@title=_text
|
814
|
+
if _text.strip.length == 0
|
815
|
+
@title_label.text('')
|
816
|
+
else
|
817
|
+
@title_label.text(_text+'::')
|
818
|
+
end
|
819
|
+
end
|
742
820
|
end
|
743
821
|
|
744
|
-
def
|
745
|
-
|
822
|
+
def top_text(_text=nil)
|
823
|
+
if _text.nil?
|
824
|
+
return @top_label.text
|
825
|
+
else
|
826
|
+
@top_label.text(_text)
|
827
|
+
end
|
746
828
|
end
|
747
829
|
|
830
|
+
# def top_text(_text)
|
831
|
+
# @top_label.text(_text)
|
832
|
+
# end
|
748
833
|
|
749
834
|
def add_sep(_width=0,_background =@top.background)
|
750
835
|
TkLabel.new(@top){||
|
@@ -808,6 +893,115 @@ class TkTitledFrame < TkBaseTitledFrame
|
|
808
893
|
end
|
809
894
|
end
|
810
895
|
|
896
|
+
|
897
|
+
|
898
|
+
#class TkFrameAdapterOld < TkFrame
|
899
|
+
# include TkMovable
|
900
|
+
# attr_reader :frame
|
901
|
+
# def initialize(god_parent=nil, *args)
|
902
|
+
# super(god_parent, *args)
|
903
|
+
# @god_parent = god_parent
|
904
|
+
# #add_moved_by(self)
|
905
|
+
# end
|
906
|
+
#
|
907
|
+
# def add_moved_by(_obj)
|
908
|
+
# start_moving(_obj, self)
|
909
|
+
# end
|
910
|
+
#
|
911
|
+
# def detach_frame
|
912
|
+
# if @frame
|
913
|
+
# @frame.bind_remove("Configure")
|
914
|
+
# @frame.bind_remove("Map")
|
915
|
+
# @frame.bind_remove("Unmap")
|
916
|
+
# @frame = nil
|
917
|
+
# end
|
918
|
+
# end
|
919
|
+
#
|
920
|
+
# def attach_frame(_frame)
|
921
|
+
# @frame = _frame
|
922
|
+
# init
|
923
|
+
# #update
|
924
|
+
# reset
|
925
|
+
# @frame.bind_append("Configure",proc{|x,y,w,h| refresh(x,y,w,h)}, "%x %y %w %h")
|
926
|
+
# @frame.bind_append("Map",proc{refresh})
|
927
|
+
# @frame.bind_append("Unmap",proc{unplace})
|
928
|
+
# self
|
929
|
+
# end
|
930
|
+
#
|
931
|
+
# def init
|
932
|
+
# @last_x = 0
|
933
|
+
# @last_y = 0
|
934
|
+
# @last_w = 100
|
935
|
+
# @last_h = 100
|
936
|
+
# reset_offset
|
937
|
+
# end
|
938
|
+
#
|
939
|
+
# def reset
|
940
|
+
# w = TkPlace.info(@frame)['width']
|
941
|
+
# h = TkPlace.info(@frame)['height']
|
942
|
+
# x = TkPlace.info(@frame)['x']
|
943
|
+
# y = TkPlace.info(@frame)['y']
|
944
|
+
# refresh(x,y,w,h)
|
945
|
+
# end
|
946
|
+
#
|
947
|
+
# def reset_offset
|
948
|
+
# @x0=0
|
949
|
+
# @y0=0
|
950
|
+
# parent = TkWinfo.parent(@frame)
|
951
|
+
# #parent = @frame
|
952
|
+
# while parent != nil && parent != @god_parent
|
953
|
+
# xc = TkPlace.info(parent)['x']
|
954
|
+
# yc = TkPlace.info(parent)['y']
|
955
|
+
# @x0=@x0+xc if xc
|
956
|
+
# @y0=@y0+yc if yc
|
957
|
+
# parent= TkWinfo.parent(parent)
|
958
|
+
# end
|
959
|
+
# end
|
960
|
+
#
|
961
|
+
# def refresh(_x=nil, _y=nil, _w=nil, _h=nil)
|
962
|
+
# reset_offset
|
963
|
+
# _x=@last_x if _x.nil?
|
964
|
+
# _y=@last_y if _y.nil?
|
965
|
+
# _w=@last_w if _w.nil?
|
966
|
+
# _h=@last_h if _h.nil?
|
967
|
+
# @last_x = _x
|
968
|
+
# @last_y = _y
|
969
|
+
# @last_w = _w
|
970
|
+
# @last_h = _h
|
971
|
+
# place('x'=>_x+@x0, 'y'=>_y+@y0, 'width'=>_w, 'height'=> _h, 'bordermode'=>'outside')
|
972
|
+
# #place('in'=>@frame, 'relheight'=> 1, 'bordermode'=>'outside', 'relwidth'=>1)
|
973
|
+
# end
|
974
|
+
#end
|
975
|
+
|
976
|
+
|
977
|
+
#class TkTitledMovableFrame < TkTitledFrame
|
978
|
+
# attr_reader :wrapper
|
979
|
+
# def initialize(root_parent=nil, parent=nil, title=nil, img=nil , keys=nil)
|
980
|
+
# @root_parent = root_parent
|
981
|
+
# #@wrapper = TkFrameAdapter.new(@root_parent, 'background'=>'red')
|
982
|
+
# @wrapper = TkFrameAdapter.new(@root_parent, Arcadia.style('frame'))
|
983
|
+
# super(parent, title, img, keys)
|
984
|
+
# #@wrapper.add_moved_by(@top)
|
985
|
+
# @wrapper.attach_frame(@frame)
|
986
|
+
# @frame=@wrapper
|
987
|
+
# end
|
988
|
+
#
|
989
|
+
# def change_wrapper(_new_wrapper)
|
990
|
+
# @wrapper = _new_wrapper
|
991
|
+
# @frame = _new_wrapper
|
992
|
+
# end
|
993
|
+
#
|
994
|
+
# # def initialize(root_parent=nil, parent=nil, title=nil, img=nil , keys=nil)
|
995
|
+
# # @root_parent = root_parent
|
996
|
+
# # @wrapper = TkFrameAdapter.new(@root_parent, Arcadia.style('frame'))
|
997
|
+
# # super(@wrapper, title, img, keys)
|
998
|
+
# # @wrapped_frame=parent
|
999
|
+
# # #@wrapper.add_moved_by(@top)
|
1000
|
+
# # @wrapper.attach_frame(parent)
|
1001
|
+
# # end
|
1002
|
+
#
|
1003
|
+
#end
|
1004
|
+
|
811
1005
|
class TkTitledScrollFrame < TkTitledFrame
|
812
1006
|
|
813
1007
|
def create_frame
|
@@ -816,6 +1010,8 @@ class TkTitledScrollFrame < TkTitledFrame
|
|
816
1010
|
|
817
1011
|
end
|
818
1012
|
|
1013
|
+
|
1014
|
+
|
819
1015
|
class TkResizingTitledFrame < TkFrame
|
820
1016
|
include TkResizable
|
821
1017
|
def initialize(parent=nil, *args)
|
@@ -882,6 +1078,7 @@ class TkFloatTitledFrame < TkBaseTitledFrame
|
|
882
1078
|
if @manager == 'place'
|
883
1079
|
self.place('x'=>@x_place, 'y'=>@y_place, 'width'=>@width_place, 'height'=>@height_place)
|
884
1080
|
end
|
1081
|
+
self.raise
|
885
1082
|
end
|
886
1083
|
|
887
1084
|
def show_grabbed
|
File without changes
|
File without changes
|