• R/O
  • SSH
  • HTTPS

fdvr: Commit


Commit MetaInfo

Revision71 (tree)
Time2008-02-19 00:19:31
Authoryukimi_sake

Log Message

testing...

Change Summary

Incremental Difference

--- formdesigner/1_0/fdvr/fdcontrols.rb (revision 70)
+++ formdesigner/1_0/fdvr/fdcontrols.rb (revision 71)
@@ -28,10 +28,11 @@
2828 attr_reader(:prBevel)
2929
3030 FDStruct=Struct.new :klass,:inst,:dflt_w,:dflt_h,:maskstyle,:required,
31- :included,:createMethod,:info,:attrs,:events,:mthds,:mods,:popups,:items,
32- :bmp,:styles,:source
31+ :included,:precreation,:createmethods,:info,:attrs,:events,:mthds,:mods,
32+ :items,:bmp,:styles,:source
3333 FDPallet = Struct.new(:title,:items)
34- # Description of attribute metohd definition
34+
35+# Description of attribute metohd definition
3536 def controls_init
3637 # @prStyle = 'sprintf("%#8X",c.style)'
3738 @prStyle = 'st = (c.style|c.owndraw)-c._default_style;
--- formdesigner/1_0/fdvr/user_pallet.rb (revision 70)
+++ formdesigner/1_0/fdvr/user_pallet.rb (revision 71)
@@ -10,16 +10,16 @@
1010 :maskstyle => 0x0,
1111 :required => "vrcontrol",
1212 :included => nil,
13- :createMethod => :newFDCtrl,
13+ :precreation => nil,
14+ :createmethods => :newFDControl,
1415 :info => "UpdownEdit(R)",
1516 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["tabOrder","c.tab_order",:_btTab],["uLimit","c.uLimit","num"],["lLimit","c.lLimit","num"]],
1617 :events => ["clicked","dblclicked"],
1718 :mthds => ["setRange(l,u)"],
1819 :mods => nil,
19- :popups => [["font","setfont"],["color","setcolor"]],
2020 :items => nil,
2121 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZ/////////////9gZ/////////93d39gZ///\n///wAP+IiH9gZ/////8P/w+ACH9gZ/////8P/w+ACH9gZ/////8P/w+IiH9g\nZ/////8P/w///39gZ/////8P/w93d39gZ/////8P/w+IiH9gZ/////8P/w+A\nCH9gZ//////wAP+ACH9gZ/////////+IiH9gZ3d3d3d3d3d3d3dgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
22- :styles => {:default_style => 0x50000000},
22+ :styles => {:default_style => 0x50000080,:option => {},:style => {:ES_LOWERCASE => 0x10,:ES_PASSWORD => 0x20,:ES_READONLY => 0x800,:ES_OEMCONVERT => 0x400,:WS_DISABLED => 0x8000000,:ES_AUTOHSCROLL => 0x80,:ES_RIGHT => 0x2,:ES_UPPERCASE => 0x8,:ES_WANTRETURN => 0x1000,:ES_AUTOVSCROLL => 0x40,:ES_NUMBER => 0x2000,:WS_THICKFRAME => 0x40000,:ES_CENTER => 0x1,:ES_NOHIDESEL => 0x100}},
2323 :source => "fdvr/user/updownedit.rb"
2424 },
2525 {:__Struct__ => FDStruct,
@@ -30,16 +30,16 @@
3030 :maskstyle => 0x0,
3131 :required => "vrcontrol",
3232 :included => nil,
33- :createMethod => :newFDCtrl,
33+ :precreation => nil,
34+ :createmethods => :newFDControl,
3435 :info => "UpdownEdit(L)",
3536 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["tabOrder","c.tab_order",:_btTab],["uLimit","c.uLimit","num"],["lLimit","c.lLimit","num"]],
3637 :events => ["clicked","dblclicked"],
3738 :mthds => ["setRange(l,u)"],
3839 :mods => nil,
39- :popups => [["font","setfont"],["color","setcolor"]],
4040 :items => nil,
4141 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZ/////////////9gZ/d3d/////////9gZ/iI\nh/8AD/////9gZ/gAh/D/8P////9gZ/gAh/D/8P////9gZ/iIh/D/8P////9g\nZ///9/D/8P////9gZ/d3d/D/8P////9gZ/iIh/D/8P////9gZ/gAh/D/8P//\n//9gZ/gAh/8AD/////9gZ/iIh/////////9gZ3d3d3d3d3d3d3dgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
42- :styles => {:default_style => 0x50000000},
42+ :styles => {:default_style => 0x50000080,:option => {},:style => {:ES_LOWERCASE => 0x10,:ES_PASSWORD => 0x20,:ES_READONLY => 0x800,:ES_OEMCONVERT => 0x400,:WS_DISABLED => 0x8000000,:ES_AUTOHSCROLL => 0x80,:ES_RIGHT => 0x2,:ES_UPPERCASE => 0x8,:ES_WANTRETURN => 0x1000,:ES_AUTOVSCROLL => 0x40,:ES_NUMBER => 0x2000,:WS_THICKFRAME => 0x40000,:ES_CENTER => 0x1,:ES_NOHIDESEL => 0x100}},
4343 :source => "fdvr/user/updownedit.rb"
4444 },
4545 {:__Struct__ => FDStruct,
@@ -50,16 +50,16 @@
5050 :maskstyle => 0x0,
5151 :required => "vrcontrol",
5252 :included => nil,
53- :createMethod => :newFDCtrl,
53+ :precreation => nil,
54+ :createmethods => :newFDControl,
5455 :info => "UpdownEdit(R)",
5556 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["tabOrder","c.tab_order",:_btTab],["button_w","c.button_w","num"]],
5657 :events => ["clicked","dblclicked"],
5758 :mthds => ["setRange(l,u)"],
5859 :mods => nil,
59- :popups => [["font","setfont"],["color","setcolor"]],
6060 :items => nil,
6161 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZ/////////////9gZ/////////93d39gZ///\n///wAP+IiH9gZ/////8P/w+ACH9gZ/////8P/w+ACH9gZ/////8P/w+IiH9g\nZ/////8P/w///39gZ/////8P/w93d39gZ/////8P/w+IiH9gZ/////8P/w+A\nCH9gZ//////wAP+ACH9gZ/////////+IiH9gZ3d3d3d3d3d3d3dgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
62- :styles => {:default_style => 0x50000000},
62+ :styles => {:default_style => 0x50000080,:option => {},:style => {:ES_LOWERCASE => 0x10,:ES_PASSWORD => 0x20,:ES_READONLY => 0x800,:ES_OEMCONVERT => 0x400,:WS_DISABLED => 0x8000000,:ES_AUTOHSCROLL => 0x80,:ES_RIGHT => 0x2,:ES_UPPERCASE => 0x8,:ES_WANTRETURN => 0x1000,:ES_AUTOVSCROLL => 0x40,:ES_NUMBER => 0x2000,:WS_THICKFRAME => 0x40000,:ES_CENTER => 0x1,:ES_NOHIDESEL => 0x100}},
6363 :source => "fdvr/user/buttonedit.rb"
6464 },
6565 {:__Struct__ => FDStruct,
@@ -70,16 +70,16 @@
7070 :maskstyle => 0x0,
7171 :required => "vrcontrol",
7272 :included => nil,
73- :createMethod => :newFDCtrl,
73+ :precreation => nil,
74+ :createmethods => :newFDControl,
7475 :info => "UpdownEdit(L)",
7576 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["tabOrder","c.tab_order",:_btTab],["button_w","c.button_w","num"]],
7677 :events => ["clicked","dblclicked"],
7778 :mthds => ["setRange(l,u)"],
7879 :mods => nil,
79- :popups => [["font","setfont"],["color","setcolor"]],
8080 :items => nil,
8181 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZ/////////////9gZ/d3d/////////9gZ/iI\nh/8AD/////9gZ/gAh/D/8P////9gZ/gAh/D/8P////9gZ/iIh/D/8P////9g\nZ///9/D/8P////9gZ/d3d/D/8P////9gZ/iIh/D/8P////9gZ/gAh/D/8P//\n//9gZ/gAh/8AD/////9gZ/iIh/////////9gZ3d3d3d3d3d3d3dgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
82- :styles => {:default_style => 0x50000000},
82+ :styles => {:default_style => 0x50000080,:option => {},:style => {:ES_LOWERCASE => 0x10,:ES_PASSWORD => 0x20,:ES_READONLY => 0x800,:ES_OEMCONVERT => 0x400,:WS_DISABLED => 0x8000000,:ES_AUTOHSCROLL => 0x80,:ES_RIGHT => 0x2,:ES_UPPERCASE => 0x8,:ES_WANTRETURN => 0x1000,:ES_AUTOVSCROLL => 0x40,:ES_NUMBER => 0x2000,:WS_THICKFRAME => 0x40000,:ES_CENTER => 0x1,:ES_NOHIDESEL => 0x100}},
8383 :source => "fdvr/user/buttonedit.rb"
8484 }
8585 ]}
--- formdesigner/1_0/fdvr/fdcontroldesign.rb (revision 70)
+++ formdesigner/1_0/fdvr/fdcontroldesign.rb (revision 71)
@@ -78,21 +78,23 @@
7878 attr_accessor :form, :type_of_form, :creation, :span, :enableGrid, :name
7979 attr_accessor :oldname, :sender, :focused, :focusExists, :buff1, :linscan2
8080 attr_accessor :cntnmodules, :_return_val, :tabOrders, :_default_font
81-# attr_accessor :focusrect
81+ # attr_accessor :focusrect
82+
8283 def vrinit
8384 super
85+ addHandler WMsg::WM_MOUSEMOVE, 'mousemove', MSGTYPE::ARGINTINTINT, nil
86+ addHandler WMsg::WM_MOVE, 'move', MSGTYPE::ARGLINTINT,0
87+ acceptEvents [WMsg::WM_MOUSEMOVE,WMsg::WM_MOVE]
88+
8489 @controls = OHash.new
8590 @app=@screen.application
8691 @curs=@app::SysCursors
8792 end
88-
93+
8994 def construct
9095 begin SWin::Application.setAccel(self,@parent) ;rescue ;end
9196 lpRect = ' ' * 16
9297 @span=$ini.read('settings','span',8).to_i
93- addHandler WMsg::WM_MOUSEMOVE, 'mousemove', MSGTYPE::ARGINTINTINT ,nil
94- addHandler WMsg::WM_MOVE, 'move', MSGTYPE::ARGLINTINT,0
95- acceptEvents [WMsg::WM_MOUSEMOVE,WMsg::WM_MOVE]
9698 @paste_to=nil
9799 init_designfrm
98100 @coverfrm = @screen.newform(self, nil, FDCoverForm)
@@ -253,8 +255,8 @@
253255 [i,c.instance_eval(i).to_s]
254256 end
255257 end
256- }
257- if c.respond_to?(:margined) && c.margined then
258+ } #;p [258,c, c.respond_to?(:margined),c.margined]
259+ if c.respond_to?(:mgLeft) #&& c.margined
258260 attrs = attrs + [
259261 ["mgLeft","#{c.mgLeft}","numnil"],
260262 ["mgTop","#{c.mgTop}","numnil"],
@@ -434,7 +436,7 @@
434436 cf.instance_eval("@__org_y =#{y}")
435437 end
436438 end
437- pr.sendMessage(WMsg::WM_SIZE,0,MAKELPARAM(pr.w,pr.h))
439+ pr.sendMessage(WMsg::WM_SIZE,0,MAKELPARAM(*pr.clientrect[2,2]))
438440 # setFocusRgn(cf)
439441 else # if form
440442 oldname=self.name
@@ -454,13 +456,13 @@
454456 x0,y0,w0,h0 = cnt.windowrect
455457 x0,y0 = screen_to_client(cnt.parent,x0,y0)
456458 it = nil
457- if cnt.items
458- if cnt.is_a?(VRRebar) && cnt.items.size==1 &&
459- cnt.items[0][0]=="@__#{cnt.name}"
459+ if cnt.respond_to? :_fd_items
460+ if cnt.is_a?(VRRebar) && cnt._fd_items.size==1 &&
461+ cnt._fd_items[0][0]=="@__#{cnt.name}"
460462 cnt.instance_eval("deleteControl @__#{cnt.name}")
461463 it = nil
462464 else
463- it = cnt.items.dup
465+ it = cnt._fd_items.dup
464466 end
465467 end
466468 hf0 = cnt.sendMessage(WMsg::WM_GETFONT,0,0)
@@ -482,10 +484,11 @@
482484 :items => it,
483485 :mods => cnt.modules && cnt.modules.dup,
484486 :owndraw => cnt.owndraw,
485- :registerd_to => (cnt.registerd_to.empty? ? [] :
487+ :registerd_to => (cnt.registerd_to && cnt.registerd_to.empty? ? [] :
486488 [cnt.registerd_to[0].name, cnt.registerd_to[1]]),
487489 :controls => [],
488- :attributes => {}
490+ :attributes => {},
491+ :optional => nil
489492 }
490493 r[:substance] = cnt.substance if cnt.is_a? FDContainer
491494 unless cnt.registerd_to.empty?
@@ -513,6 +516,11 @@
513516 r[:regist_index] = r0.pane2.index(cnt)
514517 end
515518 end
519+ if hole = @coverfrm.get_hole(r0)
520+ r[:optional] ={:l=>hole.l, :t => hole.t, :r => hole.r, :b => hole.b,
521+ :curs => hole.curs}
522+ @coverfrm.close_hole(r0)
523+ end
516524 elsif r0.is_a? VRGridLayoutFrame
517525 if cnt.is_a? FDContainer
518526 r[:regist_index] = r0._vr_layoutclients.each_with_index{|c,i|
@@ -572,15 +580,23 @@
572580 } unless controls.empty?
573581 end
574582 cnt.attributes.each{|i|
575- r[:attributes][i[0]] = cnt.send(i[0]) if i[2] == "num" || i[2] == "str"}
576-# p [575,r[:attributes]]
583+ if i[2] == "num" || i[2] == "str"
584+ if cnt.is_a?(FDContainer)
585+ r[:attributes][i[0]] = cnt.substance.send(i[0])
586+ else
587+ r[:attributes][i[0]] = cnt.send(i[0])
588+ end
589+ end
590+ }
577591 r
578592 end
579593
594+
580595 def saveandclosewindow(cnt)
581596 return unless cnt
582597 r = save_window(cnt)
583598 cnt.terminate if cnt.respond_to?(:terminate)
599+ @coverfrm.erase_holes(cnt) if cnt.respond_to?(:addControl)
584600 cnt.parent.deleteControl(cnt)
585601 cnt.parent.child_deleted(cnt) if cnt.parent.respond_to? :child_deleted
586602 r
@@ -600,8 +616,14 @@
600616 addstyle = a[:style]|a[:owndraw] unless addstyle
601617 x0 = a[:x] + offset[0]
602618 y0 = a[:y] + offset[1]
603- c = c_parent.send("#{item.createMethod}", c_parent, item.klass,
604- newname,a[:caption], x0, y0, a[:w], a[:h], addstyle,a[:items])
619+ if item.klass <= SWin::Window
620+ c = c_parent.newFDControl(c_parent, item.klass,
621+ newname,a[:caption], x0, y0, a[:w], a[:h], addstyle,a[:items])
622+
623+ else
624+ c = c_parent.newFDContainer(c_parent, item.klass,
625+ newname,a[:caption], x0, y0, a[:w], a[:h], addstyle,a[:items])
626+ end
605627 c_parent.child_created(c) if c_parent.respond_to? :child_created
606628 c.sendMessage(WMsg::WM_SETFONT,a[:hfont],0) unless a[:hfont] == 0
607629 c.modules = a[:mods]
@@ -611,9 +633,12 @@
611633 else
612634 c.oldname = a[:name]
613635 end
614- c.registerd_to = a[:registerd_to].empty? ? [] :
615- [c.parent.controls.find{|k,i|i.oldname == a[:registerd_to][0]}[1],
616- a[:registerd_to][1]]
636+ if a[:registerd_to].empty?
637+ c.registerd_to = []
638+ else
639+ rt = c.parent.controls.find{|k,i|i.oldname == a[:registerd_to][0]}
640+ c.registerd_to = [rt[1], a[:registerd_to][1]]
641+ end
617642 unless a[:registerd_to].empty?
618643 if (r0=c.registerd_to[0].substance).is_a? VRTwoPaneFrame
619644 if c.registerd_to[1] == 0
@@ -629,6 +654,9 @@
629654 r0.pane2[a[:regist_index],0] = c
630655 end
631656 end
657+ if o=a[:optional]
658+ @coverfrm.open_hole(r0, o[:l],o[:t],o[:r],o[:b],o[:curs],c.parent)
659+ end
632660 elsif r0.is_a? VRGridLayoutFrame
633661 if c.is_a? FDContainer
634662 r0._vr_layoutclients[a[:regist_index],0] = c.substance
@@ -686,7 +714,7 @@
686714 recreate1(c.panels[i],j,[0,0],paste_mode)}
687715 }
688716 elsif c.is_a? VRRebar
689- c.items.each{|i|
717+ c._fd_items.each{|i|
690718 recreate1(c,a[:controls].select{|j|
691719 j[:name]==i[0].sub(/^@/,'')}[0],[0,0],paste_mode)} if a[:items]
692720 elsif c.respond_to?(:addControl) then
@@ -699,9 +727,15 @@
699727 c.controls.each{|k,i| i.oldname = i.name}
700728 c.oldname = c.name
701729 end
702- c.sendMessage(WMsg::WM_SIZE,0,MAKELPARAM(c.w,c.h))
730+ c.sendMessage(WMsg::WM_SIZE,0,MAKELPARAM(*c.clientrect[2,2]))
703731 end
704- a[:attributes].each{|k,v|c.send("#{k}=",v)}
732+ a[:attributes].each{|k,v|
733+ if c.is_a?(FDContainer)
734+ c.substance.send("#{k}=",v)
735+ else
736+ c.send("#{k}=",v)
737+ end
738+ }
705739 c
706740 end
707741
@@ -713,7 +747,7 @@
713747 @coverfrm.set_focus(recreate1(parent, a,[0,0], nil, style))
714748 @tabOrders[idx, 0] = @coverfrm.focused.etc if idx
715749 @coverfrm.focused.parent.sendMessage(WMsg::WM_SIZE,0,
716- MAKELPARAM(@coverfrm.focused.parent.w,@coverfrm.focused.parent.h))
750+ MAKELPARAM(*@coverfrm.focused.clientrect[2,2]))
717751 update_inspectfrm(@coverfrm.focused)
718752 end
719753
@@ -1001,7 +1035,7 @@
10011035 c.setFont(newfont) unless c == self
10021036 if c.respond_to? :addControl
10031037 if c.is_a? VRTabbedPanel
1004- c.sendMessage(WMsg::WM_SIZE,0,MAKELPARAM(c.w,c.h))
1038+ c.sendMessage(WMsg::WM_SIZE,0,MAKELPARAM(*c.clientrect[2,2]))
10051039 c.panels.each do |i|
10061040 i.controls.each{|k,j| j.setFont(dflt) if
10071041 check_default(i,c._default_font)}
@@ -1088,14 +1122,13 @@
10881122 :focused => @coverfrm.focused}
10891123 @parent.dialog_running = 'Register'
10901124 r = @screen.openModalDialog(self,0x02,LayoutDlg)
1091- @coverfrm.set_focus(obj)
10921125 @parent.dialog_running = nil
10931126 return unless r
10941127 if (s=obj.substance).is_a?(VRTwoPaneFrame)
10951128 [s.pane1,s.pane2].each_with_index do |pane,j|
10961129 r[j].each_with_index do |v,i|
1097- unless f = pane.find{|j|
1098- j.is_a?(SWin::Window) ? j == v : j.container == v}
1130+ unless f = pane.find{|k|
1131+ k.is_a?(SWin::Window) ? k == v : k.container == v}
10991132 f = v
11001133 unless f.is_a? FDContainer
11011134 f.extend(VRMargin)
@@ -1110,10 +1143,10 @@
11101143 end
11111144 f = f.substance if f.is_a? FDContainer
11121145 pane.delete(f)
1113- pane[i,j] = f
1146+ pane[i,0] = f
11141147 end
1115- (pane.size-1).downto(r[j].size){|j|
1116- c = pane.delete_at(j)
1148+ (pane.size-1).downto(r[j].size){|k|
1149+ c = pane.delete_at(k)
11171150 if c.is_a? SWin::Window
11181151 c.registerd_to.clear
11191152 c.setMargin(nil,nil,nil,nil)
@@ -1124,43 +1157,10 @@
11241157 end
11251158 } if r[j].size < pane.size
11261159 end
1127-=begin
1128- r[1].each_with_index do |v,i|
1129- unless f = s.pane2.find{|j|
1130- if j.is_a? SWin::Window then j == v else j.container == v
1131- end }
1132- f = v
1133- unless f.is_a? FDContainer
1134- f.extend(VRMargin).initMargin(0,0,0,0)
1135- f.margined = true
1136- end
1137- end
1138- unless f.is_a? SWin::Window
1139- f.container.registerd_to = [obj,1]
1140- else
1141- f.registerd_to = [obj,1]
1142- end
1143- f = f.substance if f.is_a? FDContainer
1144- s.pane2.delete(f)
1145- s.pane2[i,0] = f
1146- end
1147- (s.pane2.size-1).downto(r[1].size){|j|
1148- c = s.pane2.delete_at(j)
1149- if c.is_a? SWin::Window
1150- c.registerd_to.clear
1151- c.setMargin(nil,nil,nil,nil)
1152- c.margined = nil
1153- recreateControl(c)
1154- else
1155- c.container.registerd_to.clear
1156- end
1157- } if (r[1].size < s.pane2.size)
1158-=end
11591160 elsif s.is_a? VRGridLayoutFrame
11601161 r.each_with_index do |v,i|
11611162 unless f = s._vr_layoutclients.find{|j|
1162- if j[0].is_a? SWin::Window then j[0] == v
1163- else j[0].container == v end }
1163+ j[0].is_a?(SWin::Window) ? j[0] == v : j[0].container == v }
11641164 if v.is_a? FDContainer
11651165 f = [v.substance,0,0,v.parent.w,v.parent.h]
11661166 else
@@ -1181,11 +1181,12 @@
11811181 s._vr_layoutclients[i,0] = [f]
11821182 end
11831183 (s._vr_layoutclients.size-1).downto(r.size){|j|
1184- c = s._vr_layoutclients.delete_at(j)
1184+ c = s._vr_layoutclients.delete_at(j)
11851185 if c[0].is_a? SWin::Window
11861186 c[0].registerd_to.clear
11871187 c[0].setMargin(nil,nil,nil,nil)
11881188 c[0].margined = nil
1189+ recreateControl(c[0])
11891190 else
11901191 c[0].container.registerd_to.clear
11911192 end
@@ -1215,14 +1216,15 @@
12151216 c.registerd_to.clear
12161217 c.setMargin(nil,nil,nil,nil)
12171218 c.margined = nil
1219+ recreateControl(c)
12181220 else
12191221 c.container.registerd_to.clear
12201222 end
12211223 } if r.size < s._vr_layoutclients.size
12221224 end
1225+ @coverfrm.set_focus(obj)
12231226 obj.parent.sendMessage(WMsg::WM_SIZE, 0,
1224- MAKELPARAM(obj.parent.w,obj.parent.h))
1225-# setFocusRgn(@focused)
1227+ MAKELPARAM(*obj.parent.clientrect[2,2]))
12261228 update_inspectfrm(obj)
12271229 refresh
12281230 end
@@ -1273,7 +1275,7 @@
12731275 str += " self.caption = '#{self.caption}'\n"
12741276 str += " self.move(#{x0},#{y0},#{w0},#{h0})\n"
12751277
1276- analize_frame = lambda do |frame|
1278+ analize_frame = lambda do |frame|
12771279 if frame.is_a? VRTwoPaneFrame
12781280 frame.pane1.each do |i|
12791281 unless i.is_a? SWin::Window
@@ -1306,14 +1308,13 @@
13061308 end
13071309 end
13081310 end
1309- end
1311+ end
13101312
13111313 if @__regsterd_vr_margined_frame
13121314 analize_frame.call(@__regsterd_vr_margined_frame)
13131315 c = ctls.delete(@__regsterd_vr_margined_frame.container.etc)
13141316 rf << c.createSourceStr
1315- end
1316-
1317+ end
13171318 ctls.each do |k,i|
13181319 if i.is_a? FDContainer
13191320 c = ctls.delete(i.etc)
@@ -1385,7 +1386,8 @@
13851386 def check_rejectable_modules(j)
13861387 j==VRToolbarUseable || j==VRStdControlContainer ||
13871388 j==VRComCtlContainer || j==VRMarginedFrameUseable ||
1388- j==VRContainersSet || j==VROwnerDrawControlContainer
1389+ j==VRContainersSet || j==VROwnerDrawControlContainer ||
1390+ j==VRMenuUseable
13891391 end
13901392
13911393 def readfile(str)
@@ -1414,7 +1416,7 @@
14141416 # r = false
14151417 # end
14161418 # end
1417-# update_inspectfrm(nil)
1419+ update_inspectfrm(nil)
14181420 r
14191421 end
14201422
@@ -1506,20 +1508,27 @@
15061508 c_parent._default_font=@temp_fonts[nodes.default_font] if nodes.default_font
15071509 r=nil
15081510 nodes["addings"].each{|i|
1509- mtd=findPalletItem(i[0]).createMethod
1511+# mtd=findPalletItem(i[0]).createMethod
1512+# cnt = findPalletItem(i[0])
15101513 i[7] = 0 unless i[7]
15111514 if (i[7] & 0x10000) == 0x10000
15121515 i[7] &= ~0x10000
1513- ctrl=instance_eval("#{mtd}(c_parent,*i)");
1516+ #ctrl=instance_eval("#{mtd}(c_parent,*i)")
1517+ ctrl = newFDControl(c_parent, *i)
15141518 c_parent.tabOrders << ctrl.etc
1515- else
1516- ctrl=instance_eval("#{mtd}(c_parent,*i)");
1519+ else
1520+ if i[0] <= SWin::Window
1521+ ctrl = newFDControl(c_parent, *i)
1522+ else
1523+ ctrl = newFDContainer(c_parent,*i)
1524+ end
1525+# ctrl=instance_eval("#{mtd}(c_parent,*i)");
15171526 end
15181527 @names << ctrl.name
15191528 if (f1 = nodes["fonts"]) != {} && (f2 = f1["@"+i[1]])
15201529 ctrl.setFont(@_hsh_font[@temp_fonts[f2].hfont]) if f2.is_a? Integer
15211530 end
1522- if ctrl.respond_to?(:addControl) && ctrl.class != FDContainer then
1531+ if ctrl.respond_to?(:addControl) && ctrl.class != FDContainer
15231532 # ctrl.extend FDCommonMethod;p [1855,ctrl]
15241533 # ctrl.extend(FDParent).fd_parent_init
15251534 # ctrl.extend CreateCtrl
@@ -1605,11 +1614,11 @@
16051614 # @coverfrm.hide
16061615 end
16071616
1608- def self_mousemove(shift,x,y)
1617+# def self_mousemove(shift,x,y)
16091618 # @coverfrm.show_and_resize
1610- end
1619+# end
16111620
1612- def self_resize(x,y)
1621+ def self_resize(w,h)
16131622 @coverfrm.resize if @coverfrm
16141623 # x,y,w,h = self.clientrect
16151624 # GDI32.deleteObject(@hrgn)
--- formdesigner/1_0/fdvr/default_pallet.rb (revision 70)
+++ formdesigner/1_0/fdvr/default_pallet.rb (revision 71)
@@ -10,13 +10,13 @@
1010 :maskstyle => 0x0,
1111 :required => "vrcontrol",
1212 :included => nil,
13- :createMethod => :newFDCtrl,
13+ :precreation => nil,
14+ :createmethods => nil,
1415 :info => "Button",
1516 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style.to_i\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["tabOrder","c.tab_order",:_btTab],["owndraw","c.owndraw_used?",:_cbOwnDraw]],
1617 :events => ["clicked","dblclicked"],
1718 :mthds => [],
1819 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
19- :popups => [["font","setfont"],["color","setcolor"]],
2020 :items => nil,
2121 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmAAAAAAAAAAAAZgZviIiIiIiIiIiAZgZviI\niIiIiIiIiAZgZviIiIiIiIiIiAZgZviIiIiIiIiIiAZgZviIiIiIiIiIiAZg\nZviIiIiIiIiIiAZgZviIiIiIiIiIiAZgZviIiIiIiIiIiAZgZviIiIiIiIiI\niAZgZviIiIiIiIiIiAZgZviIiIiIiIiIiAZgZv///////////2ZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
2222 :styles => {:default_style => 0x50000000,:option => {},:style => {:WS_DISABLED => 0x8000000,:BS_DEFPUSHBUTTON => 0x1,:BS_CENTER => 0x300,:BS_LEFT => 0x100,:BS_BITMAP => 0x80,:BS_BOTTOM => 0x800,:BS_RIGHT => 0x200,:BS_TOP => 0x400,:BS_VCENTER => 0xc00,:BS_FLAT => 0x8000,:WS_THICKFRAME => 0x40000,:BS_MULTILINE => 0x2000}},
@@ -30,13 +30,13 @@
3030 :maskstyle => 0x0,
3131 :required => "vrcontrol",
3232 :included => nil,
33- :createMethod => :newFDCtrl,
33+ :precreation => nil,
34+ :createmethods => nil,
3435 :info => "Edit",
3536 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["tabOrder","c.tab_order",:_btTab],["owndraw","c.owndraw_used?",:_cbOwnDraw]],
3637 :events => ["changed"],
3738 :mthds => ["text","text=(str)","getSel","setSel(st,en,noscroll=0)","setCaret(r)","replaceSel(newstr)","readonly=(b)","limit","modified","modified=(f)","cut","copy","paste","clear","undo"],
3839 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
39- :popups => [["font","setfont"],["color","setcolor"]],
4040 :items => nil,
4141 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgYAAAAAAAAAAAAABgYP////////////BgYP8A\nAPAAD/8AD/BgYPD/8PD/8PD/8PBgYPD/8PD/8PD///BgYP8AAPD/8PD///Bg\nYP//8PD/8PD/8PBgYP8AD/AAD/8AD/BgYP////D///////BgYP////D/////\n//BgYP////D///////BgYP////////////BgYAAAAAAAAAAAAABgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
4242 :styles => {:default_style => 0x50000080,:option => {},:style => {:ES_LOWERCASE => 0x10,:ES_PASSWORD => 0x20,:ES_READONLY => 0x800,:ES_OEMCONVERT => 0x400,:WS_DISABLED => 0x8000000,:ES_AUTOHSCROLL => 0x80,:ES_RIGHT => 0x2,:ES_UPPERCASE => 0x8,:ES_WANTRETURN => 0x1000,:ES_AUTOVSCROLL => 0x40,:ES_NUMBER => 0x2000,:WS_THICKFRAME => 0x40000,:ES_CENTER => 0x1,:ES_NOHIDESEL => 0x100}},
@@ -50,13 +50,13 @@
5050 :maskstyle => 0x0,
5151 :required => "vrcontrol",
5252 :included => nil,
53- :createMethod => :newFDCtrl,
53+ :precreation => nil,
54+ :createmethods => nil,
5455 :info => "Text",
5556 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["tabOrder","c.tab_order",:_btTab],["owndraw","c.owndraw_used?",:_cbOwnDraw]],
5657 :events => ["changed"],
5758 :mthds => ["text","text=(str)","getSel","setSel(st,en,noscroll=0)","setCaret(r)","replaceSel(newstr)","readonly=(b)","limit","modified","modified=(f)","cut","copy","paste","clear","undo"],
5859 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
59- :popups => [["font","setfont"],["color","setcolor"]],
6060 :items => nil,
6161 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgYAAAAAAAAAAAAABgYP8AAP8A\nD/8P//BgYPD/8PD/8P8P//BgYPD/8PD///8P//BgYPD/8PAAAP8P//BgYPD/\n8PD/8P8P//BgYP8AAP8AD/AA//BgYP//8P////8P//BgYP//8P////8P//Bg\nYP8AAPAAD/8AD/BgYPD/8PD/8PD/8PBgYPD/8PD/8PD///BgYP8AAPD/8PD/\n//BgYP//8PD/8PD/8PBgYP8AD/AAD/8AD/BgYP////D///////BgYP////D/\n//////BgYP////D///////BgYAAAAAAAAAAAAABgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
6262 :styles => {:default_style => 0x50000044,:option => {},:style => {:ES_LOWERCASE => 0x10,:ES_PASSWORD => 0x20,:ES_READONLY => 0x800,:ES_OEMCONVERT => 0x400,:WS_DISABLED => 0x8000000,:ES_AUTOHSCROLL => 0x80,:ES_UPPERCASE => 0x8,:ES_WANTRETURN => 0x1000,:ES_AUTOVSCROLL => 0x40,:ES_NUMBER => 0x2000,:WS_THICKFRAME => 0x40000,:ES_NOHIDESEL => 0x100}},
@@ -70,13 +70,13 @@
7070 :maskstyle => 0x0,
7171 :required => "vrcontrol",
7272 :included => nil,
73- :createMethod => :newFDCtrl,
73+ :precreation => nil,
74+ :createmethods => nil,
7475 :info => "CheckBox",
7576 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["tabOrder","c.tab_order",:_btTab],["owndraw","c.owndraw_used?",:_cbOwnDraw]],
7677 :events => ["clicked","dblclicked"],
7778 :mthds => ["checked?","check(v)"],
7879 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
79- :popups => [["font","setfont"],["color","setcolor"]],
8080 :items => nil,
8181 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZm////////9mZgZmZgiIiIiIiI9mZgZmZgiIiIiIiI9mZgZmZg\niIiAiIiI9mZgZmZgiIgACIiI9mZgZmZgiIAIAIiI9mZgZmZgiACIgAiI9mZg\nZmZggIiIiACI9mZgZmZgiIiIiIgI9mZgZmZgiIiIiIiI9mZgZmZgiIiIiIiI\n9mZgZmZgiIiIiIiI9mZgZmZgiIiIiIiI9mZgZmZgAAAAAAAAZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
8282 :styles => {:default_style => 0x50000003,:option => {},:style => {:WS_DISABLED => 0x8000000,:BS_RIGHTBUTTON => 0x20,:WS_BORDER => 0x800000,:WS_THICKFRAME => 0x40000,:WS_GROUP => 0x20000}},
@@ -90,13 +90,13 @@
9090 :maskstyle => 0x0,
9191 :required => "vrcontrol",
9292 :included => nil,
93- :createMethod => :newFDCtrl,
93+ :precreation => nil,
94+ :createmethods => nil,
9495 :info => "RadioButton",
9596 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["tabOrder","c.tab_order",:_btTab],["owndraw","c.owndraw_used?",:_cbOwnDraw]],
9697 :events => ["clicked","dblclicked"],
9798 :mthds => ["checked?","check(v)"],
9899 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
99- :popups => [["font","setfont"],["color","setcolor"]],
100100 :items => nil,
101101 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmb/9mZmZmZgZmZm\nZgCIj/ZmZmZgZmZmYIiIiI9mZmZgZmZmYIgACI9mZmZgZmZmCIAAAIj2ZmZg\nZmZmCIAAAIj2ZmZgZmZmCIAAAIj2ZmZgZmZmYIgACIBmZmZgZmZmYIiIiIBm\nZmZgZmZmZgCIgAZmZmZgZmZmZmYABmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
102102 :styles => {:default_style => 0x50000009,:option => {},:style => {:WS_DISABLED => 0x8000000,:BS_RIGHTBUTTON => 0x20,:WS_BORDER => 0x800000,:WS_THICKFRAME => 0x40000,:WS_GROUP => 0x20000}},
@@ -110,13 +110,13 @@
110110 :maskstyle => 0x0,
111111 :required => "vrcontrol",
112112 :included => nil,
113- :createMethod => :newFDCtrl,
113+ :precreation => nil,
114+ :createmethods => nil,
114115 :info => "StaticText",
115116 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["tabOrder","c.tab_order",:_btTab],["owndraw","c.owndraw_used?",:_cbOwnDraw]],
116117 :events => [],
117118 :mthds => [],
118119 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
119- :popups => [["font","setfont"],["color","setcolor"]],
120120 :items => nil,
121121 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZgZmBmAABmZgAGZgZgZm\nBmBmYGYGZgZgZgZmBmBmYGYGZgZgZgAABmBmYGYGZmZgZgZmBmBmYGYGZmZg\nZmBgZmAABmYGZmZgZmBgZmBmYGYGZmZgZmBgZmBmYGYGZmZgZmBgZmBmYGYG\nZgZgZmYGZmBmYGYGZgZgZmYGZmAABmZgAGZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
122122 :styles => {:default_style => 0x50000000,:option => {:SS_RIGHT => 0x2,:SS_USERITEM => 0xa,:SS_ICON => 0x3,:SS_OWNERDRAW => 0xd,:SS_BITMAP => 0xe,:SS_ETCHEDVERT => 0x11,:SS_BLACKRECT => 0x4,:SS_GRAYFRAME => 0x8,:SS_ENHMETAFILE => 0xf,:SS_ETCHEDHORZ => 0x10,:SS_ETCHEDFRAME => 0x12,:SS_GRAYRECT => 0x5,:SS_BLACKFRAME => 0x7,:SS_SIMPLE => 0xb,:SS_WHITERECT => 0x6,:SS_WHITEFRAME => 0x9,:SS_CENTER => 0x1,:SS_LEFTNOWORDWRAP => 0xc,:SS_LEFT => 0x0},:style => {:SS_SUNKEN => 0x1000,:SS_NOTIFY => 0x100,:SS_RIGHTJUST => 0x400,:SS_NOPREFIX => 0x80,:SS_CENTERIMAGE => 0x200,:SS_REALSIZEIMAGE => 0x800,:WS_BORDER => 0x800000,:WS_THICKFRAME => 0x40000}},
@@ -130,13 +130,13 @@
130130 :maskstyle => 0x0,
131131 :required => "vrcontrol",
132132 :included => nil,
133- :createMethod => :newFDCtrl,
133+ :precreation => nil,
134+ :createmethods => nil,
134135 :info => "ListBox",
135136 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["tabOrder","c.tab_order",:_btTab],["owndraw","c.owndraw_used?",:_cbOwnDraw]],
136137 :events => ["selchanged"],
137138 :mthds => ["addString(idx,str)","deleteString(idx)","countStrings","clearStrings","eachString{|i|}","setListStrings(strarray)","selectedString","select(idx)","getTextOf(idx)","setDir(fname,opt=0)","findString(findstr,start=0)","getDataOf(idx)","setDataOf(idx,data)"],
138139 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
139- :popups => [["font","setfont"],["color","setcolor"]],
140140 :items => nil,
141141 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZgAAAAAAAAAAAAZgZg//////\n//8IiAZgZg////////8ICAZgZg/wAAAAAP8AAAZgZg////////8IiAZgZg//\n//////8AAAZgZg/wAAAAAP8IiAZgZg////////8IiAZgZgREREREREQIiAZg\nZgRP/////0QIiAZgZgREREREREQIiAZgZg////////8IiAZgZg/wAAAAAP8I\niAZgZg////////8AAAZgZg////////8IiAZgZg/wAAAAAP8AAAZgZg//////\n//8ICAZgZg////////8IiAZgZgAAAAAAAAAAAAZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
142142 :styles => {:default_style => 0x50800001,:option => {},:style => {:LBS_SORT => 0x2,:LBS_NOINTEGRALHEIGHT => 0x100,:LBS_USETABSTOPS => 0x80,:LBS_MULTICOLUMN => 0x200,:LBS_DISABLENOSCROLL => 0x1000,:WS_DISABLED => 0x8000000,:LBS_NOSEL => 0x4000,:LBS_NODATA => 0x2000,:LBS_NOREDRAW => 0x4,:LBS_MULTIPLESEL => 0x8,:WS_THICKFRAME => 0x40000,:LBS_EXTENDEDSEL => 0x800,:LBS_HASSTRINGS => 0x40,:LBS_WANTKEYBOARDINPUT => 0x400}},
@@ -150,13 +150,13 @@
150150 :maskstyle => 0x0,
151151 :required => "vrcontrol",
152152 :included => nil,
153- :createMethod => :newFDCombo,
153+ :precreation => nil,
154+ :createmethods => :NewFDCombo,
154155 :info => "ComboBox",
155156 :attrs => ["name","caption","x","y","w","h","drop_h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["tabOrder","c.tab_order",:_btTab],["owndraw","c.owndraw_used?",:_cbOwnDraw]],
156157 :events => ["selchanged"],
157158 :mthds => ["addString(idx,str)","deleteString(idx)","countStrings","clearStrings","eachString{|i|}","setListStrings(strarray)","selectedString","select(idx)","getTextOf(idx)","setDir(fname,opt=0)","findString(findstr,start=0)","getDataOf(idx)","setDataOf(idx,data)"],
158159 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
159- :popups => [["font","setfont"],["color","setcolor"]],
160160 :items => nil,
161161 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmYAAAAAAAAAAAZgZmYP////\n/////wZgZmYP8AAAAAAA/wZgZmYP/////////wZgZmYERERERERERAZgZmYE\nT///////RAZgZmYERERERERERAZgZmYP/////////wZgZmYP8AAAAAAA/wZg\nZmYP/////////wZgZmYP/////////wZgZmYP8AAAAAAA/wZgZmYP////////\n/wZgZgAAAAAAAAAAAAZgZg////////8IiAZgZg////////8ICAZgZg8AAAAA\nAA8AAAZgZg////////8IiAZgZgAAAAAAAAAAAAZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
162162 :styles => {:default_style => 0x50000203,:option => {},:style => {:CBS_UPPERCASE => 0x2000,:CBS_SORT => 0x100,:CBS_NOINTEGRALHEIGHT => 0x400,:WS_DISABLED => 0x8000000,:CBS_DISABLENOSCROLL => 0x800,:CBS_OEMCONVERT => 0x80,:CBS_HASSTRINGS => 0x200,:WS_THICKFRAME => 0x40000,:CBS_AUTOHSCROLL => 0x40,:CBS_LOWERCASE => 0x4000}},
@@ -170,13 +170,13 @@
170170 :maskstyle => 0x1,
171171 :required => "vrcontrol",
172172 :included => nil,
173- :createMethod => :newFDCombo,
173+ :precreation => nil,
174+ :createmethods => :NewFDCombo,
174175 :info => "EditComboBox",
175176 :attrs => ["name","caption","x","y","w","h","drop_h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["tabOrder","c.tab_order",:_btTab],["owndraw","c.owndraw_used?",:_cbOwnDraw]],
176177 :events => ["selchanged"],
177178 :mthds => ["addString(idx,str)","deleteString(idx)","countStrings","clearStrings","eachString{|i|}","setListStrings(strarray)","selectedString","select(idx)","getTextOf(idx)","setDir(fname,opt=0)","findString(findstr,start=0)","getDataOf(idx)","setDataOf(idx,data)"],
178179 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
179- :popups => [["font","setfont"],["color","setcolor"]],
180180 :items => nil,
181181 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmYAAAAAAAAAAAZgZmYP////\n/////wZgZmYP8AAAAAAA/wZgZmYP/////////wZgZmYERERERERERAZgZmYE\nT///////RAZgZmYERERERERERAZgZmYP/////////wZgZmYP8AAAAAAA/wZg\nZmYP/////////wZgZmYP/////////wZgZmYP8AAAAAAA/wZgZmYP////////\n/wZgZgAAAAAAAAAAAAZgZg////////8HdwZgZg/w/w/w/w8HBwZgZg/w/w/w\n/w8AAAZgZg////////8HdwZgZgAAAAAAAAAAAAZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
182182 :styles => {:default_style => 0x50000243,:option => {},:style => {:CBS_UPPERCASE => 0x2000,:CBS_SORT => 0x100,:CBS_NOINTEGRALHEIGHT => 0x400,:WS_DISABLED => 0x8000000,:CBS_DISABLENOSCROLL => 0x800,:CBS_OEMCONVERT => 0x80,:CBS_HASSTRINGS => 0x200,:WS_THICKFRAME => 0x40000,:CBS_AUTOHSCROLL => 0x40,:CBS_LOWERCASE => 0x4000}},
@@ -190,13 +190,13 @@
190190 :maskstyle => 0x0,
191191 :required => "vrcontrol",
192192 :included => nil,
193- :createMethod => :newFDCtrl,
193+ :precreation => nil,
194+ :createmethods => nil,
194195 :info => "GroupBox",
195196 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["tabOrder","c.tab_order",:_btTab],["owndraw","c.owndraw_used?",:_cbOwnDraw]],
196197 :events => [],
197198 :mthds => [],
198199 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRMessageParentRelayer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => ""},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
199- :popups => [["font","setfont"],["color","setcolor"]],
200200 :items => nil,
201201 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZm////////////ZgZnh3d3d3\nd3d3d/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+I\niIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/Zg\nZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiI\nh/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn9ERERE\nSIiIh/ZgZn9ERERET///+PZgZndERERER3d3d2ZgZmZERERERmZmZmZgZmZm\nZmZmZmZmZmZg\n",
202202 :styles => {:default_style => 0x50000007,:option => {},:style => {:WS_DISABLED => 0x8000000,:WS_THICKFRAME => 0x40000}},
@@ -210,13 +210,13 @@
210210 :maskstyle => 0x0,
211211 :required => "vrcontrol",
212212 :included => nil,
213- :createMethod => :newFDCtrl,
213+ :precreation => nil,
214+ :createmethods => nil,
214215 :info => "Panel",
215216 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule]],
216217 :events => [],
217218 :mthds => [],
218219 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRMessageParentRelayer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => ""},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
219- :popups => [["font","setfont"],["color","setcolor"]],
220220 :items => nil,
221221 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZm////////////ZgZnh3d3d3\nd3d3d/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+I\niIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/Zg\nZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiI\nh/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+IiIiIiIiIh/ZgZn+IiIiI\niIiIh/ZgZn//////////+PZgZnd3d3d3d3d3d2ZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
222222 :styles => {:default_style => 0x50000000,:style => {:WS_VSCROLL => 0x200000,:WS_DISABLED => 0x8000000,:WS_HSCROLL => 0x100000,:WS_THICKFRAME => 0x40000,:WS_BORDER => 0x800000,:WS_GROUP => 0x20000}},
@@ -230,13 +230,13 @@
230230 :maskstyle => 0x0,
231231 :required => "vrcontrol",
232232 :included => nil,
233- :createMethod => :newFDCtrl,
233+ :precreation => nil,
234+ :createmethods => nil,
234235 :info => "CanvasPanel",
235236 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule]],
236237 :events => [],
237238 :mthds => ["createCanvas(w,h,color=0xffffff)","canvas"],
238239 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRMessageParentRelayer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => ""},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
239- :popups => [["font","setfont"],["color","setcolor"]],
240240 :items => nil,
241241 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8A///////////////w//////zMzMzMzMzw////8Az//wD///zw///wD/z/\n//8A//zw//8P//z/////D/zw//D///z/////8Pzw//D///z/////8Pzw+QmZ\nqqypmZn//wzw+QmqqqyqqZn//wzw8Jqqqqyqqpn///zw8Kqqqqyqqqn///zw\n8Kqqqqyqqqn///zw8Kqqqqyqqqr///zw8KqqqqzMzMzMzMzw+gqqqqqqqqr/\n/w/w+gqqqqqqqqr//w/w+qCqqqqqqqr/8P/w+aCqqqqqqqn/8P/w+aoKqqqq\nqqn/D//w+ZqgCqqqqpkA///w+ZmqoAqqqQD////w+ZmZqqAAAJn////w////\n///////////w\n",
242242 :styles => {:default_style => 0x50000000,:style => {:WS_VSCROLL => 0x200000,:WS_DISABLED => 0x8000000,:WS_HSCROLL => 0x100000,:WS_THICKFRAME => 0x40000,:WS_BORDER => 0x800000,:WS_GROUP => 0x20000}},
@@ -250,13 +250,13 @@
250250 :maskstyle => 0x0,
251251 :required => "vrcontrol",
252252 :included => nil,
253- :createMethod => :newFDCtrl,
253+ :precreation => nil,
254+ :createmethods => nil,
254255 :info => "BmpPanel",
255256 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule]],
256257 :events => [],
257258 :mthds => ["loadFile(filename)","createBitmap(info,bmp)","bmp"],
258259 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRMessageParentRelayer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => ""},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
259- :popups => [["font","setfont"],["color","setcolor"]],
260260 :items => nil,
261261 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8A39Hf3d3d3d3d3dEQ/d/d/d3d3d3d3REQ/f39/d3d3d3d0RHQ/d/d/d3f\n3d3dEd3Q393f3d39/d3RHd3Q3f/93d3f3d0R3d3Q3d3d3d3d3dHd3d3Q3d3d\n3d3d3R3d3d3Q3d3d3d//8R3d3d3Q3d3f////Ef3d3f3Q3d3/////H//d39/Q\n3d/////xH//d3f3Q3d///5kR///d3d3Q3d//+f8f///93d3Q3d3/+f/5///9\n3d3Q3d//+f/5///93d3Q3f///5mf///93d3Q3f/////////d3d3Q3f//////\n//3d3d3Q3d///////d3d393Q3d3//////d3d/f3Q3d3d3///3d3d393Q3d3d\n3d3d3d3d3d3Q\n",
262262 :styles => {:default_style => 0x50000000,:style => {:WS_VSCROLL => 0x200000,:WS_DISABLED => 0x8000000,:WS_HSCROLL => 0x100000,:WS_THICKFRAME => 0x40000,:WS_BORDER => 0x800000,:WS_GROUP => 0x20000}},
@@ -272,13 +272,13 @@
272272 :maskstyle => 0x0,
273273 :required => "vrrichedit",
274274 :included => nil,
275- :createMethod => :newFDCtrl,
275+ :precreation => nil,
276+ :createmethods => nil,
276277 :info => "RichEdit",
277278 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["tabOrder","c.tab_order",:_btTab]],
278279 :events => ["changed"],
279280 :mthds => ["text","text=(str)","getSel","setSel(st,en,noscroll=0)","setCaret(r)","replaceSel(newstr)","readonly=(b)","limit","modified","modified=(f)","cut","copy","paste","clear","undo","char2line(ptr)","setTextFont(fontface,height=280,area=SCF_SELECTION)","getTextFont(selarea=true)","setTextColor(col,area=SCF_SELECTION)","getTextColor(selarea=true)","setBold(flag=true,area=SCF_SELECTION)","setItalic(flag=true,area=SCF_SELECTION)","setUnderlined(flag=true,area=SCF_SELECTION)","setStriked(flag=true,area=SCF_SELECTION)","bold?(selarea=true)","italic?(selarea=true)","underlined?(selarea=true)","striked?(selarea=true)","setAlignment(align)","bkcolor=(color)","selformat(area=SCF_SELECTION)","selformat=(format)"],
280281 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
281- :popups => [["font","setfont"]],
282282 :items => nil,
283283 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8A///////////////w///////////////w/wAAAAAAAAAAAA/w/w//////\n///5nw/w/w////////+ZmQ/w/w////////mfmQ/w/w////////mf/w/w/w//\n//////mfmQ/w/w////////+ZmQ/w/w//////AP/5nw/w/w/////w/w///w/w\n/w/////w/w///w/w/wz///zw/w///w/w/wz///zwAP///w/w/w/MzM/w////\n/w/w/w/P/88A/////w/w/w/P/8///////w/w/w/8/P///////w/w/w/8/P//\n/////w/w/w//z////////w/w/wAAAAAAAAAAAA/w///////////////w////\n///////////w\n",
284284 :styles => {:default_style => 0x50000004,:option => {},:style => {:ES_VERTICAL => 0x400000,:ES_EX_NOCALLOLEINIT => 0x1000000,:ES_SAVESEL => 0x8000,:ES_READONLY => 0x800,:WS_DISABLED => 0x8000000,:ES_SUNKEN => 0x4000,:ES_AUTOHSCROLL => 0x80,:ES_SELFIME => 0x40000,:ES_RIGHT => 0x2,:ES_DISABLENOSCROLL => 0x2000,:ES_SELECTIONBAR => 0x1000000,:ES_MULTILINE => 0x4,:ES_WANTRETURN => 0x1000,:ES_AUTOVSCROLL => 0x40,:ES_NOIME => 0x80000,:WS_THICKFRAME => 0x40000,:ES_CENTER => 0x1,:ES_NOHIDESEL => 0x100}},
@@ -292,13 +292,13 @@
292292 :maskstyle => 0x0,
293293 :required => "vrcomctl",
294294 :included => "VRToolbarUseable",
295- :createMethod => :newFDToolbar,
295+ :precreation => "if c.klass == VRToolbar && prnt.is_a?(VRRebar); addstyle |= 4; end",
296+ :createmethods => :NewFDToolbar,
296297 :info => "Toolbar",
297298 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["ccstyles","FDWStyle::CCSStr[c.style & 0x2f]","nil"],["buttons"," \"click ->\"",:_btArray]],
298299 :events => nil,
299300 :mthds => ["insertButton(i,name,style=TBSTYLE_BUTTON)","addButton(style)","deleteButton(i)","clearButtons","countButtons","setImagelist(imglist)","setParent(hwnd)","autoSize","indeterminateOf(i,bool=true)","commandToIndex(id)","enableButton(i,bool=true)","getButtonStateOf(id)","setButtonStateOf(i,state)","setButtons(buttons)","enumButtons"],
300301 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
301- :popups => [["font","setfont"]],
302302 :items => [["toolButton1"],["toolButton2",0x1],["toolButton3",0x6],["toolButton4",0x6],["toolButton5",0x6]],
303303 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgAAAAAAAAAAAAAAAAiIiIiIgPiIiIiIiAgAAA\nAIgPiIAAAACAC7u7uwgPiAAA8DCAC7u7uwgPgDAAADCAC7u7uwgPgDMzMzCA\nC7u7uwgPgDMzMzCAC7AAAAgPgDAAADCAC7CIiIgPgDCIgDCAgAiIiIgPgDCI\ngDCAiIiIiIgPgAAAAACAiIiIiIgPiIiIiIiA///////////////wZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
304304 :styles => {:default_style => 0x50000001,:option => {:CCS_BOTTOM => 0x3,:CCS_NODIVIDER => 0x40,:CCS_NOPARENTALIGN => 0x8,:CCS_ADJUSTABLE => 0x20,:CCS_NOMOVEY => 0x2,:CCS_NORESIZE => 0x4,:CCS_TOP => 0x1},:style => {:TBSTYLE_ALTDRAG => 0x400,:TBSTYLE_FLAT => 0x800,:TBSTYLE_WRAPABLE => 0x200,:TBSTYLE_TOOLTIPS => 0x100}},
@@ -312,13 +312,13 @@
312312 :maskstyle => 0x0,
313313 :required => "vrcomctl",
314314 :included => nil,
315- :createMethod => :newFDRebar,
315+ :precreation => 'return messageBox("cannot arrange #{c.klass} on #{prnt.class}","Illegal arrangement",16) if c.klass == prnt.class',
316+ :createmethods => :NewFDRebar,
316317 :info => "Rebar",
317318 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["bands"," \"click ->\"",:_btArray]],
318319 :events => ["layoutchanged"],
319320 :mthds => ["insertband(cntl,txt,minx=30,miny=cnt.h+2,band=-1)","bkColor=(c)","bkColor","textColor=(c)","textColor","relayout(x=self.x, y=self.y, w=self.w, h=self.h)"],
320321 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
321- :popups => [["font","setfont"],["color","setcolor"]],
322322 :items => nil,
323323 :bmp => "BAh1OhFTV2luOjpCaXRtYXAClgFCTZYBAAAAAAAAdgAAACgAAAAYAAAAGAAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm\nZmZmZmZmAAAAAAAAAAAAAAAA93h3d3d3d3d3d3d39/eHd3d3AAAAAAAH9/eH\nd3d/d3d3d3cH9/eHd3d/d3d3d3cH9/eHd3d/d3d3d3cH9/eHd3d/d3d3d3cH\n9/eHd3d/d3d3d3cH9/eHd3d/d3d3d3cH9/eHd3d/d3d3d3cH9/eHd3d/d3d3\nd3cH9/eHd3d/d3d3d3cH9/eHd3d/d3d3d3cH9/eHd3d///////9393h3d3d3\nd3d3d3d3////////////////ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm\nZmZmZmZmZmZmZmZmZmZmZmZmZmZm\n",
324324 :styles => {:default_style => 0x50000001,:option => {:CCS_BOTTOM => 0x3,:CCS_NODIVIDER => 0x40,:CCS_NOPARENTALIGN => 0x8,:CCS_ADJUSTABLE => 0x20,:CCS_NOMOVEY => 0x2,:CCS_NORESIZE => 0x4,:CCS_TOP => 0x1},:style => {:RBS_VARHEIGHT => 0x200,:RBS_FIXEDORDER => 0x800,:RBS_TOOLTIPS => 0x100,:RBS_BANDBORDERS => 0x400}},
@@ -332,13 +332,13 @@
332332 :maskstyle => 0x0,
333333 :required => "vrcomctl",
334334 :included => nil,
335- :createMethod => :newFDCtrl,
335+ :precreation => nil,
336+ :createmethods => nil,
336337 :info => "Listview",
337338 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["tabOrder","c.tab_order",:_btTab],["owndraw","c.owndraw_used?",:_cbOwnDraw],["lvexstyle","c.lvexstyle.to_x",:_btExStyle]],
338339 :events => ["itemchanged(idx,state)","itemchanging(idx,state)","columnclick(subitem)","begindrag","beginrdrag"],
339340 :mthds => ["setViewMode(mode)","getViewMode","iconview","reportview","smalliconview","listview","setBkColor(color)","bkcolor=(color)","lvexstyle","lvexstyle=(style)","setListviewExStyle(style,mask=0xffffffff)","insertColumn(column,text,width=50,format=0,textsize=title.size)","deleteColumn(column)","clearColumns","countColumns","addColumn(text,width=50,format=0,textsize=title.size)","setImagelist(imagelist,itype=0)","setItemIconOf(hitem,img)","getItemIconOf(hitem)","getColumnWidthOf(column)","setColumnWidthOf(column,width)","getColumnTextOf(column)","setColumnTextOf(column,text)","getColumnFormatOf(column)","setColumnFormatOf(column,format)","insertItem(index,texts,lparam=0,textsize=128)","addItem(texts,lparam=0,textsize=128)","insertMultiItems(index,multitexts)","deleteItem(idx)","clearItems","countItems","hittest(x,y)","hittest2(x,y)","getItemRect(idx)","getItemStateOf(idx)","setItemStateOf(idx,state)","selectItem(idx,flag) ","getNextItem(start,flags)","focusedItem","getItemTextOf(idx,subitem=0,textsize=128)","setItemTextOf(idx,subitem,text,textsize=text.size)","getItemLParamOf(idx)","setItemLParamOf(idx,lparam)","selected?(idx)","focused?(idx)","eachSelectedItems","countSelectedItems()","ensureVisible(i,partial=true)"],
340341 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
341- :popups => [["font","setfont"]],
342342 :items => nil,
343343 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZv////////////ZgZv////////////ZgZv/MzM//\nzMzMz/ZgZv////////////ZgZv////////////ZgZv/MzM//zMzMz/ZgZv//\n//////////ZgZv////////////ZgZv/MzM//zMzMz/ZgZv////////////Zg\nZv////////////ZgZv/MzM//zMzMz/ZgZv////////////ZgZv//////////\n//ZgZv/MzM//zMzMz/ZgZv////////////ZgZv////////////ZgZgAAAAAP\nAAAAAAZgZviIiIgPiIiIiAZgZviIiIgPiIiIiAZgZv////8P/////wZgZmZm\nZmZmZmZmZmZg\n",
344344 :styles => {:default_style => 0x50000001,:lvexstyle => {:LVS_EX_CHECKBOXES => 0x4,:LVS_EX_FLATSB => 0x100,:LVS_EX_BORDERSELECT => 0x8000,:LVS_EX_GRIDLINES => 0x1,:LVS_EX_REGIONAL => 0x200,:LVS_EX_ONECLICKACTIVATE => 0x40,:LVS_EX_INFOTIP => 0x400,:LVS_EX_UNDERLINEHOT => 0x800,:LVS_EX_MULTIWORKAREAS => 0x2000,:LVS_EX_LABELTIP => 0x4000,:LVS_EX_UNDERLINECOLD => 0x1000,:LVS_EX_TWOCLICKACTIVATE => 0x80,:LVS_EX_FULLROWSELECT => 0x20,:LVS_EX_HEADERDRAGDROP => 0x10,:LVS_EX_SUBITEMIMAGES => 0x2,:LVS_EX_TRACKSELECT => 0x8},:option => {:LVS_LIST => 0x3,:LVS_ICON => 0x0,:LVS_REPORT => 0x1,:LVS_SMALLICON => 0x2},:style => {:LVS_SHOWSELALWAYS => 0x8,:LVS_ALIGNLEFT => 0x800,:LVS_SORTDESCENDING => 0x20,:LVS_EDITLABELS => 0x200,:WS_DISABLED => 0x8000000,:LVS_SHAREIMAGELISTS => 0x40,:LVS_ALIGNMASK => 0xc00,:LVS_SINGLESEL => 0x4,:LVS_TYPESTYLEMASK => 0xfc00,:LVS_NOSORTHEADER => 0x8000,:LVS_NOLABELWRAP => 0x80,:LVS_AUTOARRANGE => 0x100,:LVS_SORTASCENDING => 0x10,:LVS_NOSCROLL => 0x2000,:LVS_NOCOLUMNHEADER => 0x4000,:WS_THICKFRAME => 0x40000}},
@@ -352,13 +352,13 @@
352352 :maskstyle => 0x0,
353353 :required => "vrcomctl",
354354 :included => nil,
355- :createMethod => :newFDCtrl,
355+ :precreation => nil,
356+ :createmethods => nil,
356357 :info => "Treeview",
357358 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["tabOrder","c.tab_order",:_btTab]],
358359 :events => ["selchanged(hitem,lparam)","itemexpanded(hitem,state,lparam)","deleteitem(hitem,lparam)","begindrag(hitem,state,lparam)","beginrdrag(hitem,state,lparam)"],
359360 :mthds => ["insertItem(hparent,hafter,text,lparam=0,textsize=text.size)","insertMultiItems(hparent,hafter,items)","addItem(hparent,text,lparam=0,textsize=text.size)","addMultiItems(hparent,items)","deleteItem(hitem)","clearItems","countItems","selectItem(hitem)","indent","indent=","hittest(x,y)","hittest2(x,y)","getNextItem(hitem,code)","topItem","root","last","selectedItem()","getParentOf(hitem)","getChildOf(hitem)","getNextSiblingOf(hitem)","setImagelist(imagelist)","setItemIconOf(hitem,img,simg)","getItemIconOf(hitem)","setItemLParamOf(hitem,lparam)","getItemLParamOf(hitem)","setItemTextOf(hitem,text)","getItemTextOf(hitem,textsize=128)","setItemStateOf(hitem,state)","getItemStateOf(hitem)"],
360361 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
361- :popups => [["font","setfont"]],
362362 :items => nil,
363363 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmYAAAAAZmZmZmZmZmYLu7sAZmZmZmZgAAALu7sAZmZmZmZg\nZmYLu7sAZmZmZmZgZmYAAAAAZmZmZmZgZmZmZmZgZmZmZmZgZmYAAAAAZmZm\nZmZgZmYLu7sAZmZmZmZgAAALu7sAZmZmZmZgZmYLu7sAZmZmZmZgZmYAAAAA\nZmZmZmZgZmZmZmZgZmZmZgAAAAZmZmZgZmZmZgu7uwZmZmZgZmAAAAu7uwZm\nZmZgZmBmZgu7uwZmZmZgZmBmZgAAAAZmZmZgZmBmZmZmZmZmZmZgAAAABmZm\nZmZmZmZgC7u7BmZmZmZmZmZgC7u7BmZmZmZmZmZgC7u7BmZmZmZmZmZgAAAA\nBmZmZmZmZmZg\n",
364364 :styles => {:default_style => 0x5000000f,:option => {},:style => {:TVS_HASLINES => 0x2,:TVS_EDITLABELS => 0x8,:TVS_SHOWSELALWAYS => 0x20,:WS_DISABLED => 0x8000000,:TVS_DISABLEDRAGDROP => 0x10,:WS_THICKFRAME => 0x40000,:TVS_LINESATROOT => 0x4}},
@@ -372,13 +372,13 @@
372372 :maskstyle => 0x0,
373373 :required => "vrcomctl",
374374 :included => nil,
375- :createMethod => :newFDCtrl,
375+ :precreation => nil,
376+ :createmethods => nil,
376377 :info => "Progressbar",
377378 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule]],
378379 :events => [],
379380 :mthds => ["setRange(minr,maxr)","position","position=(pos)","stepwidth=(st)","step","advance(n=1)"],
380381 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
381- :popups => [["font","setfont"],["color","setcolor"]],
382382 :items => nil,
383383 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZgD//////////////wDMjMjMjMiIiIiIjwDMjMjMjMiIiIiIjw\nDMjMjMjMiIiIiIjwDMjMjMjMiIiIiIjwDMjMjMjMiIiIiIjwAAAAAAAAAAAA\nAADwZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
384384 :styles => {:default_style => 0x50000000,:option => {},:style => {:WS_DISABLED => 0x8000000,:WS_BORDER => 0x800000,:WS_THICKFRAME => 0x40000}},
@@ -392,13 +392,13 @@
392392 :maskstyle => 0x0,
393393 :required => "vrcomctl",
394394 :included => nil,
395- :createMethod => :newFDCtrl,
395+ :precreation => nil,
396+ :createmethods => nil,
396397 :info => "Trackbar",
397398 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["tabOrder","c.tab_order",:_btTab]],
398399 :events => [],
399400 :mthds => ["position","position=(pos)","linesize","linesize=(s)","pagesize","pagesize=(p)","rangeMin","rangeMin=(m)","rangeMax","rangeMax=(m)","selStart","selStart=(m)","selEnd","selEnd=(m)","clearSel"],
400401 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
401- :popups => [["font","setfont"],["color","setcolor"]],
402402 :items => nil,
403403 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgbGZsZmxmbGZsZmxgbGZsZmxm\nbGZsZmxgbGZsZmxmbGZsZmxgbGZsZmxmbGZsZmxgZmZmZmZmZmZmZmZgZmZg\nZmZmZmZmZmZgZmb4BmZmZmZmZmZgZm+IgGZmZmZmZmZgZviIiAZmZmZmZmZg\nZviIiAZmZmZmZmZgZviIiAZmZmZmZmZg//iIiA/////////wAPiIiAAAAAAA\nAAAAZviIiAZmZmZmZmZgZviIiAZmZmZmZmZgZviIiAZmZmZmZmZgZv////Zm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
404404 :styles => {:default_style => 0x50000000,:option => {},:toggle => ["TBS_VERT","TBS_TOP","TBS_LEFT"],:style => {:TBS_FIXEDLENGTH => 0x40,:TBS_LEFT => 0x4,:WS_DISABLED => 0x8000000,:TBS_VERT => 0x2,:TBS_ENABLESELRANGE => 0x20,:TBS_TOP => 0x4,:TBS_BOTH => 0x8,:TBS_NOTICKS => 0x10,:WS_BORDER => 0x800000,:WS_THICKFRAME => 0x40000,:TBS_NOTHUMB => 0x80}},
@@ -412,13 +412,13 @@
412412 :maskstyle => 0x0,
413413 :required => "vrcomctl",
414414 :included => nil,
415- :createMethod => :newFDCtrl,
415+ :precreation => nil,
416+ :createmethods => nil,
416417 :info => "Updown",
417418 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule]],
418419 :events => ["changed(pos)"],
419420 :mthds => ["setRange(minr,maxr)","getRange","position","position=","base","base=(b)"],
420421 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
421- :popups => [["font","setfont"],["color","setcolor"]],
422422 :items => nil,
423423 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmAAAAAAAGZmZgZmZm+IiI\niIgGZmZgZmZm+IiIiIgGZmZgZmZm+IiAiIgGZmZgZmZm+IgACIgGZmZgZmZm\n+IAAAIgGZmZgZmZm+IiIiIgGZmZgZmZm+IiIiIgGZmZgZmZm+IiIiIgGZmZg\nZmZm//////8GZmZgZmZmAAAAAABmZmZgZmZm+IiIiIgGZmZgZmZm+IiIiIgG\nZmZgZmZm+IiIiIgGZmZgZmZm+IAAAIgGZmZgZmZm+IgACIgGZmZgZmZm+IiA\niIgGZmZgZmZm+IiIiIgGZmZgZmZm+IiIiIgGZmZgZmZm//////9mZmZgZmZm\nZmZmZmZmZmZg\n",
424424 :styles => {:default_style => 0x50000000,:option => {},:style => {:WS_DISABLED => 0x8000000,:UDS_HORZ => 0x40,:UDS_WRAP => 0x1,:UDS_SETBUDDYINT => 0x2,:UDS_ALIGNLEFT => 0x8,:UDS_AUTOBUDDY => 0x10,:UDS_ARROWKEYS => 0x20,:UDS_ALIGNRIGHT => 0x4,:UDS_NOTHOUSANDS => 0x80,:WS_THICKFRAME => 0x40000}},
@@ -432,13 +432,13 @@
432432 :maskstyle => 0x0,
433433 :required => "vrcomctl",
434434 :included => nil,
435- :createMethod => :newFDCtrl,
435+ :precreation => nil,
436+ :createmethods => nil,
436437 :info => "Statusbar",
437438 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule]],
438439 :events => [],
439440 :mthds => ["setparts(p,width=[-1])","parts","getTextOf(idx)","setTextOf(idx,text,style=0)","getRectOf(idx)","minheight=(minh)"],
440441 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
441- :popups => [["font","setfont"],["color","setcolor"]],
442442 :items => nil,
443443 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgAAAAAAAA\nAAAAAAAAiIiIiIiIiIiIiIgA//j/////h/h/h4gAiPh4iIiI+H+H+HgAiPh4\niIiIj4f4f4gAiPh4iIiIiPh/h/gAiPh4iIiIiI+H+HgAiPh4iIiIiIj4f4gA\niPh4iIiIiIiPh/gAiPh4iIiIiIiI+HgAiPh4iIiIiIiIj4gAiPh4iIiIiIiI\niPgAiPh4iIiIiIiIiPgAiPh4iIiIiIiIiPgAd/h3d3d3d3d3d/gAiIiIiIiI\niIiIiIgA//////////////9gZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
444444 :styles => {:default_style => 0x50000000,:option => {:CCS_BOTTOM => 0x3,:CCS_NODIVIDER => 0x40,:WS_DISABLED => 0x8000000,:CCS_NOPARENTALIGN => 0x8,:CCS_ADJUSTABLE => 0x20,:CCS_NOMOVEY => 0x2,:CCS_NORESIZE => 0x4,:CCS_TOP => 0x1},:style => {:SBARS_SIZEGRIP => 0x100}},
@@ -452,13 +452,13 @@
452452 :maskstyle => 0x0,
453453 :required => "vrcomctl",
454454 :included => nil,
455- :createMethod => :newFDCtrl,
455+ :precreation => nil,
456+ :createmethods => :NewFDTabControl,
456457 :info => "TabControl",
457- :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["owndraw","c.owndraw_used?",:_cbOwnDraw]],
458+ :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["owndraw","c.owndraw_used?",:_cbOwnDraw],['tabs'," \"click ->\"",:_btArray]],
458459 :events => ["selchanged"],
459460 :mthds => ["insertTab(index,text,textmax=text.size,lparam=0)","clearTabs","deleteTab(idx)","countTabs","selectedTab","selectTab(idx)","setImagelist(imagelist)","setTabSize(width,height)","getTabRect(i)","adjustRect(x,y,w,h,flag=false)","getTabTextOf(idx)","setTabTextOf(idx,text)","getTabImageOf(idx)","setTabImageOf(idx,image)","getTabLParamOf(idx)","setTabLParamOf(idx,lparam)"],
460461 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRMessageParentRelayer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => ""},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
461- :popups => [["font","setfont"],["color","setcolor"]],
462462 :items => nil,
463463 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgYAAAAAAA\nAAAAAABgb4iIiIiIiIiIiIBgb4iIiIiIiIiIiIBgb4iIiIiIiIiIiIBgb4iI\niIiIiIiIiIBgb4iIiIiIiIiIiIBgb4iIiIiIiIiIiIBgb4iIiIiIiIiIiIBg\nb4iIiIiIiIiIiIBgb4iIiIiIiIiIiIBgb4iIiIiIiIiIiIBgb4iIiIiIiIiI\niIBgb4iIiIiIiIiIiIBgb4iI//////////Bgb4iA+IgPiIBmZmZgb4iA+IgP\niIBmZmZgZv/2b/9m//ZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
464464 :styles => {:default_style => 0x54000000,:option => {},:toggle => ["TCS_VERTICAL","TCS_BOTTOM","TCS_RIGHT"],:style => {:TCS_TOOLTIPS => 0x4000,:TCS_FIXEDWIDTH => 0x400,:WS_DISABLED => 0x8000000,:TCS_FORCELABELLEFT => 0x20,:TCS_FOCUSNEVER => 0x8000,:TCS_RIGHT => 0x2,:TCS_BUTTONS => 0x100,:TCS_VERTICAL => 0x80,:TCS_MULTILINE => 0x200,:TCS_HOTTRACK => 0x40,:TCS_RAGGEDRIGHT => 0x800,:TCS_FORCEICONLEFT => 0x10,:TCS_FOCUSONBUTTONDOWN => 0x1000,:TCS_BOTTOM => 0x2}},
@@ -472,13 +472,13 @@
472472 :maskstyle => 0x0,
473473 :required => "vrcomctl",
474474 :included => nil,
475- :createMethod => :newFDTabbedPanel,
475+ :precreation => 'return messageBox("cannot arrange #{c.klass} on #{prnt.class}","Illegal arrangement",16) if c.klass == prnt.class',
476+ :createmethods => :NewFDTabbedPanel,
476477 :info => "TabbedPanel",
477478 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule],["pages"," \"click ->\"",:_btArray],["owndraw","c.owndraw_used?",:_cbOwnDraw]],
478479 :events => ["selchanged"],
479480 :mthds => ["setupPanels(title-1,title-2,title-3,....)","send_parent2(idx,controlname,eventname)","panels","insertTab(index,text,textmax=text.size,lparam=0)","clearTabs","deleteTab(idx)","countTabs","selectedTab","selectTab(idx)","setImagelist(imagelist)","setTabSize(width,height)","getTabRect(i)","adjustRect(x,y,w,h,flag=false)","getTabTextOf(idx)","setTabTextOf(idx,text)","getTabImageOf(idx)","setTabImageOf(idx,image)","getTabLParamOf(idx)","setTabLParamOf(idx,lparam)"],
480481 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRMessageParentRelayer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => ""},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
481- :popups => [["font","setfont"],["color","setcolor"]],
482482 :items => ["tab1","tab2"],
483483 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgYAAAAAAA\nAAAAAABgb4iIiIiIiIiIiIBgb4h3d3d3d3d3eIBgb4//////////94Bgb494\niIiIiIiI94Bgb494iIiIiIiI94Bgb494iIiIiIiI94Bgb494iIiIiIiI94Bg\nb494iIiIiIiI94Bgb494iIiIiIiI94Bgb493d3d3d3d3eIBgb4j/////////\n+IBgb4iIiIiIiIiIiIBgb4iI//////////Bgb4iA+IgPiIBmZmZgb4iA+IgP\niIBmZmZgZv/2b/9m//ZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
484484 :styles => {:default_style => 0x54000000,:option => {},:toggle => ["TCS_VERTICAL","TCS_BOTTOM","TCS_RIGHT"],:style => {:TCS_TOOLTIPS => 0x4000,:TCS_FIXEDWIDTH => 0x400,:WS_DISABLED => 0x8000000,:TCS_FORCELABELLEFT => 0x20,:TCS_FOCUSNEVER => 0x8000,:TCS_RIGHT => 0x2,:TCS_VERTICAL => 0x80,:TCS_MULTILINE => 0x200,:TCS_HOTTRACK => 0x40,:TCS_RAGGEDRIGHT => 0x800,:TCS_FORCEICONLEFT => 0x10,:TCS_FOCUSONBUTTONDOWN => 0x1000,:TCS_BOTTOM => 0x2}},
@@ -492,13 +492,13 @@
492492 :maskstyle => 0x0,
493493 :required => "vrmmedia",
494494 :included => "VRMediaViewModeNotifier",
495- :createMethod => :newFDCoverd,
495+ :precreation => nil,
496+ :createmethods => nil,
496497 :info => "MediaView,",
497498 :attrs => ["name","caption","x","y","w","h",["font","getFontName(c)",:_btFont],["style","st = (c.style|c.owndraw)-c._default_style\n st == 0 ? \"default\" : sprintf(\"%#x\",st)",:_btStyle],["modules","\"click ->\"",:_btModule]],
498499 :events => ["onerror()","modechanged(newmode)","sizechanged()","mediachanged(str)"],
499500 :mthds => ["mediaopen(filename,flag=0)","mediaclose","mode","modestring(n)","errorstring","play","pause","stop","eject","step(n=1)","seek(pos)","seekHome","seekEnd","playable?","ejectable?","window?","length","position","volume","volume=(vl)","speed","speed=","zoom","zoom="],
500501 :mods => {:VRMouseFeasible => {:__Struct__ => FDMod,:events => ["self_lbuttonup(shift,x,y)","self_lbuttondown(shift,x,y)","self_rbuttonup(shift,x,y)","self_rbuttondown(shift,x,y)","self_mousemove(shift,x,y)"],:methods => [],:requires => "vrhandler"},:VRResizeSensitive => {:__Struct__ => FDMod,:events => ["self_resize(w,h)"],:methods => [],:requires => nil},:VRFocusSensitive => {:__Struct__ => FDMod,:events => ["self_gotfocus()","self_lostfocus()"],:methods => [],:requires => "vrhandler"},:VROwnerDrawControlContainer => {:__Struct__ => FDMod,:events => [],:methods => [],:requires => "vrowndraw"},:VRDrawable => {:__Struct__ => FDMod,:events => ["self_paint"],:methods => [],:requires => nil},:VRKeyFeasible => {:__Struct__ => FDMod,:events => ["self_char(keycode,keydata)","self_deadchar(keycode,keydata)","self_syschar(keycode,keydata)","self_sysdeadchar(keycode,keydata)"],:methods => [],:requires => "vrhandler"},:VRDropFileTarget => {:__Struct__ => FDMod,:events => ["self_dropfiles(files)"],:methods => [],:requires => "vrddrop"},:VRDragFileSource => {:__Struct__ => FDMod,:events => ["dragStart(files)"],:methods => [],:requires => "vrddrop"}},
501- :popups => [],
502502 :items => nil,
503503 :bmp => "BAh1OhFTV2luOjpCaXRtYXAClgFCTZYBAAAAAAAAdgAAACgAAAAYAAAAGAAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmiIiIhohmZmZmZmZm93d3hveG\nZmZmZmZm93d3hvd4hmZmZmZm93d3hvd3eIZmZmZm93d3hvd3d3hmZmZm93d3\nhvd3d3eIZmZm93d3hvd3d3d3iGZm93d3hvd3d3d3d4hm93d3hvd3d3d3d3eG\n93d3hvd3d3d3d3d493d3hvd3d3d3d3d/93d3hvd3d3d3d3f293d3hvd3d3d3\nd/9m93d3hvd3d3d3/2Zm93d3hvd3d3d/ZmZm93d3hvd3d3/2ZmZm93d3hvd3\nf/ZmZmZm93d3hvd/9mZmZmZm93d3hvf2ZmZmZmZm////9v9mZmZmZmZmZmZm\nZmZmZmZmZmZmZmZmZmZmZmZmZmZm\n",
504504 :styles => {:default_style => 0x50005d80},
@@ -514,13 +514,13 @@
514514 :maskstyle => 0x0,
515515 :required => "vrcontrol",
516516 :included => "VRMenuUseable",
517- :createMethod => :newFDMenu,
517+ :precreation => 'prnt.class.module_eval "attr_accessor :_vr_menus "',
518+ :createmethods => :NewFDMenu,
518519 :info => "Menu",
519520 :attrs => ["name","caption","x","y",["accel","c.getaccel ? \"true\" : \"false\" ",:_cbTF],["menus","\"click ->\"",:_btArray]],
520521 :events => nil,
521522 :mthds => ["append(caption,state)","insert(ptr,caption,state)","delete(id)","count","set(sarr)"],
522523 :mods => nil,
523- :popups => [["addItem","addItem"]],
524524 :items => [["&File",[["&New\tCtrl+N","new"],["&Open","open"],["&Save","save"],["Save&As","saveas"],["sep","_vrmenusep",0x800],["E&xit","exit"]]],["&Edit",[["&Delete","doDelete"],["Cu&t","cut"],["&Copy","copy"],["&Paste","paste"]]],["&Help",[["Versio&n","version"]]]],
525525 :bmp => "BAh1OhFTV2luOjpCaXRtYXAClgFCTZYBAAAAAAAAdgAAACgAAAAYAAAAGAAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmaIiIiIiIhmZmZmZmb3d3\nd3d3hmZmZmZmb3d3d3d3hmZmZmZmb3AHAHAHhmZmZmZmb3d3d3d3hmZmZmZm\nb8zMzMzMhmZmZmZmb8AMAMAMhmZmZmZmb8zMzMzMhmZmZmZmb3d3d3d3hmZm\nZmZmb3AHAHAHhmZmZmZmb3d3d3d3hmZmZmZmb3d3d3d3hmZmZmZmb///////\n9mZmiIiIiIiIiIiIiIiId3d493d3d493d3d3d3d493d3d493d3d3cAB49wBw\nB49wBwB3d3d493d3d493d3d3d3d493d3d493d3d3////////////////ZmZm\nZmZmZmZmZmZmZmZmZmZmZmZmZmZm\n",
526526 :styles => {:default_style => nil},
@@ -534,13 +534,13 @@
534534 :maskstyle => 0x0,
535535 :required => "vrcontrol",
536536 :included => "VRMenuUseable",
537- :createMethod => :newFDPopup,
537+ :precreation => nil,
538+ :createmethods => :NewFDPopup,
538539 :info => "PopupMenu",
539540 :attrs => ["name","caption","x","y",["menus","\"click ->\"",:_btArray]],
540541 :events => nil,
541542 :mthds => ["showPopup(menu)","append(caption,state)","insert(ptr,caption,state)","delete(id)","count","set(sarr)"],
542543 :mods => nil,
543- :popups => [["addItem","addItem"]],
544544 :items => [["&Delete\tDelete","doDelete"],["sep","_vrmenusep",0x800],["&Copy\tCtrl+C","doCopy"],["&Paste\tCtrl+V","doPaste"]],
545545 :bmp => "BAh1OhFTV2luOjpCaXRtYXAClgFCTZYBAAAAAAAAdgAAACgAAAAYAAAAGAAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZoiIiIiGZmZmZmZm\nZvd3d3eGZmZmZmZmZvd3d3eGZmiIiIiIiPcAcAeGZm93d3d3d/d3d3eGZm93\nd3d3d/zMzMyGZm9wBwBwB/wAwAyGZm93d3d3d/zMzMyGZm93d3d3d/d3d3eG\nZm9wBwBwB/cAcAeGZm93d3d3d/d3d3eGZm93d3dwd/d3d3eGZm9wBwBwB///\n///2Zm93d3dwd4ZmZmZmZm93d3d3d4ZmZmZmZm9wBwBwB4ZmZmZmZm93d3d3\nd4ZmZmZmu793d3d3d4ZmZmZmZm////////ZmZmZmZra2ZmZmZmZmZmZma2a2\nZmZmZmZmZmZmtma2ZmZmZmZmZmZm\n",
546546 :styles => {:default_style => nil},
@@ -554,13 +554,13 @@
554554 :maskstyle => 0x0,
555555 :required => nil,
556556 :included => nil,
557- :createMethod => :newFDOpenSaveDlg,
557+ :precreation => nil,
558+ :createmethods => :NewFDOpenSaveDlg,
558559 :info => "OpenDlg",
559560 :attrs => ["name","caption","x","y",["filters"," \"click ->\"",:_btArray],["flags"," \"click ->\"",:_btArray],"title","defaultExt"],
560561 :events => [],
561562 :mthds => ["openFilenameDialog(*arg)"],
562563 :mods => nil,
563- :popups => [],
564564 :items => nil,
565565 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZgAAAAAAAAAAZmZgZgMzMzMzMzMwZmZgZgAz\nMzMzMzMzBmZgZgAzMzMzMzMzBmZgZgsDMzMzMzMzMGZgZgsDMzMzMzMzMGZg\nZguwMzMzMzMzMwZgZguwAAAAAAAAAAZgZgu7u7u7u7uwZmZgZgu7u7u7u7uw\nZmZgZgu7AAAAAAAGYABgZgu7BmZmZmZmZgBgZmAAZmZmZmZmYGBgZmZmZmZm\nZmZgBmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
566566 :styles => {:default_style => nil},
@@ -574,13 +574,13 @@
574574 :maskstyle => 0x0,
575575 :required => nil,
576576 :included => nil,
577- :createMethod => :newFDOpenSaveDlg,
577+ :precreation => nil,
578+ :createmethods => :NewFDOpenSaveDlg,
578579 :info => "SaveDlg",
579580 :attrs => ["name","caption","x","y",["filters"," \"click ->\"",:_btArray],["flags"," \"click ->\"",:_btArray],"title","defaultExt"],
580581 :events => [],
581582 :mthds => ["saveFilenameDialog(*arg)"],
582583 :mods => nil,
583- :popups => [],
584584 :items => nil,
585585 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZgAAAA\nAAAAAGZgZmYDAAAAAP8DMGZgZmAzAAAAAP8DMGZgZmAzAAAAAP8DMGZgZmAz\nAAAAAAADMGZgZmAzMzMzMzMzMGZgZmAzMzMzMzMzMGZgZmAzMzMzMzMzMGZg\nZmAzAAAAAAADMGZgZmAzCIiIiIgDMGZgZmAzCIiIiIgDMGZgZmAzCIiIiIgD\nMGZgZmAzCIiIiIgDMGZgZmAzCIiIiIgDMGZgZmAzCIiIiIgAAGZgZmAzCIiI\niIgP8GZgZmAAAAAAAAAAAGZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
586586 :styles => {:default_style => nil},
@@ -594,13 +594,13 @@
594594 :maskstyle => 0x0,
595595 :required => nil,
596596 :included => nil,
597- :createMethod => :newFDSelectDir,
597+ :precreation => nil,
598+ :createmethods => :NewFDSelectDir,
598599 :info => "SelectDirectory",
599600 :attrs => ["name","caption","x","y","title","initialdir",["flags"," \"click ->\"",:_btArray]],
600601 :events => [],
601602 :mthds => ["selectDirectory(*arg)"],
602603 :mods => nil,
603- :popups => [],
604604 :items => nil,
605605 :bmp => "BAh1OhFTV2luOjpCaXRtYXAClgFCTZYBAAAAAAAAdgAAACgAAAAYAAAAGAAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZmZmZmZmZmZmAAAAAGZmZmZmZmZmC7u7sGZmZmZmZm\nZmC7u7sGZmZgYGBgYGC7u7sGZmZmZmZmZmC7u7sGZmZgZmZmZmC7u7sGZmZm\nZmZmZmAAAAAGZmZgZmZmZmC7sGZmZmZmZmZmZmYABmZmZmZgZmZmZmZmZmZm\nZmZmZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZmZmZmZmZmZmZmYAAAAABmZmAA\nAAAGYP////BmZmC7u7sGYP/w//BmZmC7u7sGYP/w//BmZmC7u7sGYPAAAPBg\nYGC7u7sGYP/w//BmZmC7u7sGYP/w//BmZmAAAAAGYP////BmZmC7sGZmYAAA\nAABmZmYABmZmZmZmZmZmZmZmZmZm\n",
606606 :styles => {:default_style => nil},
@@ -614,13 +614,13 @@
614614 :maskstyle => 0x0,
615615 :required => nil,
616616 :included => nil,
617- :createMethod => :newFDModule,
617+ :precreation => nil,
618+ :createmethods => :NewFDModule,
618619 :info => "FontDlg",
619620 :attrs => ["name","caption","x","y"],
620621 :events => [],
621622 :mthds => ["chooseFontDialog(*arg)"],
622623 :mods => nil,
623- :popups => [],
624624 :items => nil,
625625 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgYGZm\nYABgZgYABmZgYGZmBmBgZgZgZmZgYGZmBmBgBgZgZmZgYGZmYAZgYGZgZmZg\nYGZmZmZmZmZgZmZgYAAABmZmZmZgZmZgYGZmZmZmZmZgZmZgYGZmZmZmZmZg\nZmZgYGZmZmZmYGZgZmBgYAAAAGZmYAAAAABgZmZmZmZmZmZmZmZgZmZmZmZm\nZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
626626 :styles => {:default_style => nil},
@@ -634,13 +634,13 @@
634634 :maskstyle => 0x0,
635635 :required => nil,
636636 :included => nil,
637- :createMethod => :newFDModule,
637+ :precreation => nil,
638+ :createmethods => :NewFDModule,
638639 :info => "ColorDlg",
639640 :attrs => ["name","caption","x","y"],
640641 :events => [],
641642 :mthds => ["chooseColorDialog(*arg)"],
642643 :mods => nil,
643- :popups => [],
644644 :items => nil,
645645 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAFAEAAMQOAADEDgAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZgAAAAAAAAAAAAZgZgiIiA//\n/wAAAAZgZgiIiA///wAAAAZgZgiIiA///wAAAAZgZgiIiA///wAAAAZgZgiI\niA///wAAAAZgZgAAAAAAAAAAAAZgZg7u7gzMzA3d3QZgZg7u7gzMzA3d3QZg\nZg7u7gzMzA3d3QZgZg7u7gzMzA3d3QZgZg7u7gzMzA3d3QZgZgAAAAAAAAAA\nAAZgZgmZmQu7uwqqqgZgZgmZmQu7uwqqqgZgZgmZmQu7uwqqqgZgZgmZmQu7\nuwqqqgZgZgmZmQu7uwqqqgZgZgAAAAAAAAAAAAZgZmZmZmZmZmZmZmZgZmZm\nZmZmZmZmZmZg\n",
646646 :styles => {:default_style => nil},
@@ -656,13 +656,13 @@
656656 :maskstyle => 0x0,
657657 :required => "vrmgdlayout",
658658 :included => "VRMarginedFrameUseable",
659- :createMethod => :newFD2Pane,
659+ :precreation => nil,
660+ :createmethods => :NewFD2Pane,
660661 :info => "Horiz2Pane",
661662 :attrs => ["name","caption","x","y",["register","\"click ->\"",:_btLayout],["ratio","c.substance.ratio","self.ratio"],["position","c.substance.position","self.position"],["gap","c.substance.gap","num"],["bevel","{VRMgdTwoPaneFrame::BevelNone=>\"None\",\n VRMgdTwoPaneFrame::BevelGroove1=>\"Groove1\",\n VRMgdTwoPaneFrame::BevelGroove2=>\"Groove2\",\n VRMgdTwoPaneFrame::BevelRaise1=>\"Raise1\",\n VRMgdTwoPaneFrame::BevelRaise2=>\"Raise2\",\n VRMgdTwoPaneFrame::BevelSunken1=>\"Sunken1\",\n VRMgdTwoPaneFrame::BevelSunken2=>\"Sunken2\"}[c.substance.bevel]",:_cbBevel],["lLimit","c.substance.lLimit","num"],["rLimit","c.substance.rLimit","num"]],
662663 :events => [],
663664 :mthds => [],
664665 :mods => nil,
665- :popups => [],
666666 :items => nil,
667667 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgZmZmZmYABmZmZmZgZmZmZmYABmZmZmZgZmZmZmYA\nBmZmZmZgZmZmZmYABmZmZmZgZmZmZmYABmZmZmZgZmZgZmYABmZgZmZgZmYA\nZmYABmZgBmZgZmAAZmYABmZgAGZgZgAAZmYABmZgAAZgYAAAAAAAAAAAAABg\nAAAAAAAAAAAAAAAAYAAAAAAAAAAAAABgZgAAZmYABmZgAAZgZmAAZmYABmZg\nAGZgZmYAZmYABmZgBmZgZmZgZmYABmZgZmZgZmZmZmYABmZmZmZgZmZmZmYA\nBmZmZmZgZmZmZmYABmZmZmZgZmZmZmYABmZmZmZgZmZmZmYABmZmZmZgZmZm\nZmZmZmZmZmZg\n",
668668 :styles => {:default_style => nil},
@@ -676,13 +676,13 @@
676676 :maskstyle => 0x0,
677677 :required => "vrmgdlayout",
678678 :included => "VRMarginedFrameUseable",
679- :createMethod => :newFD2Pane,
679+ :precreation => nil,
680+ :createmethods => :NewFD2Pane,
680681 :info => "Vert2Pane",
681682 :attrs => ["name","caption","x","y",["register","\"click ->\"",:_btLayout],["ratio","c.substance.ratio","self.ratio"],["position","c.substance.position","self.position"],["gap","c.substance.gap","num"],["bevel","{VRMgdTwoPaneFrame::BevelNone=>\"None\",\n VRMgdTwoPaneFrame::BevelGroove1=>\"Groove1\",\n VRMgdTwoPaneFrame::BevelGroove2=>\"Groove2\",\n VRMgdTwoPaneFrame::BevelRaise1=>\"Raise1\",\n VRMgdTwoPaneFrame::BevelRaise2=>\"Raise2\",\n VRMgdTwoPaneFrame::BevelSunken1=>\"Sunken1\",\n VRMgdTwoPaneFrame::BevelSunken2=>\"Sunken2\"}[c.substance.bevel]",:_cbBevel],["uLimit","c.substance.uLimit","num"],["lLimit","c.substance.lLimit","num"]],
682683 :events => [],
683684 :mthds => [],
684685 :mods => nil,
685- :popups => [],
686686 :items => nil,
687687 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZgZmZmZmZgZmZmZmYABmZmZmZgZmZmZmAAAGZmZmZgZmZmZgAA\nAAZmZmZgZmZmYAAAAABmZmZgZmZmAAAAAAAGZmZgZmZmZmYABmZmZmZgZmZm\nZmYABmZmZmZgZmZmZmYABmZmZmZgZmZmZmYABmZmZmZgYAAAAAAAAAAAAABg\nYAAAAAAAAAAAAABgYAAAAAAAAAAAAABgZmZmZmYABmZmZmZgZmZmZmYABmZm\nZmZgZmZmZmYABmZmZmZgZmZmZmYABmZmZmZgZmZmAAAAAAAGZmZgZmZmYAAA\nAABmZmZgZmZmZgAAAAZmZmZgZmZmZmAAAGZmZmZgZmZmZmYABmZmZmZgZmZm\nZmZgZmZmZmZg\n",
688688 :styles => {:default_style => nil},
@@ -696,13 +696,13 @@
696696 :maskstyle => 0x0,
697697 :required => "vrmgdlayout",
698698 :included => "VRMarginedFrameUseable",
699- :createMethod => :newFDLayout,
699+ :precreation => nil,
700+ :createmethods => :NewFDLayout,
700701 :info => "FullsizeFrame",
701702 :attrs => ["name","caption","x","y",["register","\"click ->\"",:_btLayout]],
702703 :events => [],
703704 :mthds => [],
704705 :mods => nil,
705- :popups => [],
706706 :items => nil,
707707 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgYAAAAGZmZmAAAABgYAAAAGZmZmAAAABgYAAGZmZm\nZmZmAABgYAAAZmZmZmZgAABgYAYABmZmZmYABgBgYAZgAGZmZmAAZgBgYAZm\nAGZmZmAGZgBgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZg\nZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZmZmZgZmZmZmZmZmZm\nZmZgYAZmAGZmZmAGZgBgYAZgAGZmZmAAZgBgYAYABmZmZmYABgBgYAAAZmZm\nZmZgAABgYAAGZmZmZmZmAABgYAAAAGZmZmAAAABgYAAAAGZmZmAAAABgZmZm\nZmZmZmZmZmZg\n",
708708 :styles => {:default_style => nil},
@@ -716,13 +716,13 @@
716716 :maskstyle => 0x0,
717717 :required => "vrmgdlayout",
718718 :included => "VRMarginedFrameUseable",
719- :createMethod => :newFDLayout,
719+ :precreation => nil,
720+ :createmethods => :NewFDLayout,
720721 :info => "HorizFrame",
721722 :attrs => ["name","caption","x","y",["register","\"click ->\"",:_btLayout]],
722723 :events => [],
723724 :mthds => [],
724725 :mods => nil,
725- :popups => [],
726726 :items => nil,
727727 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgb3d3d/d3d393d3dgb2ZmZ/ZmZn9mZmdgb2ZmZ/Zm\nZn9mZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb2Zm\nZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdg\nb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9m\nZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/Zm\nZn9mZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb/////////////9gZmZm\nZmZmZmZmZmZg\n",
728728 :styles => {:default_style => nil},
@@ -736,13 +736,13 @@
736736 :maskstyle => 0x0,
737737 :required => "vrmgdlayout",
738738 :included => "VRMarginedFrameUseable",
739- :createMethod => :newFDLayout,
739+ :precreation => nil,
740+ :createmethods => :NewFDLayout,
740741 :info => "VertFrame",
741742 :attrs => ["name","caption","x","y",["register","\"click ->\"",:_btLayout]],
742743 :events => [],
743744 :mthds => [],
744745 :mods => nil,
745- :popups => [],
746746 :items => nil,
747747 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgb3d3d3d3d3d3d3dgb2ZmZmZmZmZmZmdgb2ZmZmZm\nZmZmZmdgb2ZmZmZmZmZmZmdgb2ZmZmZmZmZmZmdgb2ZmZmZmZmZmZmdgb///\n//////////dgb3d3d3d3d3d3d3dgb2ZmZmZmZmZmZmdgb2ZmZmZmZmZmZmdg\nb2ZmZmZmZmZmZmdgb2ZmZmZmZmZmZmdgb2ZmZmZmZmZmZmdgb///////////\n//dgb3d3d3d3d3d3d3dgb2ZmZmZmZmZmZmdgb2ZmZmZmZmZmZmdgb2ZmZmZm\nZmZmZmdgb2ZmZmZmZmZmZmdgb2ZmZmZmZmZmZmdgb/////////////9gZmZm\nZmZmZmZmZmZg\n",
748748 :styles => {:default_style => nil},
@@ -756,13 +756,13 @@
756756 :maskstyle => 0x0,
757757 :required => "vrmgdlayout",
758758 :included => "VRMarginedFrameUseable",
759- :createMethod => :newFDLayout,
759+ :precreation => nil,
760+ :createmethods => :NewFDLayout,
760761 :info => "GridFrame",
761762 :attrs => ["name","caption","x","y",["register","\"click ->\"",:_btLayout],"xsize","ysize"],
762763 :events => [],
763764 :mthds => [],
764765 :mods => nil,
765- :popups => [],
766766 :items => nil,
767767 :bmp => "BAh1OhFTV2luOjpCaXRtYXACigFCTYoBAAAAAAAAdgAAACgAAAAXAAAAFwAA\nAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAA\ngAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/\n//8AZmZmZmZmZmZmZmZgb3d3d/d3d393d3dgb2ZmZ/ZmZn9mZmdgb2ZmZ/Zm\nZn9mZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb///\n/3////f///9gb3d3d/d3d393d3dgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdg\nb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb////3////f/\n//9gb3d3d/d3d393d3dgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/Zm\nZn9mZmdgb2ZmZ/ZmZn9mZmdgb2ZmZ/ZmZn9mZmdgb/////////////9gZmZm\nZmZmZmZmZmZg\n",
768768 :styles => {:default_style => nil},
--- formdesigner/1_0/fdvr/docs/pallets.txt (revision 70)
+++ formdesigner/1_0/fdvr/docs/pallets.txt (revision 71)
@@ -12,7 +12,7 @@
1212 :events eventタブに表示される項目
1313 :mthds mtdタブに表示される項目
1414 :mods 追加できるモジュールのリスト
15-:popups インスタンスを右クリックしたときのコンテキストメニュー
15+:popups インスタンスを右クリックしたときのコンテキストメニュー(未実装)
1616 :items インスタンス生成時にデフォルトで追加されるオブジェクトのリスト(メニューやツールバーのボタン等)
1717 :bmp パレットに表示されるアイコン(現在のところ*.bmpのみ読める)
1818 :styles 追加できるスタイルのリスト
--- formdesigner/1_0/fdvr/docs/Bugs.txt (revision 70)
+++ formdesigner/1_0/fdvr/docs/Bugs.txt (revision 71)
@@ -50,17 +50,26 @@
5050 VRTabbedPanelクライアント領域クリックでクライアントサイズにリサイズされる。done
5151 カットしたコントロールの幽霊がファイルに出力されてしまう。いつの間にかdone
5252 ChooseFontDlgが生のSWin::Fontを受け付けなくなってる。FD側で対応。done
53-設定ファイルはYAMLに。done
54-カスタマイズサンプル。2個done
55-include なんちゃらがどんどん増える。20080120 done
53+設定ファイルはYAMLに。done→YAMLは先行き不安があるのでやめた。直接Rubyスクリプトを食わせることにした。
54+カスタマイズサンプル。4個done 080211
55+1.9でHash#findを使っているところはアウト。これを直す。→OHash#findで対応した。done 080214
56+HEADのSWinでレイアウトマネージャの挙動が変。(時々WindowSizeとClientSizeを取り違える。)→SendMessage(...WM_SIZE...)で生のw,hを使っていた。done 080214
57+GridLayoutFrameのアイテムをUP/DOWNするとハッシュにごみを残してOK時エラーになる。done 080217
58+2Paneでunregisterしたコントロールにフォーカスがあたって、再register時にエラーになる。done 080217
59+include なんちゃらがどんどん増える。080120 done まだVRMenuUseableが残。done 080217
60+マルチセレクトでCTRL+LBUTTONをもう一回押すとアイテムの選択解除できるように。done 080217
61+coverwindowにあけた穴のsend_toとrecreate後のIDがくい違いWindowNotExistsになる。多分 done 080217
5662
63+########## BUGS ##########
64+VRTabbedPanelのページを増減すると、@panelsにnilが混じることがある。
65+1.9でSift-JISを正しく読めない、
66+
5767 ########## PENDING ##########
58-exstyleの追加。→やらん。
68+exstyleの追加。→やらん。ListViewなど、個別に対応。
5969 VRStaticはイベントを全て親にスルーするからmoduleを削除する?。→このまま。
6070
6171 ########## TODO ##########
62-TabContorlのスタイルでダブっている定数(TBS_BOTTOM,TBS_RIGTなど)の整理
63-  というかmodule,style設定をもっとちゃんとしなくちゃ。
72+TabContorlのスタイルでダブっている定数(TBS_BOTTOM,TBS_RIGTなど)の整理→というかmodule,style設定をもっとちゃんとしなくちゃ。
6473 VRListView のstyleも変。
6574 VRListViewにlvsexsytleを追加。
6675 VBicへの対応
@@ -70,4 +79,9 @@
7079 メニューテンプレートへの対応。
7180 Refoctoring
7281 Pallet editor
73-Ruby 1.9 への対応
82+Ruby 1.9 への対応。m17nが残。
83+現在recreateするとZ-orderとコントロールの生成順序が狂ってしまうが、狂わないようにする。
84+やはりImageListEditorは必要。
85+TabControlにもTabsEditorを。
86+Unicodeへの対応(SWin、VRubyとも)
87+マルチセレクト可能なオペレーションはUndoができるように。
--- formdesigner/1_0/fdvr/fddialogs.rb (revision 70)
+++ formdesigner/1_0/fdvr/fddialogs.rb (revision 71)
@@ -1411,7 +1411,7 @@
14111411 DEFAULT_FONT=VRLocalScreen.factory.newfont('MS UI Gothic',-13,0,4,0,0,0,50,128)
14121412
14131413 @@args=nil
1414- def LayoutDlg.args= (args); @@args=args end
1414+ def self.args= (args); @@args=args end
14151415 def initialize; super ; @args = @@args end
14161416 class TabPane < VRTabControl
14171417 include VRComCtlContainer
@@ -1420,9 +1420,9 @@
14201420 def construct
14211421 insertTab(0,"")
14221422 addControl(VRListview,'listView1',"listView1",*adjustRect(x,y,w-4,h))
1423- @listView1.lvexstyle=0x21
1424- @listView1.addColumn('*',18)
1425- @listView1.addColumn('control name',@listView1.w-22)
1423+ @listView1.lvexstyle = 0x21 | 4
1424+# @listView1.addColumn('*',18)
1425+ @listView1.addColumn('control name',@listView1.w-4)
14261426 end
14271427 end
14281428
@@ -1430,7 +1430,7 @@
14301430 self.caption = 'Register'
14311431 self.move(@args[:x],@args[:y]+124,140,400)
14321432 addControl(TabPane,'tabPane','',0,0,self.w-8,self.h-84,WStyle::TCS_BOTTOM)
1433- addControl(VRButton,'btRegister',"Register",48,320,84,24)
1433+# addControl(VRButton,'btRegister',"Register",48,320,84,24)
14341434 addControl(VRButton,'btOK',"OK",0,348,64,24)
14351435 addControl(VRButton,'btCan',"Cancel",68,348,64,24)
14361436 addControl(Bt_UP,'btUP',"",0,320,24,24)
@@ -1442,153 +1442,138 @@
14421442
14431443 def construct
14441444 _registerDlg_init
1445- if @args[:focused].substance.is_a? VRHorizTwoPaneFrame
1445+ @ctlList=OHash.new
1446+ if (s=@args[:focused].substance).is_a? VRHorizTwoPaneFrame
14461447 @tabPane.setTabTextOf(0,"left")
14471448 @tabPane.insertTab(1,"right")
1448- elsif @args[:focused].substance.is_a? VRVertTwoPaneFrame
1449+ elsif s.is_a? VRVertTwoPaneFrame
14491450 @tabPane.setTabTextOf(0,"upper")
14501451 @tabPane.insertTab(1,"lower")
14511452 else
14521453 @tabPane.setTabTextOf(0,"layout")
1454+ s._vr_layoutclients.each do |i|
1455+ @ctlList[i.etc] = [i.name, 0]
1456+ end
14531457 end
1454- @ctlList=[[],[]]
1455- @registerd = [[],[]]
1456- @current_tab = 0
1457- @args[:c].controls.each{|k,itm|
1458- if itm.is_a?(FDContainer)
1458+ @args[:c].controls.each{|id,itm|
1459+ next if @ctlList[id]
1460+ if itm.is_a?(FDContainer) #Containers
14591461 sb = itm.substance
1460- next unless sb.is_a?(VRLayoutFrame)||
1461- itm.substance.is_a?(VRTwoPaneFrame)
1462+ next unless sb.is_a?(VRLayoutFrame) || sb.is_a?(VRTwoPaneFrame)
14621463 next if (@args[:c].instance_eval("@__regsterd_vr_margined_frame")==sb)
1463- if @args[:focused] == itm
1464+ elsif !itm.respond_to?(:_ext_init) # FormDesigner's Controls
1465+ next
1466+ end
1467+ if @args[:focused] == itm
14641468 next
1465- elsif itm.registerd_to.empty?
1466- @ctlList[0] << ["",itm.name]
1467- @ctlList[1] << ["",itm.name]
1468- elsif itm.registerd_to[0] == @args[:focused]
1469- @ctlList[itm.registerd_to[1]] << ["*",itm.name]
1470- @registerd[itm.registerd_to[1]] << itm
1471- else
1472- end
1473- elsif itm.respond_to?(:_ext_init)
1474- if @args[:focused] == itm
1475- next
1476- elsif itm.registerd_to.empty?
1477- @ctlList[0] << ["",itm.name]
1478- @ctlList[1] << ["",itm.name]
1479- elsif itm.registerd_to[0] == @args[:focused]
1480- @ctlList[itm.registerd_to[1]] << ["*",itm.name]
1481- @registerd[itm.registerd_to[1]] << itm
1482- else
1483- end
1469+ elsif itm.registerd_to.empty?
1470+ @ctlList[id] = [itm.name, nil]
1471+ elsif itm.registerd_to[0] == @args[:focused]
1472+ @ctlList[id] = [itm.name, itm.registerd_to[1]]
14841473 else
14851474 end
14861475 }
1487- @ctlList[0].each{|i|@tabPane.listView1.addItem(i)}
1488- @current_tab = @tabPane.selectedTab
1489- end
1490-
1491- def tabPane_listView1_itemchanged(idx,state)
1492- return if state != 0
1493- if @tabPane.listView1.getItemTextOf(idx,0) == "" then
1494- @btRegister.caption="Register"
1495- else
1496- @btRegister.caption="UnRegister"
1476+ lv1 = @tabPane.listView1
1477+ @ctlList.each do |id, val|
1478+ if !val[1] || val[1] == 0
1479+ lv1.addItem([val[0]],id)
1480+ lv1.setItemStateOf(lv1.countItems-1, 8192) if val[1]
1481+ end
14971482 end
1498- c0 = @args[:c].controls.select{|k,v|
1499- v.name == @tabPane.listView1.getItemTextOf(idx,1)}[0][1]
1500- @args[:frm].coverfrm.set_focus(c0)
1483+ @may_focus = true
15011484 end
15021485
15031486 def tabPane_selchanged
1504- @ctlList[@current_tab].clear
1505- 0.upto(@tabPane.listView1.countItems-1){|i|
1506- @ctlList[@current_tab] << [@tabPane.listView1.getItemTextOf(i,0),
1507- @tabPane.listView1.getItemTextOf(i,1)]}
1508- @tabPane.listView1.clearItems
1509- @ctlList[@tabPane.selectedTab].each{|i|@tabPane.listView1.addItem(i)}
1510- @current_tab = @tabPane.selectedTab
1487+ current_tab = @tabPane.selectedTab
1488+ lv = @tabPane.listView1
1489+ lv.clearItems
1490+ $designfrm.coverfrm.set_focus(nil)
1491+ @args[:c].refresh
1492+ @may_focus = nil
1493+ @ctlList.each{|id, val| #p [id, val,current_tab]
1494+ if val[1] == nil || val[1] == current_tab
1495+ lv.addItem([val[0]], id)
1496+ lv.setItemStateOf(lv.countItems-1,8192) if val[1] == current_tab #check
1497+ end
1498+ }
1499+ @may_focus = true
15111500 end
1512-
1513- def tabPane_listView1_columnclick(subitem)
1514- btRegister_clicked if subitem == 0
1515- end
1516-
1517- def btRegister_clicked
1518- return if @tabPane.listView1.countItems == 0
1519- n = @current_tab==0 ? 1 : 0
1520- s = @tabPane.listView1.getItemTextOf(@tabPane.listView1.focusedItem,1)
1521- if @tabPane.listView1.getItemTextOf(@tabPane.listView1.focusedItem,0) == ""
1522- @tabPane.listView1.setItemTextOf(@tabPane.listView1.focusedItem,0,"*")
1523- @registerd[@current_tab] << @args[:c].controls.find{|k,i| i.name == s}[1]
1524- @ctlList[n].reject!{|i| i[1] == s} if @tabPane.countTabs > 1
1525- else
1526- @tabPane.listView1.setItemTextOf(@tabPane.listView1.focusedItem,0,"")
1527- @registerd[@current_tab].reject!{|i| i.name == s}
1528- @ctlList[n] << ["",s] if @tabPane.countTabs > 1
1501+
1502+ def tabPane_listView1_itemchanged(idx,state)
1503+ return if @dont_selchaneg
1504+ lv = @tabPane.listView1#;p [idx,state]
1505+ if (state & 0x1000) != 0
1506+ @ctlList[lv.getItemLParamOf(idx)][1] = @tabPane.selectedTab
1507+ elsif (state & 0x2000) != 0
1508+ @ctlList[lv.getItemLParamOf(idx)][1] = nil
1509+ elsif state == 0 && @may_focus
1510+ c = @args[:c].controls[lv.getItemLParamOf(idx)]
1511+ $designfrm.coverfrm.set_focus(c)
1512+ @args[:c].refresh
15291513 end
1530- @tabPane.listView1.focus
15311514 end
15321515
15331516 def btUP_clicked
1534- nf=@tabPane.listView1.focusedItem
1535- if nf > 0 then
1536- s=@tabPane.listView1.getItemTextOf(nf-1,0)
1537- @tabPane.listView1.setItemTextOf(nf-1,0,
1538- @tabPane.listView1.getItemTextOf(nf,0))
1539- @tabPane.listView1.setItemTextOf(nf,0,s)
1540- s=@tabPane.listView1.getItemTextOf(nf-1,1)
1541- @tabPane.listView1.setItemTextOf(nf-1,1,
1542- @tabPane.listView1.getItemTextOf(nf,1))
1543- @tabPane.listView1.setItemTextOf(nf,1,s)
1544- @tabPane.listView1.setItemStateOf(nf,0)
1545- @tabPane.listView1.setItemStateOf(nf-1,
1546- WConst::LVIS_SELECTED|WConst::LVIS_FOCUSED)
1517+ lv = @tabPane.listView1
1518+ nf=lv.focusedItem
1519+ if nf > 0
1520+ @dont_selchaneg = true
1521+ s = lv.getItemTextOf(nf-1, 0)
1522+ lv.setItemTextOf(nf-1, 0, lv.getItemTextOf(nf, 0))
1523+ lv.setItemTextOf(nf, 0, s)
1524+
1525+ lp = lv.getItemLParamOf(nf-1)
1526+ lv.setItemLParamOf(nf-1, lv.getItemLParamOf(nf))
1527+ lv.setItemLParamOf(nf, lp)
1528+ # p [1,@ctlList]
1529+ t = lv.getItemStateOf(nf-1)
1530+ lv.setItemStateOf(nf-1, lv.getItemStateOf(nf))
1531+ lv.setItemStateOf(nf, t)
1532+ # p [2,@ctlList]
1533+ a = @ctlList.order[nf-1]
1534+ @ctlList.order[nf-1] = @ctlList.order[nf]
1535+ @ctlList.order[nf] = a
1536+ # p [3,@ctlList]
1537+ @dont_selchaneg = nil
15471538 end
1548- @tabPane.listView1.focus
1539+ lv.focus
15491540 end
15501541
15511542 def btDN_clicked
1552- nf=@tabPane.listView1.focusedItem
1553- if nf < @tabPane.listView1.countItems-1 then
1554- s=@tabPane.listView1.getItemTextOf(nf+1,0)
1555- @tabPane.listView1.setItemTextOf(nf+1,0,
1556- @tabPane.listView1.getItemTextOf(nf,0))
1557- @tabPane.listView1.setItemTextOf(nf,0,s)
1558- s=@tabPane.listView1.getItemTextOf(nf+1,1)
1559- @tabPane.listView1.setItemTextOf(nf+1,1,
1560- @tabPane.listView1.getItemTextOf(nf,1))
1561- @tabPane.listView1.setItemTextOf(nf,1,s)
1562- @tabPane.listView1.setItemStateOf(nf,0)
1563- @tabPane.listView1.setItemStateOf(nf+1,
1564- WConst::LVIS_SELECTED|WConst::LVIS_FOCUSED)
1543+ lv = @tabPane.listView1
1544+ nf=lv.focusedItem
1545+ if nf < lv.countItems-1
1546+ @dont_selchaneg = true
1547+ s = lv.getItemTextOf(nf+1, 0)
1548+ lv.setItemTextOf(nf+1, 0, lv.getItemTextOf(nf,0))
1549+ lv.setItemTextOf(nf, 0, s)
1550+
1551+ lp = lv.getItemLParamOf(nf+1)
1552+ lv.setItemLParamOf(nf+1, lv.getItemLParamOf(nf))
1553+ lv.setItemLParamOf(nf, lp)
1554+
1555+ t = lv.getItemStateOf(nf+1)
1556+ lv.setItemStateOf(nf+1, lv.getItemStateOf(nf))
1557+ lv.setItemStateOf(nf, t)
1558+
1559+ a = @ctlList.order[nf+1]
1560+ @ctlList.order[nf+1] = @ctlList.order[nf]
1561+ @ctlList.order[nf] = a
1562+ @dont_selchaneg = nil
15651563 end
1566- @tabPane.listView1.focus
1564+ lv.focus
15671565 end
15681566
15691567 def btOK_clicked
1570- r = []
1571- @tabPane.selectTab(0)
1572- tabPane_selchanged
1573- n = @tabPane.listView1.countItems
1574- 0.upto(n-1) do |i|
1575- if @tabPane.listView1.getItemTextOf(i,0) == '*'
1576- r << @args[:c].controls.find{|k,itm|
1577- itm.name == @tabPane.listView1.getItemTextOf(i,1)
1578- }[1]
1568+ r0 = [] ; r1 = []
1569+ @ctlList.each do |k,val|
1570+ if val[1] == 0
1571+ r0 << @args[:c].controls[k]
1572+ elsif val[1] == 1
1573+ r1 << @args[:c].controls[k]
15791574 end
15801575 end
1581- if @tabPane.countTabs > 1
1582- r = [r,[]]
1583- 0.upto(@ctlList[1].size-1) do |i|
1584- if @ctlList[1][i][0] == '*'
1585- r[1] << @args[:c].controls.find{|k,itm|
1586- itm.name == @ctlList[1][i][1]
1587- }[1]
1588- end
1589- end
1590- end
1591- close r
1576+ close @tabPane.countTabs == 1 ? r0 : [r0,r1]
15921577 end
15931578
15941579 def btCan_clicked
@@ -1613,30 +1598,49 @@
16131598 def self.args=(arg) @@args = arg ;end
16141599 def construct
16151600 self.caption = 'Version information of FormDesigner'
1616- self.move(168,196,496,246)
1617- addControl(VRStatic,'static9',"Version: 000000",304,40,136,16,0x2)
1618- @static9.setFont(VersionDlg_fonts[0])
1601+ self.move(168,196,496,296)
1602+ addControl(VRButton,'button1',"O K",192,232,104,24)
1603+ @button1.setFont(VersionDlg_fonts[4])
16191604 addControl(VRStatic,'static1',"The FormDesigner for Project VisualuRuby",56,8,384,24)
16201605 @static1.setFont(VersionDlg_fonts[1])
1621- addControl(VRStatic,'static2',"Written by:",16,80,96,16,0xb)
1606+ addControl(VRStatic,'strubyv',"Ruby version:",16,80,96,16,0xb)
1607+ @strubyv.setFont(VersionDlg_fonts[2])
1608+ if defined?(RUBY_DESCRIPTION)
1609+ rversion = RUBY_DESCRIPTION
1610+ elsif defined?(RUBY_VERSION)
1611+ if defined?(RUBY_PATCHLEVEL)
1612+ rversion = "ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE} patchlevel #{RUBY_PATCHLEVEL}) [#{RUBY_PLATFORM}]"
1613+ else
1614+ rversion = "ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
1615+ end
1616+ else
1617+ rversion = "ruby #{VERSION} (#{RELEASE_DATE}) [#{PLATFORM}]"
1618+ end
1619+ addControl(VRStatic,'strubyvv',"#{rversion}",160,80,320,16)
1620+ @strubyvv.setFont(VersionDlg_fonts[2])
1621+ addControl(VRStatic,'stswinv',"SWin version:",16,104,96,16,0xb)
1622+ @stswinv.setFont(VersionDlg_fonts[2])
1623+ addControl(VRStatic,'stswinvv',"#{SWin::VERSION}",160,104,200,16)
1624+ @stswinvv.setFont(VersionDlg_fonts[2])
1625+ addControl(VRStatic,'static2',"Written by:",16,128,96,16,0xb)
16221626 @static2.setFont(VersionDlg_fonts[2])
1623- addControl(VRStatic,'static7',"https://sourceforge.jp/projects/fdvr",160,128,192,16)
1627+ addControl(VRStatic,'static3',"yukimi_sake@mbi.nifty.com",160,128,176,16)
1628+ @static3.setFont(VersionDlg_fonts[2])
1629+ addControl(VRStatic,'static4',"Basic designed by:",16,152,112,16)
1630+ @static4.setFont(VersionDlg_fonts[2])
1631+ addControl(VRStatic,'static5',"nyasu@osk.3web.ne.jp",160,152,176,16)
1632+ @static5.setFont(VersionDlg_fonts[2])
1633+ addControl(VRStatic,'static6',"Project Home Page:",16,176,112,16)
1634+ @static6.setFont(VersionDlg_fonts[2])
1635+ addControl(VRStatic,'static7',"https://sourceforge.jp/projects/fdvr",160,176,192,16)
16241636 @static7.setFont(VersionDlg_fonts[3])
1625- addControl(VRStatic,'static3',"yukimi_sake@mbi.nifty.com",160,80,176,16)
1626- @static3.setFont(VersionDlg_fonts[2])
16271637 # addControl(VRStatic,'static8',"Version:",328,40,56,16)
16281638 # @static8.setFont(VersionDlg_fonts[0])
1629- addControl(VRStatic,'static5',"nyasu@osk.3web.ne.jp",160,104,176,16)
1630- @static5.setFont(VersionDlg_fonts[2])
1631- addControl(VRButton,'button1',"O K",192,184,104,24)
1632- @button1.setFont(VersionDlg_fonts[4])
1633- addControl(VRStatic,'static10',"VisualuRuby Home Page:",16,152,136,16)
1639+ addControl(VRStatic,'static9',"Version: 000000",304,40,136,16,0x2)
1640+ @static9.setFont(VersionDlg_fonts[0])
1641+ addControl(VRStatic,'static10',"VisualuRuby Home Page:",16,200,136,16)
16341642 @static10.setFont(VersionDlg_fonts[2])
1635- addControl(VRStatic,'static6',"Project Home Page:",16,128,112,16)
1636- @static6.setFont(VersionDlg_fonts[2])
1637- addControl(VRStatic,'static4',"Basic designed by:",16,104,112,16)
1638- @static4.setFont(VersionDlg_fonts[2])
1639- addControl(VRStatic,'static11',"",160,152,320,16)
1643+ addControl(VRStatic,'static11',"",160,200,320,16)
16401644 if $Lang == 'EN'
16411645 @static11.caption = "http://www.osk.3web.ne.jp/~nyasu/vruby/vrproject-e.html"
16421646 else
--- formdesigner/1_0/fdvr/fdcoverfrm.rb (revision 70)
+++ formdesigner/1_0/fdvr/fdcoverfrm.rb (revision 71)
@@ -100,6 +100,7 @@
100100 def resize
101101 wx,wy,ww,wh = parent.windowrect
102102 self.move wx,wy,ww,wh
103+# parent.refresh
103104 end
104105
105106
@@ -110,7 +111,7 @@
110111 if i.visible? && (_x<=x) && (x<=_x+_w) && (_y<=y) && (y<=_y+_h)
111112 next unless i.respond_to?(:_ext_init)
112113 r = i
113- if r.is_a?(FDContainer)
114+ if r.is_a?(FDContainer)
114115 return r
115116 elsif i.respond_to?(:addControl) && !i.is_a?(FDContainer)
116117 r = hittest(i, x, y)
@@ -141,7 +142,7 @@
141142 Hole = Struct.new(:l, :t, :r, :b, :curs, :sendto)
142143
143144 def open_hole(obj, l, t, r, b, curs, sendto)
144- raise 'last arg must be a SWin::Cursor' unless curs.is_a? SWin::Cursor
145+ raise '6th arg must be a SWin::Cursor' unless curs.is_a? SWin::Cursor
145146 l, t = screen_to_client(self, *client_to_screen(sendto, l, t))
146147 r, b = screen_to_client(self, *client_to_screen(sendto, r, b))
147148 @opend_holes[obj] = Hole[l, t, r, b, curs, sendto]
@@ -151,13 +152,14 @@
151152 if o = @opend_holes[obj]
152153 l, t = screen_to_client(self, *client_to_screen(o.sendto, l, t))
153154 r, b = screen_to_client(self, *client_to_screen(o.sendto, r, b))
154- o.l = l
155- o.t = t
156- o.r = r
157- o.b = b
155+ o.l = l; o.t = t; o.r = r; o.b = b
158156 end
159157 end
160158
159+ def get_hole(obj)
160+ @opend_holes[obj]
161+ end
162+
161163 def close_hole(obj)
162164 @opend_holes.delete(obj)
163165 end
@@ -164,11 +166,17 @@
164166
165167 def on_the_hole?(x,y,obj=nil)
166168 @opend_holes.each_pair{|k, v|
167- return v if v.l <= x && x <= v.r && v.t <= y && y <= v.b
168- }
169+ return v if v.l <= x && x <= v.r && v.t <= y && y <= v.b}
169170 nil
170171 end
171172
173+ def erase_holes(prnt)
174+ prnt.controls.each{|k,o|
175+ close_hole(o.substance) if o.respond_to?(:substance)
176+ erase_holes(o) if o.respond_to?(:addControl)
177+ }
178+ end
179+
172180 def use_parent_of?(obj)
173181 obj.is_a?(FDContainer) || !obj.respond_to?(:addControl)
174182 end
@@ -199,8 +207,8 @@
199207 if $main.creation
200208 if @creation.klass <= SWin::Window
201209 @parentobj = use_parent_of?(@hitobj) ? @hitobj.parent : @hitobj
202- elsif (@creation.createMethod == :newFD2Pane) ||
203- (@creation.createMethod == :newFDLayout)
210+ elsif (@creation.createmethods == :NewFD2Pane) ||
211+ (@creation.createmethods == :NewFDLayout)
204212 @parentobj = use_parent_of?(@hitobj) ? @hitobj.parent : @hitobj
205213 else
206214 @parentobj = self.parent # $designfrm
@@ -257,7 +265,11 @@
257265 setCapture
258266 elsif focused && shift == 9
259267 if @hitobj != parent && focused.parent == @hitobj.parent
260- add_select(@hitobj)
268+ if so = @selected.find{|i| i.obj == @hitobj}
269+ @selected.delete(so)
270+ else
271+ add_select(@hitobj)
272+ end
261273 @drag_state = Moving
262274 end
263275 elsif @hitobj != parent
@@ -319,8 +331,6 @@
319331 $main.popupMenu($main.amenu.menu, *screen_to_client($main, _x, _y))
320332 end
321333
322-
323-
324334 Moving = 1
325335 ResizeALL = 2
326336 ResizeLR = 3
@@ -374,17 +384,26 @@
374384 _x, _w = (x1 <= x2) ? [x1, x2-x1] : [x2, x1-x2]
375385 _y, _h = (y1 <= y2) ? [y1, y2-y1] : [y2, y1-y2]
376386 end
377- c = @parentobj.send("#{cr.createMethod}",@parentobj,cr,nam,nam,_x,_y,_w,_h)
387+
388+ #c = @parentobj.send("#{cr.createMethod}",@parentobj,cr,nam,nam,_x,_y,_w,_h)
389+ #c.parent.child_created(c) if c.parent.respond_to?(:child_created)
390+ if cr.klass <= SWin::Window
391+ c = @parentobj.newFDControl(@parentobj, cr, nam, nam, _x, _y, _w, _h)
392+ else
393+ c = @parentobj.newFDContainer(@parentobj, cr, nam, nam, _x, _y, _w, _h)
394+ end
395+ return unless c.is_a?(SWin::Window)
378396 c.parent.child_created(c) if c.parent.respond_to?(:child_created)
379397 @hitobj = c
380398 set_focus(c)
399+ $designfrm.refreshCntName
381400 @selected_point = nil
382- elsif @hitobj && @hitobj != parent
401+ elsif @hitobj && @hitobj != $designfrm
383402 if @drag_state == Moving
384403 dx, dy = x2-x1, y2-y1
385404 @selected.each do |i|
386405 ix,iy,iw,ih = i.obj.windowrect
387- ix,iy = screen_to_client(self,ix,iy)
406+ ix,iy = screen_to_client(i.obj.parent,ix,iy)
388407 _x ,_y = ix + dx, iy + dy
389408 i.obj.move(_x, _y, iw, ih)
390409 i.rect.l = i.rect.l + dx
@@ -424,10 +443,11 @@
424443 set_focus(@hitobj) unless focused
425444 $main.inc_modified
426445 $main.tab.noselectAll
427- @hitobj.sendMessage(WMsg::WM_SIZE, 0, MAKELPARAM(@hitobj.w, @hitobj.h)) if @hitob
446+ @hitobj.sendMessage(WMsg::WM_SIZE, 0,
447+ MAKELPARAM(*@hitobj.clientrect[2,2])) if @hitobj
428448 if @hitobj && @hitobj != $designfrm
429- px,py,pw,ph = @hitobj.parent.clientrect
430- @hitobj.parent.sendMessage(WMsg::WM_SIZE, 0, MAKELPARAM(pw, ph))
449+ @hitobj.parent.sendMessage(WMsg::WM_SIZE, 0,
450+ MAKELPARAM(*@hitobj.parent.clientrect[2,2]))
431451 end
432452 bring_to_top_container(parent)
433453 update_menues
--- formdesigner/1_0/fdvr/fdmain.rb (revision 70)
+++ formdesigner/1_0/fdvr/fdmain.rb (revision 71)
@@ -195,6 +195,12 @@
195195 include VRDdeRequestServer
196196 end
197197
198+ WM_SYSCOMMAND = 0x0112
199+ SC_MINIMIZE = 0xf020
200+ SC_MAXIMIZE = 0xf030
201+ SC_RESTORE = 0xf120
202+
203+
198204 HH_INITIALIZE = 0x001C # Initializes the help system.
199205 HH_UNINITIALIZE = 0x001D
200206 HH_DISPLAY_TOC = 0x1
@@ -211,7 +217,7 @@
211217 end
212218
213219 def self_wmcommand(msg)
214- if (frmID=LOWORD(msg.wParam))>=Start_Of_FrmID then
220+ if (frmID=LOWORD(msg.wParam))>=Start_Of_FrmID
215221 select_form(frmID)
216222 else
217223 super
@@ -218,13 +224,24 @@
218224 end
219225 end
220226
227+
228+ def self_syscommand(cmd, x, y)
229+ case cmd
230+ when SC_MINIMIZE
231+ $designfrm.coverfrm.hide
232+ when SC_RESTORE
233+ $designfrm.coverfrm.show
234+ end
235+ end
236+
221237 ### initialize
222238
223239 def vrinit
224240 super
225- addHandler(WMsg::WM_ACTIVATEAPP,"activateapp", MSGTYPE::ARGINTINT,0)
226- addHandler(WMsg::WM_MOVE,"move", MSGTYPE::ARGLINTINT,0)
227- acceptEvents([WMsg::WM_ACTIVATEAPP,WMsg::WM_MOVE])
241+ addHandler WMsg::WM_ACTIVATEAPP,"activateapp", MSGTYPE::ARGINTINT,0
242+ addHandler WMsg::WM_MOVE,"move", MSGTYPE::ARGLINTINT,0
243+ addHandler WM_SYSCOMMAND, 'syscommand', MSGTYPE::ARGINTINTINT, nil
244+ acceptEvents [WMsg::WM_ACTIVATEAPP,WMsg::WM_MOVE, WM_SYSCOMMAND]
228245 @fd_cookie=nil
229246 @forms=[]
230247 @project_type=nil
--- formdesigner/1_0/fdvr/fdpalleteditor.rb (revision 70)
+++ formdesigner/1_0/fdvr/fdpalleteditor.rb (revision 71)
@@ -3,20 +3,50 @@
33 require '_frm_fdpalleteditor'
44 require 'fdvr/user/buttonedit'
55 class Form1 ##__BY_FDVR
6+ r_and = SWin::Bitmap.loadString(
7+"BAh1OhFTV2luOjpCaXRtYXABvkJNvgAAAAAAAAA+AAAAKAAAACAAAAAgAAAA
8+AQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////////////
9+//////////////////////////////////////////////////////////P/
10+///w////8D////gP///4A////AD//wAAP/8AAA//AAAH/wAAD/8AAD///AD/
11+//gD///4D///8D////D////z//////////////8=").bmpStr
612
13+ r_xor = SWin::Bitmap.loadString(
14+"BAh1OhFTV2luOjpCaXRtYXABvkJNvgAAAAAAAAA+AAAAKAAAACAAAAAgAAAA
15+AQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAA
16+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
17+AAAEAAAABwAAAAPAAAAD8AAAAfwAAAH/AAB//8AAf//wAH//wAAB/wAAAfwA
18+AAPwAAADwAAABwAAAAQAAAAAAAAAAAAAAAAAAAA=").bmpStr
19+
20+ l_and = SWin::Bitmap.loadString(
21+"BAh1OhFTV2luOjpCaXRtYXABvkJNvgAAAAAAAAA+AAAAKAAAACAAAAAgAAAA
22+AQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////////////
23+///////////////////////////////////////////////////////////+
24+f///+H///+B///+A///+AP//+AH//+AAB/+AAAf/AAAH/4AAB//gAAf/+AH/
25+//4A////gP///+B////4f////n////////////8=").bmpStr
26+
27+ l_xor = SWin::Bitmap.loadString(
28+"BAh1OhFTV2luOjpCaXRtYXABvkJNvgAAAAAAAAA+AAAAKAAAACAAAAAgAAAA
29+AQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAA
30+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
31+AAAAAQAAAAcAAAAeAAAAfgAAAfwAAAf8AAAf//AAf//wAB//8AAH/AAAAfwA
32+AAB+AAAAHgAAAAcAAAABAAAAAAAAAAAAAAAAAAA=").bmpStr
33+
34+ RightArrowCur = VRLocalScreen.factory.newcursor([21,21],[32,32],r_and,r_xor)
35+ LeftArrowCur = VRLocalScreen.factory.newcursor([21,21],[32,32],l_and,l_xor)
36+
37+
38+ class Bmppanel1 ##__BY_FDVR
39+
40+ end ##__BY_FDVR
41+
742 class TabControl1 ##__BY_FDVR
843
944 end ##__BY_FDVR
1045
1146 def self_created
12- create_tree(VRForm.ancestors.reverse)
1347 @tabControl1.insertTab(0,'Attr')
1448 @tabControl1.insertTab(1,'Event')
1549 @tabControl1.insertTab(2,'Mthd')
16- # p self.class.ancestors[0].instance_methods
17- #@treeView1.selectItem(@treeView1.topItem)
18-# p getLastItem(@treeView1.topItem)
19- @panel1.treeView1.selectItem(getLastItem(@panel1.treeView1.topItem))
2050 end
2151
2252 def getLastItem(hi)
@@ -28,6 +58,7 @@
2858 end
2959
3060 def create_tree(ar)
61+ @panel1.treeView1.clearItems
3162 hi = 0
3263 ha = 0
3364 am = []
@@ -34,8 +65,8 @@
3465 ar.each do |i|
3566 next if i == Kernel || i == Object
3667 if i.is_a?(Class)
37- hi = @panel1.treeView1.insertItem(hi, ha,"#{i}", i.__id__)
38- am.reverse.each{|j|ha = @panel1.treeView1.insertItem(hi,ha,"#{j}", j.__id__)}
68+ hi = @panel1.treeView1.insertItem(hi, ha,"#{i}".sub(/#<.+>::/,''), i.__id__)
69+ am.reverse.each{|j|ha = @panel1.treeView1.insertItem(hi,ha,"#{j}".sub(/#<.+>::/,''), j.__id__)}
3970 am.clear
4071 else
4172 am << i
@@ -50,8 +81,41 @@
5081 obj = ObjectSpace._id2ref(lparam)
5182 obj.instance_methods(false).sort.each{|i| @listView1.addItem([i])}
5283 end
84+
85+ def listView1_begindrag
86+ application.setCursor RightArrowCur
87+ setCapture
88+ end
89+
5390 end ##__BY_FDVR
54-
91+
92+ def edsource_button_clicked
93+ if path=openFilenameDialog([["all(*.*)", "*.*"]],0x1000,nil,self)
94+ @mod = Module.new{
95+ def self.get_context(s)
96+ a1 = self.constants;
97+ self.module_eval(s);
98+ a2 = self.constants;
99+ a2-a1;
100+ end
101+ }
102+ s = File.open(path){|f| f.read}
103+ @edsource.text = File.basename(path)
104+ @cbclass.setListStrings( @mod.get_context(s))
105+ end
106+ end
107+
108+ def cbclass_selchanged
109+ klass = @mod.module_eval(@cbclass.caption)
110+ create_tree(klass.ancestors.reverse)
111+ @panel1.treeView1.selectItem(getLastItem(@panel1.treeView1.topItem))
112+ if klass <= SWin::Window
113+ @edcreation.text = "newFDControl"
114+ else
115+ @edcreation.text = "newFDContainer"
116+ end
117+ end
55118 end ##__BY_FDVR
56119
120+
57121 VRLocalScreen.start Form1
--- formdesigner/1_0/fdvr/_frm_fdpalleteditor.rb (revision 70)
+++ formdesigner/1_0/fdvr/_frm_fdpalleteditor.rb (revision 71)
@@ -3,10 +3,10 @@
33 ## NEVER modify manualy -- otherwise, you'll have a terrible experience.
44
55 require 'vr/vruby'
6-require 'vr/vrrichedit'
76 require 'vr/vrcomctl'
87 require 'vr/vrcontrol'
98 require 'vr/vrmgdlayout'
9+require 'vr/vrrichedit'
1010
1111 class Form1 < VRForm
1212 Form1_fonts=[
@@ -19,7 +19,7 @@
1919 attr_reader :listView2
2020
2121 def construct
22- addControl(VRListview,'listView2',"listView2",2,24,156,366,0x2)
22+ addControl(VRListview,'listView2',"listView2",0,26,156,334,0x2)
2323 end
2424 end
2525
@@ -37,7 +37,7 @@
3737 #$_addControl(VRMgdVertTwoPaneFrame,'vert2Pane1',"",56,144,24,24)
3838 @vert2Pane1=setMarginedFrame(VRMgdVertTwoPaneFrame,[@treeView1],[@listView1])
3939 @vert2Pane1.setMargin(0,0,0,0)
40- @vert2Pane1.ratio=0.303571428571429
40+ @vert2Pane1.ratio=0.358585858585859
4141 @vert2Pane1.gap=2
4242 @vert2Pane1.bevel=VRMgdTwoPaneFrame::BevelNone
4343 @treeView1.setMargin(0,0,0,0)
@@ -45,43 +45,56 @@
4545 end
4646 end
4747
48+ class Bmppanel1 < VRBitmapPanel
49+
50+
51+ def construct
52+ end
53+ end
54+
4855 def construct
4956 self.caption = 'form1'
50- self.move(143,87,641,441)
51- addControl(VRRichedit,'richEdit1',"",192,368,16,16,0x200000)
52- addControl(VRStatusbar,'statusbar1',"statusbar1",0,393,634,20)
53- addControl(TabControl1,'tabControl1',"tabControl1",472,0,160,394)
54- addControl(Panel1,'panel1',"panel1",248,0,224,392)
55- addControl(VRCombobox,'comboBox1',"",64,24,184,80)
56- addControl(VRStatic,'static1',"Class Name",0,28,60,16)
57- addControl(VREdit,'edit2',"",64,48,184,20)
58- addControl(VRStatic,'static2',"Inst Name",0,52,60,16)
59- addControl(ButtonEditL,'btneditl1',"Source",0,0,248,20,0x80)
60- @btneditl1.button_w = 48
61- addControl(ButtonEditL,'btneditl2',"Styles",0,120,248,20,0x80)
62- @btneditl2.button_w = 64
63- addControl(VRStatic,'static3',"Default w",0,98,60,16)
64- addControl(VREdit,'edit3',"16384",64,96,40,20)
65- addControl(VRStatic,'static4',"Default h",152,98,60,16)
66- addControl(VREdit,'edit4',"16384",208,96,40,20)
67- addControl(VRStatic,'static5',"Info",0,76,60,16)
68- addControl(VREdit,'edit5',"",64,72,184,20)
69- addControl(ButtonEditL,'btneditl3',"MaskStyle",0,144,248,20,0x80)
70- @btneditl3.button_w = 64
71- addControl(ButtonEditL,'btneditl4',"Required",0,168,248,20,0x80)
72- @btneditl4.button_w = 64
73- addControl(ButtonEditL,'btneditl5',"Included",0,192,248,20,0x80)
74- @btneditl5.button_w = 64
75- addControl(ButtonEditL,'btneditl6',"Modules",0,216,248,20,0x80)
76- @btneditl6.button_w = 64
77- addControl(ButtonEditL,'btneditl7',"Popups",0,240,248,20,0x80)
78- @btneditl7.button_w = 64
79- addControl(ButtonEditL,'btneditl8',"Items",0,264,248,20,0x80)
80- @btneditl8.button_w = 64
81- addControl(ButtonEditL,'btneditl9',"Bmp",0,288,248,20,0x80)
82- @btneditl9.button_w = 64
83- addControl(ButtonEditL,'btneditl10',"Creation",0,312,248,20,0x80)
84- @btneditl10.button_w = 64
57+ self.move(140,126,640,525)
58+ addControl(TabControl1,'tabControl1',"tabControl1",224,78,160,362)
59+ addControl(Panel1,'panel1',"panel1",0,80,224,396)
60+ addControl(VRCombobox,'cbclass',"",448,152,184,120)
61+ addControl(VRStatic,'static1',"Class Name",384,156,60,16)
62+ addControl(VREdit,'edinst',"",448,176,184,20)
63+ addControl(VRStatic,'static2',"Inst Name",384,180,60,16)
64+ addControl(ButtonEditL,'edstyles',"Styles",384,248,248,20)
65+ @edstyles.button_w = 64
66+ addControl(VRStatic,'static3',"Default w",384,226,60,16)
67+ addControl(VRStatic,'static4',"Default h",528,226,60,16)
68+ addControl(VRStatic,'static5',"Info",384,204,60,16)
69+ addControl(VREdit,'edinfo',"",448,200,184,20)
70+ addControl(ButtonEditL,'edmaskstyle',"MaskStyle",384,272,248,20)
71+ @edmaskstyle.button_w = 64
72+ addControl(ButtonEditL,'edrequired',"Required",384,296,248,20)
73+ @edrequired.button_w = 64
74+ addControl(ButtonEditL,'edincluded',"Included",384,320,248,20)
75+ @edincluded.button_w = 64
76+ addControl(ButtonEditL,'edmodules',"Modules",384,344,248,20)
77+ @edmodules.button_w = 64
78+ addControl(ButtonEditL,'edpopups',"Popups",384,368,248,20)
79+ @edpopups.button_w = 64
80+ addControl(ButtonEditL,'editems',"Items",384,392,248,20)
81+ @editems.button_w = 64
82+ addControl(ButtonEditL,'edcreation',"Creation",384,416,248,20)
83+ @edcreation.button_w = 64
84+ addControl(VRButton,'btclose',"Close",384,80,56,22)
85+ addControl(VRButton,'btregist',"",480,80,24,22)
86+ addControl(VRButton,'btremove',"",504,80,24,22)
87+ addControl(VRButton,'bttorigt',"",528,80,24,22)
88+ addControl(VRStatusbar,'statusbar1',"statusbar1",0,478,632,20,0x3)
89+ addControl(Bmppanel1,'bmppanel1',"bmppanel1",604,80,25,25,0x800000)
90+ addControl(ButtonEditL,'edsource',"Source",384,128,248,20,0x800)
91+ @edsource.button_w = 64
92+ addControl(ButtonEditL,'edbmp',"Bitmap",384,104,248,20,0x800)
93+ @edbmp.button_w = 64
94+ addControl(VREdit,'edit3',"80",448,224,40,20,0x2000)
95+ addControl(VREdit,'eddflth',"24",592,224,40,20,0x2000)
96+ addControl(VRRichedit,'richEdit1',"",224,438,408,40)
97+ addControl(VRButton,'bttoleft',"",456,80,24,22)
8598 end
8699
87100 end
--- formdesigner/1_0/fdvr/fdcfg.rb (revision 70)
+++ formdesigner/1_0/fdvr/fdcfg.rb (revision 71)
@@ -287,7 +287,7 @@
287287
288288 def each_key() @order.each{|k| yield(k)}; end
289289
290- def update(other) super(other); order.concat(other.order).uniq!; self; end
290+ def update(other) super(other); @order.concat(other.order).uniq!; self; end
291291
292292 alias merge! update
293293
@@ -296,6 +296,16 @@
296296 def values() @order.map{|k| self[k]}; end
297297
298298 def to_a() @order.map{|k| [k,self[k]]}; end
299+
300+ def find() r = super ; r = [r, self[r]] unless r.is_a?(Array); r; end
301+
302+ def dup()
303+ r = super
304+ r.class.module_eval("attr_accessor :order")
305+ r.order=@order.dup
306+ r.class.module_eval("attr_reader :order")
307+ r
308+ end
299309 end
300310
301311 module FDCommonMethod
@@ -322,7 +332,7 @@
322332 client = c.parent unless client
323333 User32::ScreenToClient.call(client.hWnd, pos)
324334 x1, y1 = pos.unpack('ll')
325-# ;p [:fdcfg259,c,client,[x0, y0], [x1, y1]]
335+# p;p [:fdcfg259,c,client,[x0, y0], [x1, y1]]
326336 quad ? [x1, y1, w0, h0] : [x1, y1]
327337 end
328338 module_function :getFormPos
@@ -492,9 +502,10 @@
492502 end
493503 r
494504 end
495-
505+
496506 def delete_child_controls
497507 @controls.each{|k,v|
508+ v.terminate if v.respond_to? :terminate
498509 deleteControl(v)
499510 @form.delete_serial_name(v.name)
500511 delete_child_controls if v.respond_to? :addControl
@@ -612,8 +623,8 @@
612623 s += @cntnmodules.join("") if @cntnmodules
613624 s += "\n#{lv} def construct\n"
614625 # s += getFontStrParent(lv)
615- s += r.to_s
616- s += rf.to_s
626+ s += r.join("\n")
627+ s += rf.join("\n")
617628 s += lv+" end\n"
618629 s += lv+"end\n"
619630 s
@@ -758,439 +769,312 @@
758769
759770 #definiton of creating methods on FormDesigner
760771
761- def newFDCtrl(prnt,cnt,name,caption,x,y,w,h,addstyle=0,c_items=nil)
772+ def newFDControl(prnt,cnt,name,caption,x,y,w,h,addstyle=0,c_items=nil)
762773 c = findPalletItem(cnt)
763774 addstyle |= c.maskstyle
764775 od = check_owndraw(c, addstyle)
765776 addstyle &= (~od)
777+ eval c.precreation if c.is_a?(FDStruct) && c.precreation
766778 a = prnt.addControl(c.klass,name,caption,x,y,w,h,addstyle)
767779 prnt.set_include(c.included)
768780 set_cnt_attr(a, c)
769781 a.owndraw = od
770782 a.extend(FDParent) if a.respond_to?(:addControl)
771- class << a
772- include STDSourceMaker
773- self.instance
774- end
783+ a.extend(STDSourceMaker)
784+ a.extend(eval(c.createmethods.to_s)) if c.createmethods
785+ a.post_created(prnt,cnt,name,caption,x,y,w,h,addstyle,c_items, c) if
786+ a.respond_to?(:post_created)
787+ a
775788 end
776789
777- def newFDCombo(*args)
778- class << newFDCtrl(*args)
779- alias :get_client_pos_org :get_client_pos
780-
781- def get_client_pos() r = get_client_pos_org; r[0,3] << @_drop_h end
782-
783- def drop_h() @_drop_h=h unless @_drop_h; @_drop_h end
784- def drop_h=(h) @_drop_h=h end
785- def set_drop_h(h0) @_drop_h=h0 ;end
786-
787- def createSourceStr
788- create_std_source_str do|sp,cnt,name,caption,x0,y0,w0,h0,sty|
789- sp + mk_addstr(cnt,name,caption,x0,y0,w0,@_drop_h,sty)
790- end
791- end
792-
793- def init_singleton_class
794- self.set_drop_h(self.h)
795- x0, y0, w0, h0 = self.windowrect
796- self.move(self.x, self.y, self.w, h0)
797- end
798- self.instance
799- end
800- end
801-
802- def newFDCoverd(prnt,cnt,name,caption,x,y,w,h,addstyle=0,c_items=nil)
790+ def newFDContainer(prnt,cnt,name,caption,x,y,w,h,addstyle=0,c_items=nil)
803791 c = findPalletItem(cnt)
804- od = check_owndraw(c,addstyle)
805- addstyle &= (~od)
806- cv=prnt.addControl(FDCoverpanel1,'_'+name,'',x,y,w,h)
807- a=prnt.addControl(c.klass,name,caption,x,y,w,h,addstyle )
792+ eval c.precreation if c.is_a?(FDStruct) && c.precreation
793+ a = prnt.addControl(FDContainer,name,caption,x,y,w,h,addstyle)
808794 prnt.set_include(c.included)
809- set_cnt_attr(a,c)
810- a.owndraw = od
811- class << a
812- attr_accessor :_coverPanel
813- include STDSourceMaker
814- def move(x,y,w,h)
815- super
816- @_coverPanel.move(x,y,w,h) if @_coverPanel
817- end
818-
819- def terminate()
820- begin super; rescue; end
821- @parent.deleteControl @_coverPanel
822- end
823- def init_singleton_class
824- @_coverPanel = parent.instance_eval("@_#{name}")
825- @_coverPanel.substance = self
826- end
827- self.instance
828- end
795+ set_cnt_attr(a, c)
796+ a.bmp=SWin::Bitmap.loadString(c.bmp)
797+# a.extend(STDSourceMaker)
798+ a.extend(eval(c.createmethods.to_s)) if c.createmethods
799+ a.post_created(prnt,cnt,name,caption,x,y,w,h,addstyle,c_items, c) if
800+ a.respond_to?(:post_created)
801+ a
829802 end
830803
831-=begin
832- def newFDCombo(prnt,cnt,name,caption,x,y,w,h,addstyle=0,c_items=nil)
833- c = findPalletItem(cnt)
834- addstyle |= c.maskstyle
835- od = check_owndraw(c, addstyle)
836- addstyle &= (~od)
837- a = prnt.addControl(c.klass,name,caption,x,y,w,h,addstyle)
838- prnt.set_include(c.included)
839- set_cnt_attr(a, c)
840- a.owndraw = od
804+
805+#### Additional modules for creation
806+
807+ module NewFDCombo
841808
842- class << a
843- attr_accessor :drop_h
844- include STDSourceMaker
845-
846- def createSourceStr
847- if respond_to? :initMargin
848- x0=@__org_x; y0=@__org_y; w0=@__org_w; h0=@__org_h
849- else
850- x0, y0, w0, h0 = get_client_pos
851- end
852- str = ""
853- sty = (style | @owndraw) & (~@_default_style)
854- sty &= (~@_maskstyle)
855- sp = get_parents_str(self.parent)
856- lv = getLevel(self)
857- cnt=self.class.name
858- if !@modules.empty? || @owndraw > 0 then
859- cnt = name.capitalize1
860- addModules
861- end
862- str += lv+" "+ mk_addstr(cnt,name,caption.esc,x0,y0,w0,@_drop_h,sty)
863- str += getFontStr(lv)
864- str
865- end
866-
867- def drop_h; @_drop_h=h unless @_drop_h; @_drop_h end
868- def set_drop_h(h0) @_drop_h=h0 ;end
869-
870- def init_singleton_class
871- self.set_drop_h(self.h)
872- x0, y0, w0, h0 = self.windowrect
873- self.move(self.x, self.y, self.w, h0)
874- end
875-
876- self.instance
809+ def drop_h() @_drop_h=h unless @_drop_h; @_drop_h end
810+
811+ def drop_h=(h) @_drop_h=h end
812+
813+ def createSourceStr
814+ create_std_source_str {|sp,cnt,name,caption,x0,y0,w0,h0,sty|
815+ sp + mk_addstr(cnt,name,caption,x0,y0,w0,@_drop_h,sty)
816+ }
877817 end
878- end
879-
880- def newFDCoverd(prnt,cnt,name,caption,x,y,w,h,addstyle=0,c_items=nil)
881- c = findPalletItem(cnt)
882- od = check_owndraw(c,addstyle)
883- addstyle &= (~od)
884- cv=prnt.addControl(FDCoverpanel1,'_'+name,'',x,y,w,h)
885- a=prnt.addControl(c.klass,name,caption,x,y,w,h,addstyle )
886- prnt.set_include(c.included)
887-
888- class << a
889- attr_accessor :_coverPanel
890- include STDSourceMaker
891- def move(x,y,w,h)
892- super
893- @_coverPanel.move(x,y,w,h) if @_coverPanel
894- end
895818
896- def createSourceStr
897- if respond_to? :initMargin
898- x0=@__org_x; y0=@__org_y; w0=@__org_w; h0=@__org_h
899- else
900- x0,y0,w0,h0 = *get_client_pos
901- end
902- str = ""
903- sty = self.style+@owndraw-@_default_style
904- sp=get_parents_str(self.parent)
905- lv=getLevel(self)
906- cnt=self.class.name
907- str += lv+" "+ mk_addstr(cnt,name,caption.esc,x0,y0,w0,h0,sty)
908- hf=sendMessage(WMsg::WM_GETFONT,0,0)
909- hf = hf + 0x100000000 if hf < 0
910- if n = @form.get_font_number(hf) then
911- str += getFontStr(lv)
912- else nil end
913- if @owndraw > 0 then
914- str += lv+" @#{name}.extend(#{name.capitalize1}).vrinit\n"
915- addModules
916- end
917- str
918- end
919-
920- def terminate()
921- begin super; rescue; end
922- @parent.deleteControl @_coverPanel
923- end
819+ def post_created(prnt,cnt,name,caption,x,y,w,h,addstyle,c_items,c)
820+ _x, _y, _w, _h = windowrect
821+ self.move(self.x, self.y, _w, _h)
822+ @_drop_h = h
924823 end
925-
926- set_cnt_attr(a,c)
927- a.owndraw = od
928- a._coverPanel = cv
929- cv.substance = a
930- a
931824 end
932-=end
933825
934-#### Common controls
826+ ## Common controls
935827
936- def newFDToolbar(prnt,cnt,name,caption,x,y,w,h,addstyle=0,c_items=nil)
937- addstyle |= 4 if prnt.is_a? VRRebar
938- c = findPalletItem(cnt)
939- a=prnt.addControl(c.klass,name,caption,x,y,w,h,addstyle )
940- a.class.module_eval "attr :_vr_toolbar_buttons,1"
941- prnt.extend VRToolbarUseable
942- prnt.set_include(c.included)
943-
944- class << a
945- def getItemsStr(option=nil)
946- lv=getLevel(self)
947- s = lv+" ["
948- 0.upto(countButtons-1){|i|
949- b = getButton(i)
950- st = option ? b[3].to_s : Stylehash.invert[b[3]].to_s
951- s<<"\n#{lv} [\"#{@parent._vr_toolbar_buttons[b[1]].name}\",#{st}],"
952- }
953- if s[s.size-1] == ','[0]
954- s[s.size-1,1] = "\n#{lv} ]"
955- else
956- s << "]"
957- end
828+ module NewFDToolbar
829+ def getItemsStr(option=nil)
830+ lv=getLevel(self)
831+ s = lv+" ["
832+ 0.upto(countButtons-1){|i|
833+ b = getButton(i)
834+ st = option ? b[3].to_s : Stylehash.invert[b[3]].to_s
835+ s<<"\n#{lv} [\"#{@parent._vr_toolbar_buttons[b[1]].name}\",#{st}],"
836+ }
837+ if s[s.size-1] == ','[0]
838+ s[s.size-1,1] = "\n#{lv} ]"
839+ else
840+ s << "]"
841+ end
958842 s
959- end
843+ end
960844
961- def getItems2
962- s = []
963- 0.upto(countButtons-1){|i|
964- b = getButton(i)
845+ def getItems2
846+ s = []
847+ 0.upto(countButtons-1){|i|
848+ b = getButton(i)
965849 st = Stylehash.invert[b[3]].to_s
966- s << [st,@parent._vr_toolbar_buttons[b[1]].name]
967- }
968- s
969- end
850+ s << [st,@parent._vr_toolbar_buttons[b[1]].name]
851+ }
852+ s
853+ end
970854
971- def refreshItems(ar)
972- begin
973- ar.collect!{|i| [i[1],Stylehash[i[0]]]}
974- self.terminate
975- setButtons(ar)
976- self.items = ar
977- rescue Exception
978- messageBox $!,'Illegal setting of items',16
979- end
855+ def refreshItems(ar)
856+ begin
857+ ar.collect!{|i| [i[1],Stylehash[i[0]]]}
858+ self.terminate
859+ setButtons(ar)
860+ @_fd_items = ar
861+ rescue Exception
862+ messageBox $!,'Illegal setting of items',16
980863 end
864+ end
981865
982- def terminate
983- (countButtons-1).downto(0){|i|
984- b = getButton(i)
985- @parent._vr_toolbar_buttons.delete(b[1])
986- deleteButton(i)
987- }
866+ def terminate
867+ (countButtons-1).downto(0){|i|
868+ b = getButton(i)
869+ @parent._vr_toolbar_buttons.delete(b[1])
870+ deleteButton(i)
871+ }
872+ end
873+
874+ def createSourceStr
875+ if respond_to? :initMargin
876+ x0=@__org_x; y0=@__org_y; w0=@__org_w; h0=@__org_h
877+ else
878+ x0,y0,w0,h0 = get_client_pos
988879 end
989-
990- def createSourceStr
991- if respond_to? :initMargin
992- x0=@__org_x; y0=@__org_y; w0=@__org_w; h0=@__org_h
993- else
994- x0,y0,w0,h0 = get_client_pos
995- end
996- str = ""
997- sty = self.style-@_default_style
998- cnt=self.class.to_s
999- lv=getLevel(self)
1000- str += lv+" "+ mk_addstr(cnt,name,caption.esc,x0,y0,w0,h0,sty)
1001- if countButtons > 0 then
1002- str += lv+" "+"@#{name}.setButtons(\n#{getItemsStr(true)})\n"
1003- else
1004- str += "\n"
1005- end
880+ str = ""
881+ sty = self.style-@_default_style
882+ cnt=self.class.to_s
883+ lv=getLevel(self)
884+ str += lv+" "+ mk_addstr(cnt,name,caption.esc,x0,y0,w0,h0,sty)
885+ if countButtons > 0 then
886+ str += lv+" "+"@#{name}.setButtons(\n#{getItemsStr(true)})\n"
887+ else
888+ str += "\n"
1006889 end
890+ end
1007891
1008- def eventList
1009- as = []
1010- 0.upto(countButtons-1){|i|
1011- b = getButton(i)
1012- as << @parent._vr_toolbar_buttons[b[1]].name+"_clicked" unless b[3]==1
892+ def eventList
893+ as = []
894+ 0.upto(countButtons-1){|i|
895+ b = getButton(i)
896+ as << @parent._vr_toolbar_buttons[b[1]].name+"_clicked" unless b[3]==1
897+ }
898+ as
899+ end
900+
901+ def buttons
902+ @form._return_val=nil
903+ ItemEditDlg::POS[0] = [100,100,400,300]
904+ ItemEditDlg::LISTWIDTH[0] = 254
905+ ItemEditDlg::ADDINGNAME[0] = 'toolButton'
906+ ItemEditDlg::ADDREMOVE[0] = true
907+ ItemEditDlg::TITLES[0]=[['button style',140],['button name',110]]
908+ ItemEditDlg::ITEMS[0] = getItems2
909+ ItemEditDlg::FIXCOLUMN[0] = true
910+ ItemEditDlg::UPDOWN[0] = true
911+ ItemEditDlg::STYLES[0]=['TBSTYLE_BUTTON','TBSTYLE_SEP','TBSTYLE_CHECK',
912+ 'TBSTYLE_GROUP','TBSTYLE_CHECKGROUP']
913+ ItemEditDlg::DEFAULTSTR[0]='TBSTYLE_BUTTON'
914+ VRLocalScreen.modalform @form ,nil,ItemEditDlg
915+ r = @form._return_val
916+ refreshItems(r) if r
917+ @form.update_inspectfrm(self)
918+ end
919+
920+ def post_created(prnt,cnt,name,caption,x,y,w,h,addstyle, c_items,c)
921+ self.class.module_eval "attr_reader :_vr_toolbar_buttons"
922+ prnt.extend VRToolbarUseable
923+ if parent.is_a?(VRRebar)
924+ style = style | 4
925+ move(0,0,60,24)
926+ end
927+ if c_items
928+ setButtons(c_items)
929+ @_fd_items = c_items
930+ elsif @_fd_items
931+ setButtons(a.items)
932+ else
933+ items2 = c.items.dup.collect!{|i|
934+ [$designfrm.get_serial_name(i[0]),i[1]]
1013935 }
1014- as
936+ setButtons(items2)
937+ @_fd_items = items2
1015938 end
1016-
1017- def buttons
1018- @form._return_val=nil
1019- ItemEditDlg::POS[0] = [100,100,400,300]
1020- ItemEditDlg::LISTWIDTH[0] = 254
1021- ItemEditDlg::ADDINGNAME[0] = 'toolButton'
1022- ItemEditDlg::ADDREMOVE[0] = true
1023- ItemEditDlg::TITLES[0]=[['button style',140],['button name',110]]
1024- ItemEditDlg::ITEMS[0] = getItems2
1025- ItemEditDlg::FIXCOLUMN[0] = true
1026- ItemEditDlg::UPDOWN[0] = true
1027- ItemEditDlg::STYLES[0]=['TBSTYLE_BUTTON','TBSTYLE_SEP','TBSTYLE_CHECK',
1028- 'TBSTYLE_GROUP','TBSTYLE_CHECKGROUP']
1029- ItemEditDlg::DEFAULTSTR[0]='TBSTYLE_BUTTON'
1030- VRLocalScreen.modalform @form ,nil,ItemEditDlg
1031- r = @form._return_val
1032- refreshItems(r) if r
1033- @form.update_inspectfrm(self)
1034- end
1035939 end
1036- set_cnt_attr(a,c)
1037- if c_items then
1038- a.setButtons(c_items)
1039- a.items = c_items
1040- elsif a.items
1041- a.setButtons(a.items)
1042- else
1043- items2=c.items.dup.collect!{|i|
1044- [$designfrm.get_serial_name(i[0]),i[1]]
1045- }
1046- a.setButtons(items2)
1047- a.items = items2
1048- end
1049- a
1050940 end
1051941
1052- def newFDRebar(prnt,cnt,name,caption,x,y,w,h,addstyle=0, c_items=nil)
1053- if prnt.is_a? VRRebar then
1054- messageBox 'cannot arrange VRRebar on VRRebar','Illegal arrangement',16
1055- return
942+ module NewFDRebar
943+ include STDSourceMaker
944+ def self.extended(mod)
945+ mod.class.module_eval(
946+ "USE_THIS_PARENT=true unless defined?( USE_THIS_PARENT)")
1056947 end
1057- c = findPalletItem(cnt)
1058- a=prnt.addControl(c.klass,name,caption,x,y,w,h,addstyle)
1059- prnt.set_include(c.included)
1060- class << a
1061- include STDSourceMaker
1062- USE_THIS_PARENT = true
1063- def get_childs_source(novrinit=nil)
1064- @cntnmodules = []
1065- lv=getLevel(self)
1066- r=[]
1067- s=""
1068- incld1 = []
1069- @modules.uniq!
1070- @items.each{|i|
1071- ct = instance_eval("#{i[0]}")
1072- break if ct.is_a?(VRStatic) && i[0] == "@__"+ct.parent.name
1073- break if ct.respond_to?(:ignore_formdesigner) &&
1074- ct.ignore_formdesigner
1075- if ct.kind_of? VRNotifyControl
948+
949+ def get_childs_source(novrinit=nil)
950+ @cntnmodules = []
951+ lv=getLevel(self)
952+ r=[]
953+ s=""
954+ incld1 = []
955+ @modules.uniq!
956+ @_fd_items.each{|i|
957+ ct = instance_eval("#{i[0]}")
958+ break if ct.is_a?(VRStatic) && i[0] == "@__"+ct.parent.name
959+ if ct.kind_of? VRNotifyControl
1076960 (incld1 << "VRComCtlContainer").uniq!
1077- else
1078- (incld1 << "VRStdControlContainer").uniq!
961+ else
962+ (incld1 << "VRStdControlContainer").uniq!
963+ end
964+ r << yield(ct,i[1],i[2],i[3])
965+ }
966+ unless @modules.empty?
967+ incld1 = incld1 + @modules
968+ @modules.each{|m|
969+ if rq = FDModules::StdModules["#{m}".intern ]
970+ (@form.required << rq.requires).uniq!
971+ @form.required.reject!{|i| !i} #delete nil
1079972 end
1080- r << yield(ct,i[1],i[2],i[3])
1081973 }
1082- unless @modules.empty?
1083- incld1 = incld1 + @modules
1084- @modules.each{|m|
1085- if rq = FDModules::StdModules["#{m}".intern ]
1086- (@form.required << rq.requires).uniq!
1087- @form.required.reject!{|i| !i} #delete nil
1088- end
1089- }
1090- end
1091- s += "\n#{lv} def construct\n"
974+ end
975+ s += "\n#{lv} def construct\n"
1092976 # s += getFontStrParent(lv)
1093- s += r.to_s
1094- s1 = []
1095- incld1.each{|i| s1 << "#{lv} include #{i}"}
1096- @included.each{|m|
1097- s1<<"#{lv} include #{m} if defined? #{m}" if m
1098- } unless @included.empty?
1099- sp=get_parents_str(self.parent)
1100- s = s1.join("\n")+ "\n" + s
1101- s[0,0] = getDEFAULTFONT(lv) if @_default_font
1102- s[0,0] = "\n#{lv}class #{name.capitalize1} < #{self.class}\n"
1103- s += "#{lv} end\n"
1104- s += "#{lv}end\n"
1105- s
977+ s += r.join("\n")
978+ s1 = []
979+ incld1.each{|i| s1 << "#{lv} include #{i}"}
980+ @included.each{|m|
981+ s1<<"#{lv} include #{m} if defined? #{m}" if m
982+ } unless @included.empty?
983+ sp=get_parents_str(self.parent)
984+ s = s1.join("\n")+ "\n" + s
985+ s[0,0] = getDEFAULTFONT(lv) if @_default_font
986+ s[0,0] = "\n#{lv}class #{name.capitalize1} < #{self.class}\n"
987+ s += "#{lv} end\n"
988+ s += "#{lv}end\n"
989+ s
990+ end
991+
992+ def createSourceStr
993+ if respond_to? :initMargin
994+ x0=@__org_x; y0=@__org_y; w0=@__org_w; h0=@__org_h
995+ else
996+ x0,y0,w0,h0 = get_client_pos
1106997 end
1107-
1108- def createSourceStr
1109- if respond_to? :initMargin
1110- x0=@__org_x; y0=@__org_y; w0=@__org_w; h0=@__org_h
1111- else
1112- x0,y0,w0,h0 = get_client_pos
1113- end
1114- str = ""
1115- sty = self.style-@_default_style
1116- sp=get_parents_str(self.parent)
1117- lv=getLevel(self)
1118- cnt=self.class.to_s
1119- if respond_to?(:addControl)
1120- str += lv+" "+ mk_addstr(name.capitalize1,name,caption.esc,
998+ str = ""
999+ sty = self.style-@_default_style
1000+ sp=get_parents_str(self.parent)
1001+ lv=getLevel(self)
1002+ cnt=self.class.to_s
1003+ if respond_to?(:addControl)
1004+ str += lv+" "+ mk_addstr(name.capitalize1,name,caption.esc,
11211005 x0,y0,w0,h0,sty)
1122- @parent.cntnmodules << get_childs_source{|c,t,w,h|
1123- s=c.createSourceStr
1124- s.sub! /^ +/,lv+" @#{c.name}="
1125- s << lv+" insertband(@#{c.name},'#{t}',#{w},#{h})\n"
1126- s
1127- }
1128- addRequire
1129- elsif !@modules.empty?
1130- str += lv+" "+
1006+ @parent.cntnmodules << get_childs_source{|c,t,w,h|
1007+ s=c.createSourceStr
1008+ s.sub! /^ +/,lv+" @#{c.name}="
1009+ s << lv+" insertband(@#{c.name},'#{t}',#{w},#{h})\n"
1010+ s
1011+ }
1012+ addRequire
1013+ elsif !@modules.empty?
1014+ str += lv+" "+
11311015 mk_addstr(name.capitalize1,name,caption.esc,x,y,w,h,sty)
1132- addModules
1133- else
1134- str += lv+" "+ mk_addstr(cnt,name,caption.esc,x,y,w,h,sty)
1135- end
1136- str+= getFontStr(lv)
1137- str
1016+ addModules
1017+ else
1018+ str += lv+" "+ mk_addstr(cnt,name,caption.esc,x,y,w,h,sty)
11381019 end
1020+ str+= getFontStr(lv)
1021+ str
1022+ end
1023+
1024+ def refreshItems(ar)
1025+ @_fd_items.each_index{|i|
1026+ i0 =ar.select{|j| @_fd_items[i][0] == j[0]}[0]
1027+ @_fd_items[i][1] = i0[1]
1028+ @_fd_items[i][2] = i0[2].to_i
1029+ @_fd_items[i][3] = i0[3].to_i
1030+ setbandattr(i,i0[1],i0[2].to_i,i0[3].to_i)
1031+ }
1032+ end
11391033
1140- def refreshItems(ar)
1141- @items.each_index{|i|
1142- i0 =ar.select{|j| @items[i][0] == j[0]}[0]
1143- @items[i][1] = i0[1]
1144- @items[i][2] = i0[2].to_i
1145- @items[i][3] = i0[3].to_i
1146- setbandattr(i,i0[1],i0[2].to_i,i0[3].to_i)
1147- }
1148- end
1034+ def bands
1035+ @form._return_val=nil
1036+ ItemEditDlg::LISTWIDTH[0] = 392
1037+ ItemEditDlg::STYLES[0]=nil
1038+ ItemEditDlg::POS[0] = [100,100,400,300]
1039+ ItemEditDlg::ADDREMOVE[0] = false
1040+ ItemEditDlg::UPDOWN[0] = false
1041+ ItemEditDlg::TITLES[0]=[['control',100],['text',100],
1042+ ['min w',92],['min h',92]]
1043+ ItemEditDlg::ITEMS[0] = @_fd_items
1044+ ItemEditDlg::FIXCOLUMN[0] = true
1045+ VRLocalScreen.modalform @form ,nil,ItemEditDlg
1046+ r = @form._return_val
1047+ refreshItems(r) if r
1048+ end
11491049
1150- def bands
1151- @form._return_val=nil
1152- ItemEditDlg::LISTWIDTH[0] = 392
1153- ItemEditDlg::STYLES[0]=nil
1154- ItemEditDlg::POS[0] = [100,100,400,300]
1155- ItemEditDlg::ADDREMOVE[0] = false
1156- ItemEditDlg::UPDOWN[0] = false
1157- ItemEditDlg::TITLES[0]=[['control',100],['text',100],
1158- ['min w',92],['min h',92]]
1159- ItemEditDlg::ITEMS[0] = @items
1160- ItemEditDlg::FIXCOLUMN[0] = true
1161- VRLocalScreen.modalform @form ,nil,ItemEditDlg
1162- r = @form._return_val
1163- refreshItems(r) if r
1050+ def setbandattr(idx,txt="",minx=30,miny=30)
1051+ unless idx.is_a? Integer
1052+ n = @_fd_items.index(items.find{|i| i[0] == "@#{idx.name}" })
1053+ idx = n
11641054 end
1165-
1166- def setbandattr(idx,txt="",minx=30,miny=30)
1167- unless idx.is_a? Integer
1168- n = @items.index(items.find{|i| i[0] == "@#{idx.name}" })
1169- idx = n
1170- end
1171- mask= WConst::RBBIM_TEXT | WConst::RBBIM_STYLE | WConst::RBBIM_CHILD |
1055+ mask= WConst::RBBIM_TEXT | WConst::RBBIM_STYLE | WConst::RBBIM_CHILD |
11721056 WConst::RBBIM_CHILDSIZE | WConst::RBBIM_SIZE
1173- t= ""
1174- tis = [56,mask,0,0,0,t,0,0,0,0,0,0,0,0,0].pack(
1057+ t= ""
1058+ tis = [56,mask,0,0,0,t,0,0,0,0,0,0,0,0,0].pack(
11751059 "LLLLLP#{t.length}LLLLLLLL")
1176- sendMessage WMsg::RB_GETBANDINFO,idx,tis
1177- a = tis.unpack("LLLLLPLLLLLLLL")
1178- a[5]= txt; a[9]=minx; a[10]=miny
1179- rbbi=a.pack("LLLLLP#{txt.length}LLLLLLLL")
1180- sendMessage(WMsg::RB_INSERTBAND+5,idx,rbbi)
1181- end
1060+ sendMessage WMsg::RB_GETBANDINFO,idx,tis
1061+ a = tis.unpack("LLLLLPLLLLLLLL")
1062+ a[5]= txt; a[9]=minx; a[10]=miny
1063+ rbbi=a.pack("LLLLLP#{txt.length}LLLLLLLL")
1064+ sendMessage(WMsg::RB_INSERTBAND+5,idx,rbbi)
1065+ end
1066+
1067+ def deleteband(idx)
1068+ sendMessage WMsg::RB_DELETEBAND,idx,0
1069+ end
11821070
1183- def deleteband(idx)
1184- sendMessage WMsg::RB_DELETEBAND,idx,0
1185- end
1186-
1187- def update_items(oldname,newname)
1188- @items.find{|i|i[0]=='@'+oldname}[0] = '@' + newname
1189- end
1071+ def update_items(oldname,newname)
1072+ @_fd_items.find{|i|i[0]=='@'+oldname}[0] = '@' + newname
1073+ end
11901074
11911075 =begin
11921076 def terminate
1193- @items.reject!{|i|
1077+ @_fd_items.reject!{|i|
11941078 unless i[0] == "@__#{self.name}"
11951079 deleteControl(instance_eval("#{i[0]}"))
11961080 child_deleted(instance_eval("#{i[0]}"))
@@ -1200,397 +1084,396 @@
12001084 end
12011085 =end
12021086
1203- def child_created(c)
1204- if c0=@items.find{|i| i[0] == "@__#{self.name}"}
1205- deleteControl(instance_eval("#{c0[0]}"))
1206- @items.delete_at(0)
1207- deleteband(0)
1208- end
1209- @parent.instance_eval("@#{c.name}=nil")
1210- @parent.instance_eval "@controls.delete(c.etc)"
1211- @controls[c.etc] = c
1212- unless itm=@items.find{|i| i[0] == '@'+c.name}
1213- @items << itm=['@'+c.name,c.name,30,c.h+2]
1214- end
1215- instance_eval "@#{c.name}=c"
1216- insertband(c,itm[1],itm[2],itm[3])
1217- relayout
1087+ def child_created(c)
1088+ if c0=@_fd_items.find{|i| i[0] == "@__#{self.name}"}
1089+ deleteControl(instance_eval("#{c0[0]}"))
1090+ @_fd_items.delete_at(0)
1091+ deleteband(0)
12181092 end
1219-
1220- def child_deleted(c)
1221- idx = @items.index(@items.find{|i| i[0] == '@'+c.name })
1222- @items.delete_at(idx)
1223- deleteband(idx)
1224- if @items.empty?
1225- cv=addControl(VRStatic,"__#{name}",'',0,0,25,25)
1226- @parent.instance_eval("@#{cv.name}=nil")
1227- @parent.instance_eval "@controls.delete(cv.etc)"
1228- @controls[cv.etc] = cv
1229- instance_eval("@#{cv.name}=cv")
1230- insertband(cv,"",0,30)
1231- @items = [['@'+cv.name,""]]
1232- c1 = findPalletItem(cv)
1233- @form.set_cnt_attr(cv,c1)
1234- end
1093+ @parent.instance_eval("@#{c.name}=nil")
1094+ @parent.instance_eval "@controls.delete(c.etc)"
1095+ @controls[c.etc] = c
1096+ unless itm=@_fd_items.find{|i| i[0] == '@'+c.name}
1097+ @_fd_items << itm=['@'+c.name,c.name,30,c.h+2]
12351098 end
1099+ instance_eval "@#{c.name}=c"
1100+ insertband(c,itm[1],itm[2],itm[3])
1101+ relayout
12361102 end
12371103
1238- set_cnt_attr(a,c)
1239- a.extend(FDParent)
1240- unless c_items
1241- cv=a.addControl(VRStatic,"__#{name}",'',0,0,25,25)
1242- a.parent.instance_eval("@#{cv.name}=nil")
1243- a.parent.instance_eval "@controls.delete(cv.etc)"
1244- a.controls[cv.etc] = cv
1245- a.instance_eval("@#{cv.name}=cv")
1246- a.insertband(cv,"",0,30)
1247- a.items = [['@'+cv.name,""]]
1248- c1 = findPalletItem(cv)
1249- set_cnt_attr(cv,c1)
1250- else
1251- a.items = c_items
1104+ def child_deleted(c)
1105+ idx = @_fd_items.index(@_fd_items.find{|i| i[0] == '@'+c.name })
1106+ @_fd_items.delete_at(idx)
1107+ deleteband(idx)
1108+ if @_fd_items.empty?
1109+ cv=addControl(VRStatic,"__#{name}",'',0,0,25,25)
1110+ @parent.instance_eval("@#{cv.name}=nil")
1111+ @parent.instance_eval "@controls.delete(cv.etc)"
1112+ @controls[cv.etc] = cv
1113+ instance_eval("@#{cv.name}=cv")
1114+ insertband(cv,"",0,30)
1115+ @_fd_items = [['@'+cv.name,""]]
1116+ c1 = findPalletItem(cv)
1117+ @form.set_cnt_attr(cv,c1)
1118+ end
12521119 end
1253- a
1120+
1121+ def post_created(prnt,cnt,name,caption,x,y,w,h,addstyle,c_items,c)
1122+ self.extend FDParent
1123+ unless c_items
1124+ cv = addControl(VRStatic,"__#{name}",'',0,0,25,25)
1125+ parent.instance_eval("@#{cv.name}=nil")
1126+ parent.instance_eval "@controls.delete(cv.etc)"
1127+ @controls[cv.etc] = cv
1128+ instance_eval("@#{cv.name}=cv")
1129+ insertband(cv,"",0,30)
1130+ @_fd_items = [['@'+cv.name,""]]
1131+ c1 = findPalletItem(cv)
1132+ set_cnt_attr(cv,c1)
1133+ else
1134+ @_fd_items = c_items
1135+ end
1136+ end
12541137 end
1255-
1256- def newFDTabbedPanel(prnt,cnt,name,caption,x,y,w,h,addstyle=0,c_items=nil)
1257- if prnt.is_a? VRTabControl then
1258- messageBox 'cannot arrange VRTabbedPanel on VRTabControl','Illegal arrangement',16
1259- return
1138+
1139+ module NewFDTabControl
1140+ include STDSourceMaker
1141+
1142+ def tabs
1143+ @form._return_val=nil
1144+ ItemEditDlg::LISTWIDTH[0] = 392
1145+ ItemEditDlg::STYLES[0]=nil
1146+ ItemEditDlg::POS[0] = [100,100,400,300]
1147+ ItemEditDlg::ADDINGNAME[0] = 'tab'
1148+ ItemEditDlg::ADDREMOVE[0] = true
1149+ ItemEditDlg::UPDOWN[0] = false
1150+ ItemEditDlg::TITLES[0]=[['name',0],['title',200]]
1151+ ItemEditDlg::ITEMS[0] = getItems
1152+ ItemEditDlg::FIXCOLUMN[0] = true
1153+ VRLocalScreen.modalform @form ,nil,ItemEditDlg
1154+ r = @form._return_val
1155+ return unless r
1156+ clearTabs
1157+ r.each_with_index{|v,i|insertTab(i,v[1])}
1158+ @form.refreshCntName
1159+ @form.update_inspectfrm(self)
12601160 end
1261- c = findPalletItem(cnt)
1262-# addstyle = 0 unless addstyle
1263- od = check_owndraw(c,addstyle)
1264- addstyle -= od
1265- c.klass.auto_panelresize(true)
1266- a=prnt.addControl(c.klass,name,caption,x,y,w,h,addstyle )
1267- prnt.set_include(c.included)
1268- a.class.module_eval "USE_THIS_PARENT = true"
1269- class << a
1270- include STDSourceMaker
1271- def getItemsStr(option=nil)
1272- lv=getLevel(self)
1273- s = "[\n"
1274- 0.upto(countTabs-1){ |i|
1275- s += "#{lv} ['#{getTabTextOf(i)}'," +
1161+
1162+ def getItems
1163+ r = []
1164+ 0.upto(countTabs-1){|i| r << ['',getTabTextOf(i)]}
1165+ r
1166+ end
1167+
1168+ end
1169+
1170+ module NewFDTabbedPanel
1171+ include STDSourceMaker
1172+
1173+ def self.extended(mod)
1174+ mod.class.module_eval(
1175+ "USE_THIS_PARENT=true unless defined?( USE_THIS_PARENT)")
1176+ mod.addHandler(WMsg::WM_SIZE,"_vr_tabpanelresize", MSGTYPE::ARGLINTINT,nil)
1177+ mod.acceptEvents [WMsg::WM_SIZE]
1178+ end
1179+
1180+ def getItemsStr(option=nil)
1181+ lv=getLevel(self)
1182+ s = "[\n"
1183+ 0.upto(countTabs-1){ |i|
1184+ s += "#{lv} ['#{getTabTextOf(i)}'," +
12761185 "#{@panels[i].name.capitalize1},'#{@panels[i].name}'],\n"}
1277- s[s.size-2,2] = "\n#{lv} ]"
1278- s
1279- end
1186+ s[s.size-2,2] = "\n#{lv} ]"
1187+ s
1188+ end
1189+
1190+ def getItems2
1191+ s = []
1192+ 0.upto(countTabs-1){ |i| s << [@panels[i].name,getTabTextOf(i)]}
1193+ s
1194+ end
12801195
1281- def getItems2
1282- s = []
1283- 0.upto(countTabs-1){ |i| s << [@panels[i].name,getTabTextOf(i)]}
1284- s
1285- end
1286-
1287- def refreshItems(a0)
1288- @items = a0.collect{|i| i[1]}
1289- a1 = a0.select{|i| i[0]!=""}.collect{|i| instance_eval('@'+i[0])}
1290- @panels.each_with_index{|itm,idx|
1291- unless a1.find{|j| j == itm }
1292- @panels[idx].delete_child_controls
1293- deleteControl(@panels[idx])
1294- @panels.delete_at(idx)
1295- end
1296- }
1297- @panels.each{|i|
1298- instance_eval "@#{i.name}=nil"
1299- i.name = "___"+i.name
1300- }
1301- clearTabs
1302- 0.upto(a0.size-1){|i|
1303- insertTab(i,a0[i][1])
1304- if (n=a0[i][0]) != ''
1305- m = 0.upto(@panels.size-1){|j|
1306- break j if @panels[j].name == "___#{n}" }
1307- @panels[i,0] = @panels.delete_at(m)
1308- instance_eval "@#{@panels[i].name.sub(/^___/,'')}=nil"
1309- @panels[i].name = "panel#{i}"
1310- instance_eval "@#{@panels[i].name}=@panels[i]"
1311- else
1312- @panels[i,0] = nil
1313- x,y,w,h = adjustRect(0,0,self.w,self.h,false)
1314- @panels[i] = addControl(VRPanel,"panel#{i}","panel#{i}",x,y,w-x,h-y)
1315- @panels[i].extend VRContainersSet
1316- @panels[i].containers_init
1317- @panels[i].show 0
1318- c1 = @form.findPalletItem(@panels[i])
1319- @form.set_cnt_attr(@panels[i],c1)
1320- @panels[i].extend STDSourceMaker
1321- @panels[i].extend(FDParent)
1322- @panels[i].extend CreateCtrl
1323- end
1324- @panels[i]._default_font = self._default_font
1325- }
1326- #selectTab 0
1327- end
1328-
1329- def terminate() end
1330-
1331- def createSourceStr
1332- lv = getLevel(self)
1333- if respond_to? :initMargin
1334- x0=@__org_x; y0=@__org_y; w0=@__org_w; h0=@__org_h
1335- sr = lv + " auto_panelresize(true)\n"
1196+ def refreshItems(a0)
1197+ @_fd_items = a0.collect{|i| i[1]}
1198+ a1 = a0.select{|i| i[0]!=""}.collect{|i| instance_eval('@'+i[0])}
1199+ @panels.each_with_index{|itm,idx|
1200+ unless a1.find{|j| j == itm }
1201+ @panels[idx].delete_child_controls
1202+ deleteControl(@panels[idx])
1203+ @panels.delete_at(idx)
1204+ end
1205+ }
1206+ @panels.each{|i|
1207+ instance_eval "@#{i.name}=nil"
1208+ i.name = "___"+i.name
1209+ }
1210+ clearTabs
1211+ 0.upto(a0.size-1){|i|
1212+ insertTab(i,a0[i][1])
1213+ if (n=a0[i][0]) != ''
1214+ m = 0.upto(@panels.size-1){|j|
1215+ break j if @panels[j].name == "___#{n}" }
1216+ @panels[i,0] = @panels.delete_at(m)
1217+ instance_eval "@#{@panels[i].name.sub(/^___/,'')}=nil"
1218+ @panels[i].name = "panel#{i}"
1219+ instance_eval "@#{@panels[i].name}=@panels[i]"
13361220 else
1337- x0,y0,w0,h0 = get_client_pos
1338- sr = ""
1221+ @panels[i,0] = nil
1222+ x,y,w,h = adjustRect(0,0,self.w,self.h,false)
1223+ @panels[i] = addControl(VRPanel,"panel#{i}","panel#{i}",x,y,w-x,h-y)
1224+ @panels[i].extend VRContainersSet
1225+ @panels[i].containers_init
1226+ @panels[i].show 0
1227+ c1 = @form.findPalletItem(@panels[i])
1228+ @form.set_cnt_attr(@panels[i],c1)
1229+ @panels[i].extend STDSourceMaker
1230+ @panels[i].extend(FDParent)
1231+ @panels[i].extend CreateCtrl
13391232 end
1340- str = ""
1341- sty = self.style+@owndraw-@_default_style
1342- cnt=self.class.to_s
1343- str += lv+" "+
1344- mk_addstr(name.capitalize1,name,caption.esc,x0,y0,w0,h0,sty)
1345- s2 = ""
1346- sattr=""
1347- @panels.each{|i|
1348- i.modules = self.modules
1349- sattr += lv+" attr_reader :#{i.name}\n"
1350- s2 << i.get_childs_source(true){|j| j.createSourceStr}
1351- }
1352- s2 += "\n" + lv + " def construct\n"
1353- s2 += getFontStrParent(lv)
1354- s2 += lv+" setupPanels(*#{getItemsStr(true)})\n" if @panels.size > 0
1355- s2 += lv+" end\n"
1356- @parent.cntnmodules <<
1357- "\n#{lv}class #{name.capitalize1} < #{self.class}\n"
1358- @modules.each{|m|
1359- @parent.cntnmodules << lv+" include #{m}\n";
1360- (@form.required <<
1361- FDModules::StdModules["#{m}".intern ].requires).uniq!
1362- @form.required.reject!{|i| !i}
1363- }
1364- @parent.cntnmodules << "#{sattr}"
1365- @parent.cntnmodules << getDEFAULTFONT(lv) if @_default_font
1366- @parent.cntnmodules << sr
1367- @parent.cntnmodules << s2 + "#{lv}end\n"
1368- str += getFontStr(lv)
1369- str
1233+ @panels[i]._default_font = self._default_font
1234+ }
1235+ #selectTab 0
1236+ end
1237+
1238+ def terminate() end
1239+
1240+ def createSourceStr
1241+ lv = getLevel(self)
1242+ if respond_to? :initMargin
1243+ x0=@__org_x; y0=@__org_y; w0=@__org_w; h0=@__org_h
1244+ sr = lv + " auto_panelresize(true)\n"
1245+ else
1246+ x0,y0,w0,h0 = get_client_pos
1247+ sr = ""
13701248 end
1371-
1372- def pages
1373- @form._return_val=nil
1374- ItemEditDlg::LISTWIDTH[0] = 392
1375- ItemEditDlg::STYLES[0]=nil
1376- ItemEditDlg::POS[0] = [100,100,400,300]
1377- ItemEditDlg::ADDINGNAME[0] = 'tab'
1378- ItemEditDlg::ADDREMOVE[0] = true
1379- ItemEditDlg::UPDOWN[0] = false
1380- ItemEditDlg::TITLES[0]=[['panel',120],['title',100]]
1381- ItemEditDlg::ITEMS[0] = getItems2
1382- ItemEditDlg::FIXCOLUMN[0] = true
1383- VRLocalScreen.modalform @form ,nil,ItemEditDlg
1384- r = @form._return_val
1385- refreshItems(r) if r
1386- @form.refreshCntName
1387- @form.update_inspectfrm(self)
1249+ str = ""
1250+ sty = self.style+@owndraw-@_default_style
1251+ cnt=self.class.to_s
1252+ str += lv+" "+
1253+ mk_addstr(name.capitalize1,name,caption.esc,x0,y0,w0,h0,sty)
1254+ s2 = ""
1255+ sattr=""
1256+ @panels.each{|i|
1257+ i.modules = self.modules
1258+ sattr += lv+" attr_reader :#{i.name}\n"
1259+ s2 << i.get_childs_source(true){|j| j.createSourceStr}
1260+ }
1261+ s2 += "\n" + lv + " def construct\n"
1262+ s2 += getFontStrParent(lv)
1263+ s2 += lv+" setupPanels(*#{getItemsStr(true)})\n" if @panels.size > 0
1264+ s2 += lv+" end\n"
1265+ @parent.cntnmodules <<
1266+ "\n#{lv}class #{name.capitalize1} < #{self.class}\n"
1267+ @modules.each{|m|
1268+ @parent.cntnmodules << lv+" include #{m}\n";
1269+ (@form.required <<
1270+ FDModules::StdModules["#{m}".intern ].requires).uniq!
1271+ @form.required.reject!{|i| !i}
1272+ }
1273+ @parent.cntnmodules << "#{sattr}"
1274+ @parent.cntnmodules << getDEFAULTFONT(lv) if @_default_font
1275+ @parent.cntnmodules << sr
1276+ @parent.cntnmodules << s2 + "#{lv}end\n"
1277+ str += getFontStr(lv)
1278+ str
1279+ end
1280+
1281+ def pages
1282+ @form._return_val=nil
1283+ ItemEditDlg::LISTWIDTH[0] = 392
1284+ ItemEditDlg::STYLES[0]=nil
1285+ ItemEditDlg::POS[0] = [100,100,400,300]
1286+ ItemEditDlg::ADDINGNAME[0] = 'tab'
1287+ ItemEditDlg::ADDREMOVE[0] = true
1288+ ItemEditDlg::UPDOWN[0] = false
1289+ ItemEditDlg::TITLES[0]=[['panel',120],['title',100]]
1290+ ItemEditDlg::ITEMS[0] = getItems2
1291+ ItemEditDlg::FIXCOLUMN[0] = true
1292+ VRLocalScreen.modalform @form ,nil,ItemEditDlg
1293+ r = @form._return_val
1294+ refreshItems(r) if r
1295+ @form.refreshCntName
1296+ @form.update_inspectfrm(self)
1297+ end
1298+
1299+ def post_created(prnt,cnt,name,caption,x,y,w,h,addstyle,c_items,c)
1300+ if c_items
1301+ setupPanels(*c_items)
1302+ @_fd_items = c_items
1303+ elsif @_fd_items
1304+ setupPanels(*@_fd_items)
1305+ else
1306+ setupPanels(*c.items)
1307+ @_fd_items = c.items
13881308 end
1309+ panels.each{|i|
1310+ c1 = findPalletItem(i)
1311+ set_cnt_attr(i,c1)
1312+ i.extend STDSourceMaker
1313+ i.extend(FDParent)
1314+ }
13891315 end
1316+ end
1317+
1318+ ## Menu and other object (except kind of SWin::Window)
1319+
1320+ module NewFDMenu
1321+ def createMthodStr(t)
1322+ s= "@#{self.name}.#{t}"
1323+ s
1324+ end
13901325
1391- set_cnt_attr(a,c)
1392- a.owndraw = od
1393- a.extend(FDParent)
1394- if c_items
1395- a.setupPanels(*c_items)
1396- a.items = c_items
1397- elsif a.items
1398- a.setupPanels(*a.items)
1399- else
1400- a.setupPanels(*c.items)
1401- a.items = c.items
1326+ def getItemsStr
1327+ mn=MenuStrMaker.new
1328+ mn.makeStr(@_fd_items)
14021329 end
1403- a.panels.each{|i|
1404- c1 = findPalletItem(i)
1405- set_cnt_attr(i,c1)
1406- i.extend STDSourceMaker
1407- i.extend(FDParent)
1408- }
1409- a
1410- end
1411-
1412- def newFDMenu(prnt,cnt,name,caption,x,y,w,h,addstyle=0,c_items=nil)
1413- c = findPalletItem(cnt)
1414- prnt.class.module_eval "attr_accessor :_vr_menus "
1415- a=addControl(FDContainer,name,caption,x,y,w,h,addstyle )
1416- prnt.set_include(c.included)
1417- class << a
1418- def createMthodStr(t)
1419- s= "@#{self.name}.#{t}"
1420- s
1330+
1331+ def refreshItems(a)
1332+ begin
1333+ @_fd_items = a
1334+ @parent._vr_menus.clear
1335+ self.terminate
1336+ self.substance = @parent.newMenu.set(@_fd_items)
1337+ @parent.setMenu self.substance,false
1338+ rescue Exception
1339+ messageBox $!,'Illegal setting of items',16
14211340 end
1422-
1423- def getItemsStr
1424- mn=MenuStrMaker.new
1425- mn.makeStr(@items)
1426- end
1341+ end
14271342
1428- def refreshItems(a)
1429- begin
1430- self.items = a
1431- @parent._vr_menus.clear
1432- self.terminate
1433- self.substance = @parent.newMenu.set(self.items)
1434- @parent.setMenu self.substance,false
1435- rescue Exception
1436- messageBox $!,'Illegal setting of items',16
1437- end
1438- end
1343+ def terminate
1344+ @parent.setMenu @parent.newMenu,false if parent.visible?
1345+ end
1346+
1347+ def set_attrs(a) end #do nothing
1348+
1349+ def createSourceStr
1350+ r = " \#$_addControl(VRMenu,'#{name}',\"\",#{x},#{y},24,24)\n"
1351+ r += " @#{self.name} = newMenu.set(\n"
1352+ r += self.getItemsStr.gsub(/^/," "*6)
1353+ r += " )\n"
1354+ @_kb_accel=false unless @_kb_accel
1355+ r += " setMenu(@#{self.name},#{@_kb_accel})\n"
1356+ #r += " \#$_ctn_#{self.name}=[#{self.x},#{self.y}]\n"
1357+ r
1358+ end
14391359
1440- def terminate
1441- @parent.setMenu @parent.newMenu,false if parent.visible?
1442- end
1443-
1444- def set_attrs(a) end #do nothing
1360+ def eventList
1361+ s_ary = []
1362+ @parent._vr_menus.each{|i,c|
1363+ s_ary << c.name + "_clicked" unless c.name == '_vrmenusep'
1364+ }
1365+ s_ary
1366+ end
1367+
1368+ def menus
1369+ a = []
1370+ @form._return_val=nil
1371+ analizer = MenuAnalizer.new
1372+ MenuEditDlg::ITEMS[0] = analizer.analize(@_fd_items)
1373+ MenuEditDlg::POS[0] = [@form.x+50,@form.y+50,468,300]
1374+ 0.upto(analizer.colCount-1){|i| a << ["#{i+1}",112]}
1375+ MenuEditDlg::TITLES[0]=a
1376+ VRLocalScreen.modalform @form ,nil,MenuEditDlg
1377+ r = analizer.unanalize(@form._return_val) if @form._return_val
1378+ refreshItems(r) if r
1379+ @form.update_inspectfrm(self)
1380+ end
1381+
1382+ def accel(a = true) @_kb_accel = a end
14451383
1446- def createSourceStr
1447- r = " \#$_addControl(VRMenu,'#{name}',\"\",#{x},#{y},24,24)\n"
1448- r += " @#{self.name} = newMenu.set(\n"
1449- r += self.getItemsStr.gsub(/^/," "*6)
1450- r += " )\n"
1451- @_kb_accel=false unless @_kb_accel
1452- r += " setMenu(@#{self.name},#{@_kb_accel})\n"
1453- # r += " \#$_ctn_#{self.name}=[#{self.x},#{self.y}]\n"
1454- r
1455- end
1456-
1457- def eventList
1458- s_ary = []
1459- @parent._vr_menus.each{|i,c|
1460- s_ary << c.name + "_clicked" unless c.name == '_vrmenusep'
1461- }
1462- s_ary
1463- end
1384+ def getaccel() @_kb_accel end
14641385
1465- def menus
1466- a = []
1467- @form._return_val=nil
1468- analizer = MenuAnalizer.new
1469- MenuEditDlg::ITEMS[0] = analizer.analize(@items)
1470- MenuEditDlg::POS[0] = [@form.x+50,@form.y+50,468,300]
1471- 0.upto(analizer.colCount-1){|i| a << ["#{i+1}",112]}
1472- MenuEditDlg::TITLES[0]=a
1473- VRLocalScreen.modalform @form ,nil,MenuEditDlg
1474- r = analizer.unanalize(@form._return_val) if @form._return_val
1475- refreshItems(r) if r
1476- @form.update_inspectfrm(self)
1386+ def post_created(prnt,cnt,name,caption,x,y,w,h,addstyle,c_items,c)
1387+ if c_items
1388+ @_fd_items=c_items
1389+ elsif c.items
1390+ @_fd_items=c.items
1391+ else
1392+ @_fd_items=FDMenuTemplate
14771393 end
1478-
1479- def accel(a = true) @_kb_accel = a end
1480-
1481- def getaccel() @_kb_accel end
1394+ accel(true)
1395+ @substance = $designfrm.newMenu.set @_fd_items
1396+ $designfrm.setMenu @substance,false
14821397 end
1483- set_cnt_attr(a,c)
1484- a.bmp=SWin::Bitmap.loadString(c.bmp)
1485- if c_items then
1486- a.items=c_items
1487- elsif c.items
1488- a.items=c.items
1489- else
1490- a.items=FDMenuTemplate
1491- end
1492- a.accel(true)
1493- a.substance = newMenu.set a.items
1494- self.setMenu a.substance,false
1495- a
14961398 end
14971399
1498- def newFDPopup(prnt,cnt,name,caption,x,y,w,h,addstyle=0,c_items=nil)
1499- c = findPalletItem(cnt)
1500- a=addControl(FDContainer,name,caption,x,y,w,h,addstyle )
1501- prnt.set_include(c.included)
1502-
1503- class << a
1504- def createMthodStr(t)
1505- case t
1506- when /^showPopup/
1507- s=t.sub /(\(.+\))/,"(@#{self.name})"
1508- else
1509- s= "@#{self.name}.#{t}"
1510- end
1511- s
1400+ module NewFDPopup
1401+ def createMthodStr(t)
1402+ case t
1403+ when /^showPopup/
1404+ s=t.sub /(\(.+\))/,"(@#{self.name})"
1405+ else
1406+ s= "@#{self.name}.#{t}"
15121407 end
1408+ s
1409+ end
15131410
1514- def getItemsStr
1515- mn=MenuStrMaker.new
1516- mn.makeStr(@items)
1517- end
1411+ def getItemsStr
1412+ mn=MenuStrMaker.new
1413+ mn.makeStr(@_fd_items)
1414+ end
15181415
1519- def set_attrs(a) end #do nothing
1416+ def set_attrs(a) end #do nothing
15201417
1521- def createSourceStr
1522- r = " \#$_addControl(FDPopup,'#{name}',\"\",#{x},#{y},24,24)\n"
1523- r += " @#{self.name} = newPopupMenu.set(\n"
1524- r += self.getItemsStr.gsub(/^/," "*6)
1525- r += " )\n"
1526- r
1527- end
1418+ def createSourceStr
1419+ r = " \#$_addControl(FDPopup,'#{name}',\"\",#{x},#{y},24,24)\n"
1420+ r += " @#{self.name} = newPopupMenu.set(\n"
1421+ r += self.getItemsStr.gsub(/^/," "*6)
1422+ r += " )\n"
1423+ r
1424+ end
15281425
1529- def menus
1426+ def menus
1427+ a = []
1428+ @form._return_val=nil
1429+ analizer = MenuAnalizer.new
1430+ MenuEditDlg::ITEMS[0] = analizer.analize(@_fd_items)
1431+ MenuEditDlg::POS[0] = [@form.x+50,@form.y+50,468,300]
1432+ 0.upto(analizer.colCount-1){|i| a << ["#{i+1}",112]}
1433+ MenuEditDlg::TITLES[0]=a
1434+ VRLocalScreen.modalform @form ,nil,MenuEditDlg
1435+ @_fd_items = analizer.unanalize(@form._return_val) if @form._return_val
1436+ @form.update_inspectfrm(self)
1437+ end
1438+
1439+ def eventList
1440+ ar = []
1441+ an = MenuAnalizer.new
1442+ ana = an.analize(@_fd_items)
1443+ ana.each{|i|
1444+ level = 0
1445+ flag0 = nil
15301446 a = []
1531- @form._return_val=nil
1532- analizer = MenuAnalizer.new
1533- MenuEditDlg::ITEMS[0] = analizer.analize(@items)
1534- MenuEditDlg::POS[0] = [@form.x+50,@form.y+50,468,300]
1535- 0.upto(analizer.colCount-1){|i| a << ["#{i+1}",112]}
1536- MenuEditDlg::TITLES[0]=a
1537- VRLocalScreen.modalform @form ,nil,MenuEditDlg
1538- @items = analizer.unanalize(@form._return_val) if @form._return_val
1539- @form.update_inspectfrm(self)
1540- end
1541-
1542- def eventList
1543- ar = []
1544- an = MenuAnalizer.new
1545- ana = an.analize(@items)
1546- ana.each{|i|
1547- level = 0
1548- flag0 = nil
1549- a = []
1550- i.each{|j|
1551- if j == "" then
1552- break if flag0
1553- level += 1
1554- else
1555- a << j
1556- flag0 = true
1557- end
1558- }
1559- ar << a[1]+'_clicked' if a.size > 1 && a[1] != "_vrmenusep"
1447+ i.each{|j|
1448+ if j == ""
1449+ break if flag0
1450+ level += 1
1451+ else
1452+ a << j
1453+ flag0 = true
1454+ end
15601455 }
1561- ar
1562- end
1456+ ar << a[1]+'_clicked' if a.size > 1 && a[1] != "_vrmenusep"
1457+ }
1458+ ar
15631459 end
15641460
1565- set_cnt_attr(a,c)
1566- if c_items then
1567- a.items=c_items
1568- elsif c.items
1569- a.items=c.items
1570- else
1571- a.items=FDItems::FDPopupMenuTemplate
1461+ def post_created(prnt,cnt,name,caption,x,y,w,h,addstyle,c_items,c)
1462+ if c_items
1463+ @_fd_items=c_items
1464+ elsif c.items
1465+ @_fd_items=c.items
1466+ else
1467+ @_fd_items=FDItems::FDPopupMenuTemplate
1468+ end
1469+ @substance = c.klass.new
15721470 end
1573- a.bmp=SWin::Bitmap.loadString(c.bmp)
1574- a.substance = c.klass.new
1575- a
15761471 end
15771472
1578- def newFDOpenSaveDlg(prnt,cnt,name,caption,x,y,w,h,addstyle=0,info=nil,ext=nil)
1579- c = findPalletItem(cnt)
1580- a=addControl(FDContainer,name,caption,x,y,w,h,addstyle )
1581- class << a
1582- def init
1583- @substance.filters = FDItems::FDDlgFilterTemplate
1584- if @substance.class == FDFakeClass::FDOpenDlg
1585- aryFlags = FDComDlgItems::OpenFileFlag
1586- @substance.flags = aryFlags['OFN_FILEMUSTEXIST']
1587- else
1588- aryFlags = FDComDlgItems::SaveFileFlag
1589- @substance.flags = aryFlags['OFN_OVERWRITEPROMPT']
1590- end
1591- @substance.title = nil
1592- @substance.defaultExt = nil
1593- end
1473+ module NewFDOpenSaveDlg#(prnt,cnt,name,caption,x,y,w,h,addstyle=0,c_items=nil)
1474+# c = findPalletItem(cnt)
1475+# a=addControl(FDContainer,name,caption,x,y,w,h,addstyle )
1476+# class << a
15941477
15951478 def createSourceStr
15961479 cnt=self.substance.class.name.sub /^.*::/,''
@@ -1661,23 +1544,24 @@
16611544
16621545 def title() @substance.title end
16631546
1664- def defaultExt() @substance.defaultExt end
1547+ def defaultExt() @substance.defaultExt end
1548+
1549+ def post_created(prnt,cnt,name,caption,x,y,w,h,addstyle,c_itemms,c)
1550+ @substance = c.klass.new
1551+ @substance.filters = FDItems::FDDlgFilterTemplate
1552+ if @substance.class == FDFakeClass::FDOpenDlg
1553+ aryFlags = FDComDlgItems::OpenFileFlag
1554+ @substance.flags = aryFlags['OFN_FILEMUSTEXIST']
1555+ else
1556+ aryFlags = FDComDlgItems::SaveFileFlag
1557+ @substance.flags = aryFlags['OFN_OVERWRITEPROMPT']
1558+ end
1559+ @substance.title = nil
1560+ @substance.defaultExt = nil
16651561 end
1666-
1667- a.substance = c.klass.new
1668- set_cnt_attr(a,c)
1669- a.bmp=SWin::Bitmap.loadString(c.bmp)
1670- a.init
1671- a
16721562 end
16731563
1674- def newFDSelectDir(prnt,cnt,name,caption,x,y,w,h,addstyle=0,info=nil,ext=nil)
1675- c = findPalletItem(cnt)
1676- a=addControl(FDContainer,name,caption,x,y,w,h,addstyle )
1677- class << a
1678- def init
1679- @substance.flags=FDComDlgItems::BrowseFolderFlag["BIF_RETURNONLYFSDIRS"]
1680- end
1564+ module NewFDSelectDir
16811565 def flags
16821566 a = []
16831567 FDComDlgItems::BrowseFolderFlag.each{|k,v|
@@ -1715,378 +1599,360 @@
17151599 fs = sb.flags ? sb.flags.to_x : 'nil'
17161600 "#{str}(#{sb.title.inspect},#{sb.initialdir.inspect},#{fs})"
17171601 end
1602+ def post_created(prnt,cnt,name,caption,x,y,w,h,addstyle,c_itemms,c)
1603+ @substance = c.klass.new
1604+ @substance.flags=FDComDlgItems::BrowseFolderFlag["BIF_RETURNONLYFSDIRS"]
17181605 end
1606+ end
1607+
1608+ ## Layouts
1609+
1610+ module NewFD2Pane
17191611
1720- a.substance = c.klass.new
1721- set_cnt_attr(a,c)
1722- a.bmp=SWin::Bitmap.loadString(c.bmp)
1723- a.init
1724- a
1725- end
1726-
1727- def newFD2Pane(prnt,cnt,name,caption,x,y,w,h,addstyle=0,items=nil,first=nil)
1728- c = findPalletItem(cnt)
1729- prnt.addHandler(WMsg::WM_SIZE,'vrmgresize', MSGTYPE::ARGLINTINT, nil)
1730- prnt.addEvent WMsg::WM_SIZE
1731- a=prnt.addControl(FDContainer,name,"",x,y,w,h,addstyle )
1732- prnt.set_include(c.included)
1733- class << a
1734- def getItemsStr(option=nil) "" end
1612+ def getItemsStr(option=nil) "" end
17351613
1736- def set_attrs(a) end #do nothing
1614+ def set_attrs(a) end #do nothing
17371615
1738- def refreshItems(ar) end
1616+ def refreshItems(ar) end
17391617
1740- def terminate
1741- if parent.__regsterd_vr_margined_frame == self.substance
1742- parent.__regsterd_vr_margined_frame=nil;GC.start
1618+ def terminate
1619+ if parent.__regsterd_vr_margined_frame == self.substance
1620+ parent.__regsterd_vr_margined_frame=nil;GC.start
1621+ end
1622+ @substance.bevel=@substance.class::BevelNone
1623+ @substance.gap=0
1624+ @substance.pane1.each{|i|
1625+ if i.is_a? SWin::Window
1626+ i.setMargin(nil,nil,nil,nil)
1627+ i.registerd_to = []
1628+ i.margined = nil
17431629 end
1744- @substance.bevel=@substance.class::BevelNone
1745- @substance.gap=0
1746- @substance.pane1.each{|i|
1747- if i.is_a? SWin::Window
1748- i.setMargin(nil,nil,nil,nil)
1749- i.registerd_to = []
1750- i.margined = nil
1751- end
1752- } if @substance.pane1
1753- @substance.pane2.each{|i|
1754- if i.is_a? SWin::Window
1755- i.setMargin(nil,nil,nil,nil)
1756- i.registerd_to = []
1757- i.margined = nil
1758- end
1759- } if @substance.pane2
1760- $designfrm.coverfrm.close_hole(@substance)
1761- end
1630+ } if @substance.pane1
1631+ @substance.pane2.each{|i|
1632+ if i.is_a? SWin::Window
1633+ i.setMargin(nil,nil,nil,nil)
1634+ i.registerd_to = []
1635+ i.margined = nil
1636+ end
1637+ } if @substance.pane2
1638+ $designfrm.coverfrm.close_hole(@substance);p [1603,@substance]
1639+ end
17621640
1763- def createSourceStr
1764- def self.create_setmargin(lv,name,o)
1765- "#{lv} @#{name}.setMargin("+o.mgLeft.inspect+','+o.mgTop.inspect+
1641+ def createSourceStr
1642+ def self.create_setmargin(lv,name,o)
1643+ "#{lv} @#{name}.setMargin("+o.mgLeft.inspect+','+o.mgTop.inspect+
17661644 ','+o.mgRight.inspect+','+o.mgBottom.inspect+")\n"
1767- end
1768- make_panes = lambda do |p|
1769- s=p.map{|i|
1770- '@'+(i.is_a?(SWin::Window) ? i.name : i.container.name)+','}.to_s
1771- s[0,s.size-1]
1772- end
1773- lv = getLevel(self)
1774- sb = self.substance
1775- cnt=sb.class.name.sub /^.*::/,''
1776- sty = sprintf("%#x",style)
1777- r = "#{lv} \#$_addControl(#{cnt},'#{name}',\"\",#{x},#{y},24,24)\n"
1778- if parent.__regsterd_vr_margined_frame == self.substance
1779- r += "#{lv} @#{self.name}=setMarginedFrame(#{cnt}," +
1645+ end
1646+ make_panes = lambda do |p|
1647+ s=p.map{|i|
1648+ '@'+(i.is_a?(SWin::Window) ? i.name : i.container.name)+','}.join("")
1649+ s[0,s.size-1]
1650+ end
1651+ lv = getLevel(self)
1652+ sb = self.substance
1653+ cnt=sb.class.name.sub /^.*::/,''
1654+ sty = sprintf("%#x",style)
1655+ r = "#{lv} \#$_addControl(#{cnt},'#{name}',\"\",#{x},#{y},24,24)\n"
1656+ if parent.__regsterd_vr_margined_frame == self.substance
1657+ r += "#{lv} @#{self.name}=setMarginedFrame(#{cnt}," +
17801658 "[#{make_panes.call(sb.pane1)}],[#{make_panes.call(sb.pane2)}])\n"
1781- r += create_setmargin(lv,self.name,sb)
1782- else
1783- r +=
1784- "#{lv} @#{self.name}=#{cnt}.new([#{make_panes.call(sb.pane1)}]," +
1659+ r += create_setmargin(lv,self.name,sb)
1660+ else
1661+ r += "#{lv} @#{self.name}=#{cnt}.new([#{make_panes.call(sb.pane1)}]," +
17851662 "[#{make_panes.call(sb.pane2)}]).setup(self)\n"
1786- end
1787- r += "#{lv} @#{self.name}.ratio=#{sb.ratio}\n" if sb.ratio
1788- r += "#{lv} @#{self.name}.position=#{sb.position}\n" if sb.position
1789- r += "#{lv} @#{self.name}.gap=#{sb.gap}\n"
1790- r += "#{lv} @#{self.name}.bevel=VRMgdTwoPaneFrame::Bevel" +
1663+ end
1664+ r += "#{lv} @#{self.name}.ratio=#{sb.ratio}\n" if sb.ratio
1665+ r += "#{lv} @#{self.name}.position=#{sb.position}\n" if sb.position
1666+ r += "#{lv} @#{self.name}.gap=#{sb.gap}\n"
1667+ r += "#{lv} @#{self.name}.bevel=VRMgdTwoPaneFrame::Bevel" +
17911668 @form.instance_eval("lambda{|c| #{@form.prBevel}}").call(self) + "\n"
1792- r += "#{lv} @#{self.name}.lLimit=#{sb.lLimit}\n" if sb.lLimit > 0
1793- if sb.is_a? VRHorizTwoPaneFrame
1794- r += "#{lv} @#{self.name}.rLimit=#{sb.rLimit}\n" if sb.rLimit > 0
1669+ r += "#{lv} @#{self.name}.lLimit=#{sb.lLimit}\n" if sb.lLimit > 0
1670+ if sb.is_a? VRHorizTwoPaneFrame
1671+ r += "#{lv} @#{self.name}.rLimit=#{sb.rLimit}\n" if sb.rLimit > 0
1672+ else
1673+ r += "#{lv} @#{self.name}.uLimit=#{sb.uLimit}\n" if sb.uLimit > 0
1674+ end
1675+ sb.pane1.each do |i|
1676+ if i.is_a? SWin::Window
1677+ r += create_setmargin(lv,i.name,i)
17951678 else
1796- r += "#{lv} @#{self.name}.uLimit=#{sb.uLimit}\n" if sb.uLimit > 0
1679+ r += create_setmargin(lv,i.container.name,i)
17971680 end
1798- sb.pane1.each do |i|
1799- if i.is_a? SWin::Window
1800- r += create_setmargin(lv,i.name,i)
1801- else
1802- r += create_setmargin(lv,i.container.name,i)
1803- end
1681+ end
1682+ sb.pane2.each do |i|
1683+ if i.is_a? SWin::Window
1684+ r += create_setmargin(lv,i.name,i)
1685+ else
1686+ r += create_setmargin(lv,i.container.name,i)
18041687 end
1805- sb.pane2.each do |i|
1806- if i.is_a? SWin::Window
1807- r += create_setmargin(lv,i.name,i)
1808- else
1809- r += create_setmargin(lv,i.container.name,i)
1810- end
1811- end
1812- r
18131688 end
1689+ r
1690+ end
18141691
1815- def createMthodStr(s)
1816- str = s.sub(/\(.*$/ , '')
1817- "#{str}"
1818- end
1692+ def createMthodStr(s)
1693+ str = s.sub(/\(.*$/ , '')
1694+ "#{str}"
18191695 end
18201696
1821- c.klass.module_eval("attr_accessor :pane1, :pane2, :container")
1822- c.klass.module_eval("attr_reader :_vr_lxs, :_vr_lys, :_vr_lxe, :_vr_lye")
1823- if first || (!items && !prnt.__regsterd_vr_margined_frame)
1824- if items
1825- a.substance = prnt.setMarginedFrame(c.klass,
1826- items[0].map{|i|
1827- (j= prnt.instance_eval(i)).is_a?(FDContainer)? j.substance : j},
1828- items[1].map{|i|
1829- (j= prnt.instance_eval(i)).is_a?(FDContainer)? j.substance : j})
1830- a.substance.pane1.each do |i|
1831- if i.is_a?(SWin::Window)
1832- i.registerd_to=[a,0]
1833- i.margined = true
1834- else
1835- i.container.registerd_to=[a,0]
1697+ def post_created(prnt,cnt,name,caption,x,y,w,h,addstyle,items,c)
1698+ prnt.addHandler(WMsg::WM_SIZE,'vrmgresize', MSGTYPE::ARGLINTINT, nil)
1699+ prnt.addEvent WMsg::WM_SIZE
1700+ c.klass.module_eval("attr_accessor :pane1, :pane2, :container")
1701+ c.klass.module_eval("attr_reader :_vr_lxs, :_vr_lys, :_vr_lxe, :_vr_lye")
1702+ first = nil
1703+ first = items.pop if items.is_a?(Array) && items.last == true
1704+ if first || (!items && !prnt.__regsterd_vr_margined_frame)
1705+ if items
1706+ @substance = prnt.setMarginedFrame(c.klass,
1707+ items[0].map{|i|
1708+ (j= prnt.instance_eval(i)).is_a?(FDContainer)? j.substance : j},
1709+ items[1].map{|i|
1710+ (j= prnt.instance_eval(i)).is_a?(FDContainer)? j.substance : j})
1711+ @substance.pane1.each do |i|
1712+ if i.is_a?(SWin::Window)
1713+ i.registerd_to=[self,0]
1714+ i.margined = true
1715+ else
1716+ i.container.registerd_to=[self,0]
1717+ end
18361718 end
1837- end
1838- a.substance.pane2.each do |i|
1839- if i.is_a?(SWin::Window)
1840- i.registerd_to=[a,1]
1841- i.margined = true
1842- else
1843- i.container.registerd_to=[a,1]
1719+ @substance.pane2.each do |i|
1720+ if i.is_a?(SWin::Window)
1721+ i.registerd_to=[self,1]
1722+ i.margined = true
1723+ else
1724+ i.container.registerd_to=[self,1]
1725+ end
18441726 end
1727+ else
1728+ @substance = prnt.setMarginedFrame(c.klass,[],[])
18451729 end
18461730 else
1847- a.substance = prnt.setMarginedFrame(c.klass,[],[])
1848- end
1849- a.bmp=SWin::Bitmap.loadString(c.bmp)
1850- else
1851- if items
1852- a.substance = c.klass.new(
1853- items[0].map{|i|
1854- (j= prnt.instance_eval(i)).is_a?(FDContainer)? j.substance : j},
1855- items[1].map{|i|
1856- (j= prnt.instance_eval(i)).is_a?(FDContainer)? j.substance : j})
1857- a.substance.pane1.each do |i|
1858- if i.is_a?(SWin::Window)
1859- i.registerd_to=[a,0]
1860- else
1861- i.container.registerd_to=[a,0]
1731+ if items
1732+ @substance = c.klass.new(
1733+ items[0].map{|i|
1734+ (j= prnt.instance_eval(i)).is_a?(FDContainer)? j.substance : j},
1735+ items[1].map{|i|
1736+ (j= prnt.instance_eval(i)).is_a?(FDContainer)? j.substance : j})
1737+ @substance.pane1.each do |i|
1738+ if i.is_a?(SWin::Window)
1739+ i.registerd_to=[self,0]
1740+ else
1741+ i.container.registerd_to=[self,0]
1742+ end
18621743 end
1744+ @substance.pane2.each do |i|
1745+ if i.is_a?(SWin::Window)
1746+ i.registerd_to=[self,1]
1747+ else
1748+ i.container.registerd_to=[self,1]
1749+ end
1750+ end
1751+ else
1752+ @substance = c.klass.new([],[]).initMargin(0,0,0,0)
18631753 end
1864- a.substance.pane2.each do |i|
1865- if i.is_a?(SWin::Window)
1866- i.registerd_to=[a,1]
1867- else
1868- i.container.registerd_to=[a,1]
1754+ @substance.setup(prnt)
1755+ bm1 = SWin::Bitmap.newBitmap(23,23)
1756+ 0.upto(self.bmp.width-1) do |i|
1757+ 0.upto(self.bmp.height-1) do |j|
1758+ clr = self.bmp[i,j]
1759+ bm1[i,j] = [clr[1],clr[2],clr[0]]
18691760 end
18701761 end
1871- else
1872- a.substance = c.klass.new([],[]).initMargin(0,0,0,0)
1762+ self.bmp=bm1
18731763 end
1874- a.substance.setup(prnt)
1875- bm=SWin::Bitmap.loadString(c.bmp)
1876- bm1 = SWin::Bitmap.newBitmap(23,23)
1877- 0.upto(bm.width-1) do |i|
1878- 0.upto(bm.height-1) do |j|
1879- clr = bm[i,j]
1880- bm1[i,j] = [clr[1],clr[2],clr[0]]
1881- end
1882- end
1883- a.bmp=bm1
1764+ @substance.container = self
1765+ @substance.bevel = VRMarginedFrameUseable::VRMgdTwoPaneFrame::BevelGroove1
1766+ _x,_y,_w,_h= prnt.clientrect
1767+ prnt.sendMessage(WMsg::WM_SIZE,0,MAKELPARAM(_w,_h))
18841768 end
1885- a.substance.container = a
1886- a.substance.bevel = VRMgdTwoPaneFrame::BevelGroove1
1887- _x,_y,_w,_h= prnt.clientrect
1888- prnt.sendMessage(WMsg::WM_SIZE,0,MAKELPARAM(_w,_h))
1889- set_cnt_attr(a,c)
1890- a
1769+
18911770 end
18921771
1893- def newFDLayout(prnt,cnt,name,caption,x,y,w,h,addstyle=0,items=nil,first=nil)
1894- c = findPalletItem(cnt)
1895- a=prnt.addControl(FDContainer,name,"",x,y,w,h,addstyle )
1896- prnt.addHandler(WMsg::WM_SIZE,'vrmgresize', MSGTYPE::ARGLINTINT, nil)
1897- prnt.addEvent WMsg::WM_SIZE
1898- prnt.set_include(c.included)
1772+ module NewFDLayout
1773+ def getItemsStr(option=nil) "" end
18991774
1900- class << a
1901- def getItemsStr(option=nil) "" end
1902-
1903- def set_attrs(ar) end
1904-
1905- def refreshItems(ar) end
1906-
1907- def terminate
1908- if parent.__regsterd_vr_margined_frame == self.substance
1909- parent.__regsterd_vr_margined_frame=nil
1775+ def set_attrs(ar) end
1776+
1777+ def refreshItems(ar) end
1778+
1779+ def terminate
1780+ if parent.__regsterd_vr_margined_frame == self.substance
1781+ parent.__regsterd_vr_margined_frame=nil
1782+ end
1783+ @substance._vr_layoutclients.each{|i|
1784+ if i.is_a? SWin::Window then
1785+ i.setMargin(nil,nil,nil,nil)
1786+ i.registerd_to = nil
1787+ i.margined = nil
19101788 end
1911- @substance._vr_layoutclients.each{|i|
1912- if i.is_a? SWin::Window then
1913- i.setMargin(nil,nil,nil,nil)
1914- i.registerd_to = nil
1915- i.margined = nil
1916- end
1917- }
1918- end
1789+ }
1790+ end
19191791
1920- def createSourceStr
1921- def self.create_setmargin(lv,name,o)
1922- "#{lv} @#{name}.setMargin("+o.mgLeft.inspect+','+o.mgTop.inspect+
1792+ def createSourceStr
1793+ def self.create_setmargin(lv,name,o)
1794+ "#{lv} @#{name}.setMargin("+o.mgLeft.inspect+','+o.mgTop.inspect+
19231795 ','+o.mgRight.inspect+','+o.mgBottom.inspect+")\n"
1924- end
1925- make_panes=lambda do |p|
1926- unless self.substance.is_a? VRGridLayoutFrame
1927- s=p.map{|i|
1928- '@'+
1929- if i.is_a?(SWin::Window)
1930- i.name
1931- elsif i.is_a? Array
1932- if i[0].is_a? SWin::Window
1933- i[0].name
1934- else
1935- i[0].container.name
1936- end
1796+ end
1797+ make_panes=lambda do |p|
1798+ unless self.substance.is_a? VRGridLayoutFrame
1799+ s=p.map{|i|
1800+ '@'+
1801+ if i.is_a?(SWin::Window)
1802+ i.name
1803+ elsif i.is_a? Array
1804+ if i[0].is_a? SWin::Window
1805+ i[0].name
19371806 else
1938- i.container.name
1939- end +','
1940- }.to_s
1941- else
1942- s=p.map{|i|
1943- '[@'+
1944- if i.is_a?(SWin::Window)
1945- i.name+",#{i.x},#{i.y},#{i.w},#{i.h}"
1946- elsif i.is_a? Array
1947- if i[0].is_a? SWin::Window
1948- i[0].name+",#{i[0].x},#{i[0].y},#{i[0].w},#{i[0].h}"
1949- else
1950- i[0].container.name + ",#{i[0].parent.x},#{i[0].parent.y}"+
1951- ",#{i[0].parent.w},#{i[0].parent.h}"
1952- end
1807+ i[0].container.name
1808+ end
1809+ else
1810+ i.container.name
1811+ end +','
1812+ }.join("")
1813+ else
1814+ s=p.map{|i|
1815+ '[@' +
1816+ if i.is_a?(SWin::Window)
1817+ i.name+",#{i.x},#{i.y},#{i.w},#{i.h}"
1818+ elsif i.is_a? Array
1819+ if i[0].is_a? SWin::Window
1820+ i[0].name+",#{i[0].x},#{i[0].y},#{i[0].w},#{i[0].h}"
19531821 else
1954- i.container.name+",#{i.parent.x},#{i.parent.y}"+
1955- ",#{i.parent.w},#{i.parent.h}"
1956- end +'],'
1957- }.to_s
1958- end
1959- s[0,s.size-1]
1822+ i[0].container.name + ",#{i[0].parent.x},#{i[0].parent.y}"+
1823+ ",#{i[0].parent.w},#{i[0].parent.h}"
1824+ end
1825+ else
1826+ i.container.name + ",#{i.parent.x},#{i.parent.y}"+
1827+ ",#{i.parent.w},#{i.parent.h}"
1828+ end + '],'
1829+ }.join("")
19601830 end
1961- lv = getLevel(self)
1962- sb = self.substance
1963- cnt=sb.class.name.sub /^.*::/,''
1964- sty = sprintf("%#x",style)
1965- r = "#{lv} \#$_addControl(#{cnt},'#{name}',\"\",#{x},#{y},24,24)\n"
1966- if parent.__regsterd_vr_margined_frame == sb
1967- unless sb.is_a? VRGridLayoutFrame
1968- r += "#{lv} @#{self.name}=setMarginedFrame(#{cnt})\n"
1969- else
1970- r += "#{lv} @#{self.name}=setMarginedFrame(#{cnt},"+
1971- "#{sb.instance_eval('@_vr_xsize')},"+
1972- "#{sb.instance_eval('@_vr_ysize')})\n"
1973- end
1974- unless sb._vr_layoutclients.empty?
1975- r += "#{lv} @#{self.name}.register(" +
1831+ s[0,s.size-1]
1832+ end
1833+ lv = getLevel(self)
1834+ sb = self.substance
1835+ cnt=sb.class.name.sub /^.*::/,''
1836+ sty = sprintf("%#x",style)
1837+ r = "#{lv} \#$_addControl(#{cnt},'#{name}',\"\",#{x},#{y},24,24)\n"
1838+ if parent.__regsterd_vr_margined_frame == sb
1839+ unless sb.is_a? VRGridLayoutFrame
1840+ r += "#{lv} @#{self.name}=setMarginedFrame(#{cnt})\n"
1841+ else
1842+ r += "#{lv} @#{self.name}=setMarginedFrame(#{cnt},"+
1843+ "#{sb.instance_eval('@_vr_xsize')},"+
1844+ "#{sb.instance_eval('@_vr_ysize')})\n"
1845+ end
1846+ unless sb._vr_layoutclients.empty?
1847+ r += "#{lv} @#{self.name}.register(" +
19761848 "#{make_panes.call(sb._vr_layoutclients)})\n"
1977- r += create_setmargin(lv,self.name,sb)
1978- end
1849+ r += create_setmargin(lv,self.name,sb)
1850+ end
1851+ else
1852+ if sb.is_a?(VRMarginedFrameUseable::VRMgdGridLayoutFrame)
1853+ r += "#{lv} @#{self.name}=#{cnt}.new(" +
1854+ "#{sb.instance_eval('@_vr_xsize')}," +
1855+ "#{sb.instance_eval('@_vr_ysize')})\n"
19791856 else
1980- if sb.is_a?(VRMgdGridLayoutFrame)
1981- r += "#{lv} @#{self.name}=#{cnt}.new(" +
1982- "#{sb.instance_eval('@_vr_xsize')}," +
1983- "#{sb.instance_eval('@_vr_ysize')})\n"
1984- else
1985- r += "#{lv} @#{self.name}=#{cnt}.new\n"
1986- end
1857+ r += "#{lv} @#{self.name}=#{cnt}.new\n"
19871858 end
1988- sb._vr_layoutclients.each do |i|
1989- if i.is_a? SWin::Window
1990- r += create_setmargin(lv,i.name,i)
1991- elsif i.is_a? Array
1992- if i[0].is_a? SWin::Window
1993- r += create_setmargin(lv,i[0].name,i[0])
1994- else
1995- r += create_setmargin(lv,i[0].container.name,i[0])
1996- end
1859+ end
1860+ sb._vr_layoutclients.each do |i|
1861+ if i.is_a? SWin::Window
1862+ r += create_setmargin(lv,i.name,i)
1863+ elsif i.is_a? Array
1864+ if i[0].is_a? SWin::Window
1865+ r += create_setmargin(lv,i[0].name,i[0])
19971866 else
1998- r += create_setmargin(lv,i.container.name,i)
1867+ r += create_setmargin(lv,i[0].container.name,i[0])
19991868 end
1869+ else
1870+ r += create_setmargin(lv,i.container.name,i)
20001871 end
2001- r
20021872 end
1873+ r
1874+ end
20031875
2004- def createMthodStr(s)
2005- str = s.sub /\(.*$/ , ''
2006- "#{str}"
2007- end
1876+ def createMthodStr(s)
1877+ str = s.sub /\(.*$/ , ''
1878+ "#{str}"
20081879 end
20091880
2010- c.klass.module_eval("attr_accessor :_vr_layoutclients, :container")
2011- if first or (!items && !prnt.__regsterd_vr_margined_frame)
2012- if items
2013- if c.klass == VRMgdGridLayoutFrame
2014- a.substance = prnt.setMarginedFrame(c.klass,prnt.w,prnt.h)
1881+ def post_created(prnt,cnt,name,caption,x,y,w,h,addstyle,items,c)
1882+ prnt.addHandler(WMsg::WM_SIZE,'vrmgresize', MSGTYPE::ARGLINTINT, nil)
1883+ prnt.addEvent WMsg::WM_SIZE
1884+ c.klass.module_eval("attr_accessor :_vr_layoutclients, :container")
1885+ first = nil
1886+ first = items.pop if items.is_a?(Array) && items.last == true
1887+ if first || (!items && !prnt.__regsterd_vr_margined_frame)
1888+ if items
1889+ if c.klass == VRMarginedFrameUseable::VRMgdGridLayoutFrame
1890+ @substance = prnt.setMarginedFrame(c.klass,prnt.w,prnt.h)
1891+ else
1892+ @substance = prnt.setMarginedFrame(c.klass,
1893+ items.map{|i|
1894+ (j= prnt.instance_eval(i)).is_a?(FDContainer)? j.substance : j})
1895+ end
20151896 else
2016- a.substance = prnt.setMarginedFrame(c.klass,
2017- items.map{|i|
2018- (j= prnt.instance_eval(i)).is_a?(FDContainer)? j.substance : j})
1897+ if c.klass == VRMarginedFrameUseable::VRMgdGridLayoutFrame
1898+ @substance = prnt.setMarginedFrame(c.klass,prnt.w,prnt.h)
1899+ else
1900+ @substance = prnt.setMarginedFrame(c.klass)
1901+ end
20191902 end
20201903 else
2021- if c.klass == VRMgdGridLayoutFrame
2022- a.substance = prnt.setMarginedFrame(c.klass,prnt.w,prnt.h)
1904+ if items
1905+ if c.klass <= VRGridLayoutFrame
1906+ @substance = c.klass.new(prnt.w,prnt.h).initMargin(0,0,0,0)
1907+ else
1908+ @substance = c.klass.new.initMargin(0,0,0,0)
1909+ end
20231910 else
2024- a.substance = prnt.setMarginedFrame(c.klass)
1911+ if c.klass <= VRGridLayoutFrame
1912+ @substance = c.klass.new(prnt.w,prnt.h).initMargin(0,0,0,0)
1913+ else
1914+ @substance = c.klass.new.initMargin(0,0,0,0)
1915+ end
20251916 end
2026- end
2027- a.bmp=SWin::Bitmap.loadString(c.bmp)
2028- else
2029- if items
2030- if c.klass <= VRGridLayoutFrame
2031- a.substance = c.klass.new(prnt.w,prnt.h).initMargin(0,0,0,0)
2032- else
2033- a.substance = c.klass.new.initMargin(0,0,0,0)
1917+ bm1 = SWin::Bitmap.newBitmap(23,23)
1918+ 0.upto(self.bmp.width-1) do |i|
1919+ 0.upto(self.bmp.height-1) do |j|
1920+ clr = self.bmp[i,j]
1921+ bm1[i,j] = [clr[1],clr[2],clr[0]]
1922+ end
20341923 end
2035- else
2036- if c.klass <= VRGridLayoutFrame
2037- a.substance = c.klass.new(prnt.w,prnt.h).initMargin(0,0,0,0)
2038- else
2039- a.substance = c.klass.new.initMargin(0,0,0,0)
2040- end
1924+ self.bmp=bm1
20411925 end
2042- bm=SWin::Bitmap.loadString(c.bmp)
2043- bm1 = SWin::Bitmap.newBitmap(23,23)
2044- 0.upto(bm.width-1) do |i|
2045- 0.upto(bm.height-1) do |j|
2046- clr = bm[i,j]
2047- bm1[i,j] = [clr[1],clr[2],clr[0]]
2048- end
2049- end
2050- a.bmp=bm1
1926+ @substance.container = self
1927+ _x,_y,_w,_h= prnt.clientrect
1928+ prnt.sendMessage(WMsg::WM_SIZE,0,MAKELPARAM(_w,_h))
20511929 end
2052- a.substance.container = a
2053- _x,_y,_w,_h= prnt.clientrect
2054- prnt.sendMessage(WMsg::WM_SIZE,0,MAKELPARAM(_w,_h))
2055- set_cnt_attr(a,c)
2056- a
20571930 end
20581931
2059- def newFDModule(prnt,cnt,name,caption,x,y,w,h,addstyle=0,info=nil,ext=nil)
2060- c = findPalletItem(cnt)
2061- a=addControl(FDContainer,name,caption,x,y,w,h,addstyle )
2062- class << a
2063- def getItemsStr(option=nil) "" end
1932+ module NewFDModule
1933+ def getItemsStr(option=nil) "" end
20641934
2065- def set_attrs(a) end #do nothing
1935+ def set_attrs(a) end #do nothing
20661936
2067- def refreshItems(ar) end
1937+ def refreshItems(ar) end #do nothing
20681938
2069- def terminate() end
1939+ def terminate() end #do nothing
20701940
2071- def createSourceStr
2072- cnt=self.substance.class.name.sub /^.*::/,''
2073- sty = sprintf("%#x", style)
2074- r = " \#$_addControl(#{cnt},'#{name}',\"\",#{x},#{y},24,24)\n"
2075- r
2076- end
1941+ def createSourceStr
1942+ cnt=self.substance.class.name.sub /^.*::/,''
1943+ sty = sprintf("%#x", style)
1944+ r = " \#$_addControl(#{cnt},'#{name}',\"\",#{x},#{y},24,24)\n"
1945+ r
1946+ end
20771947
2078- def createMthodStr(s)
2079- str = s.sub /\(.*$/ , ''
2080- "#{str}"
2081- end
1948+ def createMthodStr(s)
1949+ str = s.sub /\(.*$/ , ''
1950+ "#{str}"
20821951 end
2083-
2084- a.substance = c.klass.new
2085- set_cnt_attr(a,c)
2086- a.bmp=SWin::Bitmap.loadString(c.bmp)
2087- a
1952+ def post_created(prnt,cnt,name,caption,x,y,w,h,addstyle,items,c)
1953+ @substance = c.klass.new
1954+ end
20881955 end
2089-
20901956 end
20911957
20921958 class FDContainer < VRBitmapPanel
@@ -2093,19 +1959,15 @@
20931959 include VRResizeable
20941960 attr_accessor :substance, :items
20951961 undef :addControl
2096- def construct
2097- self.top
2098- end
20991962
2100- def self_resize(x,y)
2101- self.move(self.x, self.y, 24, 24)
2102- end
1963+ def construct() self.top; end
1964+
1965+ def self_resize(x,y) self.move(self.x, self.y, 24, 24); end
21031966
2104- def self_destroy
2105- self.terminate if defined? self.terminate
2106- end
1967+ def self_destroy() self.terminate if defined? self.terminate; end
21071968 end
21081969
1970+=begin
21091971 module IgnoreFormDesigner
21101972 attr_accessor :ignore_formdesigner
21111973
@@ -2134,3 +1996,4 @@
21341996 extend IgnoreFormDesigner
21351997 end
21361998 end
1999+=end
\ No newline at end of file
--- formdesigner/1_0/fdvr/inner.rb (revision 70)
+++ formdesigner/1_0/fdvr/inner.rb (revision 71)
@@ -463,7 +463,7 @@
463463 r[7] = 0; r[8] = val
464464 elsif val && val == @__set_mgd_frame_args
465465 r = @current["addings"].find{|i| i[1] == vname.sub(/@/,'')}
466- r[7] = 0; r[8] = val[1..val.size-1]; r[9]= true
466+ r[7] = 0; r[8] = val[1..val.size-1]; r[8] << true
467467 elsif val && val == @__new_mgd_frame_args
468468 r = @current["addings"].find{|i| i[1] == vname.sub(/@/,'')}
469469 r[7] = 0; r[8] = val
@@ -594,6 +594,8 @@
594594 @current["modules"] << s[1]
595595 when s.scan(/\Adef +vrinit.*$/)
596596 @inDef = true
597+ when s.scan(/\Adef +__setup_.*$/) # methd which defined by FormDesiner.
598+ #do nothing
597599 when s.scan(/\Adef construct.*$/)
598600 @inDef = true
599601 when s.scan(/\A#\$_/) #this is fd_prefix
--- formdesigner/1_0/fdvr/user/buttonedit.rb (revision 70)
+++ formdesigner/1_0/fdvr/user/buttonedit.rb (revision 71)
@@ -1,93 +1,24 @@
11 #buttonedit
2-
32 require 'vr/vrcontrol'
43 require 'vr/vrowndraw'
54 require 'vr/vrhandler'
5+require "#{File.dirname(__FILE__)}/drawframes"
66
7-module DrawFrames
8- DFC_BUTTON = 4
9- DFCS_BUTTONCHECK = 0
10- DFCS_BUTTONRADIOIMAGE = 1
11- DFCS_BUTTONRADIOMASK = 2
12- DFCS_BUTTONRADIO = 4
13- DFCS_BUTTON3STATE = 8
14- DFCS_BUTTONPUSH = 16
15- DFCS_INACTIVE = 256
16- DFCS_PUSHED = 512
17- DFCS_CHECKED = 1024
18- DFCS_ADJUSTRECT = 0x2000
19- DFCS_FLAT = 0x4000
20- DFCS_MONO = 0x8000
21-
22- BDR_RAISEDOUTER = 0x0001
23- BDR_SUNKENOUTER = 0x0002
24- BDR_RAISEDINNER = 0x0004
25- BDR_SUNKENINNER = 0x0008
26-
27- BDR_OUTER = (BDR_RAISEDOUTER | BDR_SUNKENOUTER)
28- BDR_INNER = (BDR_RAISEDINNER | BDR_SUNKENINNER)
29- BDR_RAISED = (BDR_RAISEDOUTER | BDR_RAISEDINNER)
30- BDR_SUNKEN = (BDR_SUNKENOUTER | BDR_SUNKENINNER)
31-
32- EDGE_RAISED = (BDR_RAISEDOUTER | BDR_RAISEDINNER)
33- EDGE_SUNKEN = (BDR_SUNKENOUTER | BDR_SUNKENINNER)
34- EDGE_ETCHED = (BDR_SUNKENOUTER | BDR_RAISEDINNER)
35- EDGE_BUMP = (BDR_RAISEDOUTER | BDR_SUNKENINNER)
36-
37- #/* Border flags */
38- BF_LEFT = 0x0001
39- BF_TOP = 0x0002
40- BF_RIGHT = 0x0004
41- BF_BOTTOM = 0x0008
42-
43- BF_TOPLEFT = (BF_TOP | BF_LEFT)
44- BF_TOPRIGHT = (BF_TOP | BF_RIGHT)
45- BF_BOTTOMLEFT = (BF_BOTTOM | BF_LEFT)
46- BF_BOTTOMRIGHT = (BF_BOTTOM | BF_RIGHT)
47- BF_RECT = (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM)
48-
49- BF_DIAGONAL = 0x0010
50-
51-#// For diagonal lines, the BF_RECT flags specify the end point of the
52-#// vector bounded by the rectangle parameter.
53- BF_DIAGONAL_ENDTOPRIGHT = (BF_DIAGONAL | BF_TOP | BF_RIGHT)
54- BF_DIAGONAL_ENDTOPLEFT = (BF_DIAGONAL | BF_TOP | BF_LEFT)
55- BF_DIAGONAL_ENDBOTTOMLEFT = (BF_DIAGONAL | BF_BOTTOM | BF_LEFT)
56- BF_DIAGONAL_ENDBOTTOMRIGHT = (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT)
57-
58-
59- BF_MIDDLE = 0x0800 #/* Fill in the middle */
60- BF_SOFT = 0x1000 #/* For softer buttons */
61- BF_ADJUST = 0x2000 #/* Calculate the space left over */
62- BF_FLAT = 0x4000 #/* For flat rather than 3D borders */
63- BF_MONO = 0x8000 #/* For monochrome borders */
64-
65- DrawFrameControl=Win32API.new('user32','DrawFrameControl','LPII','I')
66- DrawEdge = Win32API.new('user32','DrawEdge','LPII','I')
67-end
68-
697 class ButtonEdit < VREdit
708 include VRDestroySensitive
719
72- alias org_caption caption
10+ alias org_caption caption
7311 alias org_caption= caption=
7412
75- def caption
76- @bt.caption if @bt
77- end
13+ def caption() @bt.caption if @bt; end
14+ def caption=(txt) return super unless @bt; @bt.caption = txt; end
7815
79- def caption=(txt)
80- return super unless @bt
81- @bt.caption = txt
82- end
16+ def text() self.org_caption; end
17+ def text=(s) self.org_caption = s; end
8318
84- def button_w
85- @bt.w
86- end
19+ def button_w() @bt.w; end
8720
88- def self_destroy
89- parent.deleteControl(@bt)
90- end
21+ def self_destroy() parent.deleteControl(@bt); end
9122 end
9223
9324 class ButtonEditL < ButtonEdit
@@ -99,16 +30,14 @@
9930 def ownerdraw(iid,action,state,hwnd,hdc,left,top,right,bottom,data)
10031 GC.disable
10132 self.opaque = false
102- rect1 = [left,top,right,bottom].pack('LLLL')
103- DrawEdge.call(hdc, rect1, BDR_SUNKENINNER | BDR_SUNKENOUTER,
104- BF_TOP | BF_LEFT | BF_BOTTOM | BF_RIGHT)
105- rect = [left+2,top+2,right,bottom-2].pack('LLLL')
33+ drawEdge(left, top, right, bottom, BDR_SUNKENINNER | BDR_SUNKENOUTER,
34+ BF_TOP | BF_LEFT | BF_BOTTOM | BF_RIGHT)
10635 if (pushed = ((state & 1)>0) ) # drawpushed
107- DrawFrameControl.call(hdc,rect,
108- DFC_BUTTON,DFCS_BUTTONPUSH|DFCS_PUSHED)
36+ drawFrameControl(left+2, top+2, right, bottom-2,
37+ DFC_BUTTON, DFCS_BUTTONPUSH | DFCS_PUSHED)
10938 drawText(self.caption,left+2,top+4,right-2,bottom-2,caption.size,1)
11039 else # drawreleased
111- DrawFrameControl.call(hdc,rect,DFC_BUTTON,DFCS_BUTTONPUSH)
40+ drawFrameControl(left+2,top+2,right,bottom-2,DFC_BUTTON,DFCS_BUTTONPUSH)
11241 drawText(caption,left,top+2,right-2,bottom-2,caption.size,1)
11342 end
11443 GC.enable
@@ -153,7 +82,6 @@
15382 org_move(x, y, w, h)
15483 end
15584 end
156-
15785 end
15886
15987 class ButtonEditR < ButtonEdit
@@ -164,17 +92,16 @@
16492 def ownerdraw(iid,action,state,hwnd,hdc,left,top,right,bottom,data)
16593 GC.disable
16694 self.opaque = false
167- rect1 = [left,top,right,bottom].pack('LLLL')
168- DrawEdge.call(hdc,rect1,BDR_SUNKENINNER|BDR_SUNKENOUTER,
169- BF_TOP | BF_RIGHT | BF_BOTTOM)
170- rect = [left,top+2,right-2,bottom-2].pack('LLLL')
95+ drawEdge(left, top, right, bottom, BDR_SUNKENINNER | BDR_SUNKENOUTER,
96+ BF_TOP | BF_RIGHT | BF_BOTTOM)
17197 if (pushed = ((state & 1)>0) ) # drawpushed
172- DrawFrameControl.call(hdc,rect,
173- DFC_BUTTON,DFCS_BUTTONPUSH|DFCS_PUSHED)
174- drawText(self.caption,left+2,top+4,right-2,bottom-2,caption.size,1)
98+ drawFrameControl(left, top+2, right-2, bottom-2, DFC_BUTTON,
99+ DFCS_BUTTONPUSH | DFCS_PUSHED)
100+ drawText(self.caption, left+2, top+4, right-2, bottom-2, caption.size, 1)
175101 else # drawreleased
176- DrawFrameControl.call(hdc,rect,DFC_BUTTON,DFCS_BUTTONPUSH)
177- drawText(caption,left,top+2,right-2,bottom-2,caption.size,1)
102+ drawFrameControl(left, top+2, right-2, bottom-2,
103+ DFC_BUTTON,DFCS_BUTTONPUSH)
104+ drawText(caption, left, top+2, right-2, bottom-2, caption.size, 1)
178105 end
179106 GC.enable
180107 end
@@ -229,8 +156,8 @@
229156 self.move(140,124,500,400)
230157 addControl ButtonEditL, 'bte1', 'a', 20, 10, 100, 22
231158 addControl ButtonEditR, 'bte2', 'a', 20, 40, 100, 22
232- @bte1.buttonwidth = 40
233- @bte2.buttonwidth = 40
159+ @bte1.button_w = 40
160+ @bte2.button_w = 40
234161 end
235162 end
236163
Show on old repository browser