wrb 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README +28 -0
- data/Rakefile +66 -0
- data/bin/wrb +41 -0
- data/bin/wrb.bat +6 -0
- data/ext/rwin/aatree.c +192 -0
- data/ext/rwin/aatree.h +55 -0
- data/ext/rwin/extconf.rb +47 -0
- data/ext/rwin/rw_api.c +2058 -0
- data/ext/rwin/rw_devices.c +215 -0
- data/ext/rwin/rw_gdiplus.h +278 -0
- data/ext/rwin/rw_graphics.c +1583 -0
- data/ext/rwin/rw_resources.c +1988 -0
- data/ext/rwin/rw_ubfuncs.c +281 -0
- data/ext/rwin/rw_windows.c +1936 -0
- data/ext/rwin/rwin.c +451 -0
- data/ext/rwin/rwin.h +442 -0
- data/lib/rwin.rb +820 -0
- data/lib/wrb.rb +20 -0
- data/lib/wrb/applications/frmdesigner/angle.cur +0 -0
- data/lib/wrb/applications/frmdesigner/angle2.cur +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Button.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Button.rb +34 -0
- data/lib/wrb/applications/frmdesigner/controls/Checkbox.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Checkbox.rb +10 -0
- data/lib/wrb/applications/frmdesigner/controls/Combobox.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Combobox.rb +88 -0
- data/lib/wrb/applications/frmdesigner/controls/ComboboxEx.rb +97 -0
- data/lib/wrb/applications/frmdesigner/controls/Comboboxex.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/DateTimePicker.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/DateTimePicker.rb +11 -0
- data/lib/wrb/applications/frmdesigner/controls/Edit.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Edit.rb +8 -0
- data/lib/wrb/applications/frmdesigner/controls/Groupbox.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Groupbox.rb +9 -0
- data/lib/wrb/applications/frmdesigner/controls/Hotkeyctrl.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Hotkeyctrl.rb +9 -0
- data/lib/wrb/applications/frmdesigner/controls/Imagelist.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Imagelist.rb +115 -0
- data/lib/wrb/applications/frmdesigner/controls/Listbox.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Listbox.rb +77 -0
- data/lib/wrb/applications/frmdesigner/controls/Listview.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Listview.rb +157 -0
- data/lib/wrb/applications/frmdesigner/controls/Menu.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Menu.rb +198 -0
- data/lib/wrb/applications/frmdesigner/controls/Menubar.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Menubar.rb +9 -0
- data/lib/wrb/applications/frmdesigner/controls/MonthCalender.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Monthcalender.rb +9 -0
- data/lib/wrb/applications/frmdesigner/controls/Panel.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Panel.rb +30 -0
- data/lib/wrb/applications/frmdesigner/controls/Progressbar.rb +10 -0
- data/lib/wrb/applications/frmdesigner/controls/Radiobutton.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Radiobutton.rb +13 -0
- data/lib/wrb/applications/frmdesigner/controls/Rebar.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Rebar.rb +162 -0
- data/lib/wrb/applications/frmdesigner/controls/Splitter.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Splitter.rb +66 -0
- data/lib/wrb/applications/frmdesigner/controls/Static.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Static.rb +9 -0
- data/lib/wrb/applications/frmdesigner/controls/Statusbar.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Statusbar.rb +103 -0
- data/lib/wrb/applications/frmdesigner/controls/Tabctrl.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Tabctrl.rb +136 -0
- data/lib/wrb/applications/frmdesigner/controls/Timer.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Timer.rb +36 -0
- data/lib/wrb/applications/frmdesigner/controls/Toolbar.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Toolbar.rb +165 -0
- data/lib/wrb/applications/frmdesigner/controls/Trackbar.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Trackbar.rb +34 -0
- data/lib/wrb/applications/frmdesigner/controls/Treeview.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Treeview.rb +107 -0
- data/lib/wrb/applications/frmdesigner/controls/Updown.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/Updown.rb +31 -0
- data/lib/wrb/applications/frmdesigner/controls/default.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/progressbar.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/controls/unselect.bmp +0 -0
- data/lib/wrb/applications/frmdesigner/fddialogs.rb +87 -0
- data/lib/wrb/applications/frmdesigner/fdesign.rb +1315 -0
- data/lib/wrb/applications/frmdesigner/fdmodules.rb +1394 -0
- data/lib/wrb/applications/frmdesigner/fdparseform.rb +197 -0
- data/lib/wrb/applications/frmdesigner/img13.bmp +0 -0
- data/lib/wrb/base.rb +1294 -0
- data/lib/wrb/combocommon.rb +77 -0
- data/lib/wrb/commctrlconst.rb +139 -0
- data/lib/wrb/commdlg.rb +77 -0
- data/lib/wrb/components/animate.rb +114 -0
- data/lib/wrb/components/bitmap.rb +116 -0
- data/lib/wrb/components/button.rb +134 -0
- data/lib/wrb/components/canvas.rb +266 -0
- data/lib/wrb/components/checkbox.rb +118 -0
- data/lib/wrb/components/choosecolordlg.rb +87 -0
- data/lib/wrb/components/choosefontdlg.rb +142 -0
- data/lib/wrb/components/clipboard.rb +174 -0
- data/lib/wrb/components/combobox.rb +282 -0
- data/lib/wrb/components/comboboxex.rb +574 -0
- data/lib/wrb/components/cursor.rb +91 -0
- data/lib/wrb/components/datetimepicker.rb +197 -0
- data/lib/wrb/components/ddeclient.rb +180 -0
- data/lib/wrb/components/ddeserver.rb +131 -0
- data/lib/wrb/components/dialog.rb +228 -0
- data/lib/wrb/components/edit.rb +412 -0
- data/lib/wrb/components/font.rb +35 -0
- data/lib/wrb/components/form.rb +65 -0
- data/lib/wrb/components/groupbox.rb +122 -0
- data/lib/wrb/components/header.rb +479 -0
- data/lib/wrb/components/hotkeyctrl.rb +72 -0
- data/lib/wrb/components/icon.rb +109 -0
- data/lib/wrb/components/imagelist.rb +396 -0
- data/lib/wrb/components/inifile.rb +97 -0
- data/lib/wrb/components/listbox.rb +149 -0
- data/lib/wrb/components/listview.rb +1467 -0
- data/lib/wrb/components/menu.rb +592 -0
- data/lib/wrb/components/menubar.rb +84 -0
- data/lib/wrb/components/monthcalender.rb +164 -0
- data/lib/wrb/components/openfilenamedlg.rb +147 -0
- data/lib/wrb/components/pager.rb +199 -0
- data/lib/wrb/components/panel.rb +103 -0
- data/lib/wrb/components/picture.rb +55 -0
- data/lib/wrb/components/printdlg.rb +148 -0
- data/lib/wrb/components/printdlgex.rb +117 -0
- data/lib/wrb/components/printer.rb +97 -0
- data/lib/wrb/components/progressbar.rb +140 -0
- data/lib/wrb/components/radiobutton.rb +49 -0
- data/lib/wrb/components/rebar.rb +830 -0
- data/lib/wrb/components/registry.rb +408 -0
- data/lib/wrb/components/richedit.rb +1181 -0
- data/lib/wrb/components/savefilenamedlg.rb +27 -0
- data/lib/wrb/components/scintilla.rb +1298 -0
- data/lib/wrb/components/scrollbar.rb +239 -0
- data/lib/wrb/components/splitter.rb +494 -0
- data/lib/wrb/components/static.rb +198 -0
- data/lib/wrb/components/statusbar.rb +490 -0
- data/lib/wrb/components/tabctrl.rb +686 -0
- data/lib/wrb/components/timer.rb +117 -0
- data/lib/wrb/components/toolbar.rb +1107 -0
- data/lib/wrb/components/tooltip.rb +651 -0
- data/lib/wrb/components/trackbar.rb +298 -0
- data/lib/wrb/components/treeview.rb +845 -0
- data/lib/wrb/components/updown.rb +198 -0
- data/lib/wrb/ddeml.rb +241 -0
- data/lib/wrb/documents/animate.html +46 -0
- data/lib/wrb/documents/bitmap.html +69 -0
- data/lib/wrb/documents/button.html +78 -0
- data/lib/wrb/documents/canvas.html +137 -0
- data/lib/wrb/documents/checkbox.html +77 -0
- data/lib/wrb/documents/choosecolordlg.html +29 -0
- data/lib/wrb/documents/choosefontdlg.html +31 -0
- data/lib/wrb/documents/clipboard.html +31 -0
- data/lib/wrb/documents/combobox.html +117 -0
- data/lib/wrb/documents/comboboxex.html +139 -0
- data/lib/wrb/documents/control.html +53 -0
- data/lib/wrb/documents/cursor.html +45 -0
- data/lib/wrb/documents/datetimepicker.html +70 -0
- data/lib/wrb/documents/ddeclient.html +33 -0
- data/lib/wrb/documents/ddeserver.html +26 -0
- data/lib/wrb/documents/dialog.html +78 -0
- data/lib/wrb/documents/edit.html +169 -0
- data/lib/wrb/documents/empty.html +11 -0
- data/lib/wrb/documents/favicon.png +0 -0
- data/lib/wrb/documents/font.html +38 -0
- data/lib/wrb/documents/form.html +63 -0
- data/lib/wrb/documents/groupbox.html +57 -0
- data/lib/wrb/documents/header.html +85 -0
- data/lib/wrb/documents/hotkeyctrl.html +42 -0
- data/lib/wrb/documents/icon.html +45 -0
- data/lib/wrb/documents/imagelist.html +101 -0
- data/lib/wrb/documents/images/button.png +0 -0
- data/lib/wrb/documents/images/checkbox.png +0 -0
- data/lib/wrb/documents/images/combobox.png +0 -0
- data/lib/wrb/documents/images/comboboxex.png +0 -0
- data/lib/wrb/documents/images/datetimepicker.png +0 -0
- data/lib/wrb/documents/images/edit.png +0 -0
- data/lib/wrb/documents/images/groupbox.png +0 -0
- data/lib/wrb/documents/images/hotkeyctrl.png +0 -0
- data/lib/wrb/documents/images/listbox.png +0 -0
- data/lib/wrb/documents/images/listview.png +0 -0
- data/lib/wrb/documents/images/menu.png +0 -0
- data/lib/wrb/documents/images/menubar.png +0 -0
- data/lib/wrb/documents/images/monthcalender.png +0 -0
- data/lib/wrb/documents/images/progressbar.png +0 -0
- data/lib/wrb/documents/images/radiobutton.png +0 -0
- data/lib/wrb/documents/images/rebar.png +0 -0
- data/lib/wrb/documents/images/richedit.png +0 -0
- data/lib/wrb/documents/images/splitter.png +0 -0
- data/lib/wrb/documents/images/static.png +0 -0
- data/lib/wrb/documents/images/statusbar.png +0 -0
- data/lib/wrb/documents/images/tabctrl.png +0 -0
- data/lib/wrb/documents/images/toolbar.png +0 -0
- data/lib/wrb/documents/images/tooltip.png +0 -0
- data/lib/wrb/documents/images/trackbar.png +0 -0
- data/lib/wrb/documents/images/treeview.png +0 -0
- data/lib/wrb/documents/images/updown.png +0 -0
- data/lib/wrb/documents/index.html +155 -0
- data/lib/wrb/documents/inifile.html +36 -0
- data/lib/wrb/documents/license.txt +22 -0
- data/lib/wrb/documents/listbox.html +96 -0
- data/lib/wrb/documents/listview.html +277 -0
- data/lib/wrb/documents/make_doc.rb +596 -0
- data/lib/wrb/documents/menu.html +144 -0
- data/lib/wrb/documents/menubar.html +54 -0
- data/lib/wrb/documents/monthcalender.html +48 -0
- data/lib/wrb/documents/openfilenamedlg.html +36 -0
- data/lib/wrb/documents/pager.html +63 -0
- data/lib/wrb/documents/panel.html +32 -0
- data/lib/wrb/documents/picture.html +48 -0
- data/lib/wrb/documents/printdlg.html +35 -0
- data/lib/wrb/documents/printdlgex.html +35 -0
- data/lib/wrb/documents/printer.html +40 -0
- data/lib/wrb/documents/progressbar.html +69 -0
- data/lib/wrb/documents/radiobutton.html +51 -0
- data/lib/wrb/documents/rebar.html +143 -0
- data/lib/wrb/documents/registry.html +36 -0
- data/lib/wrb/documents/richedit.html +232 -0
- data/lib/wrb/documents/samples/editimg.bmp +0 -0
- data/lib/wrb/documents/samples/editimg.iml +0 -0
- data/lib/wrb/documents/samples/fileimg.bmp +0 -0
- data/lib/wrb/documents/samples/fileimg.iml +0 -0
- data/lib/wrb/documents/samples/sample_button.rb +21 -0
- data/lib/wrb/documents/samples/sample_checkbox.rb +18 -0
- data/lib/wrb/documents/samples/sample_combobox.rb +18 -0
- data/lib/wrb/documents/samples/sample_comboboxex.rb +23 -0
- data/lib/wrb/documents/samples/sample_datetimepicker.rb +11 -0
- data/lib/wrb/documents/samples/sample_edit.rb +25 -0
- data/lib/wrb/documents/samples/sample_groupbox.rb +19 -0
- data/lib/wrb/documents/samples/sample_hotkeyctrl.rb +12 -0
- data/lib/wrb/documents/samples/sample_listbox.rb +12 -0
- data/lib/wrb/documents/samples/sample_listview.rb +32 -0
- data/lib/wrb/documents/samples/sample_menu.rb +21 -0
- data/lib/wrb/documents/samples/sample_menubar.rb +23 -0
- data/lib/wrb/documents/samples/sample_monthcalender.rb +11 -0
- data/lib/wrb/documents/samples/sample_progressbar.rb +14 -0
- data/lib/wrb/documents/samples/sample_radiobutton.rb +14 -0
- data/lib/wrb/documents/samples/sample_rebar.rb +25 -0
- data/lib/wrb/documents/samples/sample_richedit.rb +60 -0
- data/lib/wrb/documents/samples/sample_splitter.rb +33 -0
- data/lib/wrb/documents/samples/sample_static.rb +15 -0
- data/lib/wrb/documents/samples/sample_statusbar.rb +17 -0
- data/lib/wrb/documents/samples/sample_tabctrl.rb +19 -0
- data/lib/wrb/documents/samples/sample_toolbar.rb +29 -0
- data/lib/wrb/documents/samples/sample_tooltip.rb +50 -0
- data/lib/wrb/documents/samples/sample_trackbar.rb +30 -0
- data/lib/wrb/documents/samples/sample_treeview.rb +19 -0
- data/lib/wrb/documents/samples/sample_updown.rb +18 -0
- data/lib/wrb/documents/samples/sampleimg16.iml +0 -0
- data/lib/wrb/documents/samples/sampleimg32.iml +0 -0
- data/lib/wrb/documents/samples/samplemg16.png +0 -0
- data/lib/wrb/documents/samples/samplemg32.png +0 -0
- data/lib/wrb/documents/samples/wrb.ico +0 -0
- data/lib/wrb/documents/savefilenamedlg.html +19 -0
- data/lib/wrb/documents/scrollbar.html +60 -0
- data/lib/wrb/documents/splitter.html +96 -0
- data/lib/wrb/documents/static.html +84 -0
- data/lib/wrb/documents/statusbar.html +110 -0
- data/lib/wrb/documents/tabctrl.html +151 -0
- data/lib/wrb/documents/timer.html +43 -0
- data/lib/wrb/documents/toolbar.html +181 -0
- data/lib/wrb/documents/tooltip.html +131 -0
- data/lib/wrb/documents/trackbar.html +107 -0
- data/lib/wrb/documents/treeview.html +210 -0
- data/lib/wrb/documents/updown.html +85 -0
- data/lib/wrb/documents/wincontrol.html +258 -0
- data/lib/wrb/documents/window.html +499 -0
- data/lib/wrb/documents/wrb.css +228 -0
- data/lib/wrb/gmem.rb +26 -0
- data/lib/wrb/imecommon.rb +59 -0
- data/lib/wrb/listcommon.rb +185 -0
- data/lib/wrb/lzss.rb +126 -0
- data/lib/wrb/scrollinfo.rb +142 -0
- data/lib/wrb/toplevelcommon.rb +634 -0
- metadata +315 -0
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
require_relative '../fdmodules' if __FILE__ == $0
|
|
2
|
+
module WR
|
|
3
|
+
Rebar.extend ModFormDesigner
|
|
4
|
+
class Rebar
|
|
5
|
+
FDConfig[:classify] = :commonctrl
|
|
6
|
+
FDConfig[:attributes] = ['caption', 's'], ['position', 'ii'], ['size', 'ii'], ['margin', 'iiii,t'], ['font', 'sis,t'], ['imagelist', 'n']
|
|
7
|
+
FDConfig[:attr_tabs] = 'Attributes', 'Styles', 'Events', 'Bands'
|
|
8
|
+
|
|
9
|
+
def __fd_child_recreated(child)
|
|
10
|
+
id = child.__associated_band_id
|
|
11
|
+
bandinfo = REBARBANDINFO[REBARBANDINFO::Size, RC::RBBIM_CHILD]
|
|
12
|
+
bandinfo.hwndChild = child._hwnd
|
|
13
|
+
idx = SendMessage(RB_IDTOINDEX, id, 0)
|
|
14
|
+
SendMessage(RB_SETBANDINFO, idx, bandinfo)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def __fd_init_this_ctrl(option=nil)
|
|
18
|
+
self << [:band1, nil, "Band1"]
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def __fd_update_lv(lv)
|
|
22
|
+
lv.clear
|
|
23
|
+
each{|bd|
|
|
24
|
+
s = sprintf("%s\t%d\t%s\t%d\t%#x", bd.name.to_s, bd.iimage, bd.text, bd.size, bd.style)
|
|
25
|
+
lv << [s, nil, nil, bd]
|
|
26
|
+
}
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def __fd_set_lvitem(lv, ilist)
|
|
30
|
+
lv.viewmode = :reportview
|
|
31
|
+
lv.imagelist = ilist
|
|
32
|
+
lv.style &= ~LVS_NOCOLUMNHEADER
|
|
33
|
+
lv.columns = ['Name', 80], ['Img', 40], ['Text', 64], ['Size', 40], ['Style', 40]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def __fd_edit_item(lv, idx, subitem, ed)
|
|
37
|
+
txt = ed.text
|
|
38
|
+
begin
|
|
39
|
+
case subitem
|
|
40
|
+
when 0
|
|
41
|
+
self[idx].name = txt.intern
|
|
42
|
+
when 1
|
|
43
|
+
self[idx].iimage = txt.empty? ? nil : txt.to_i
|
|
44
|
+
when 2
|
|
45
|
+
self[idx].text = txt.empty? ? nil : txt.to_s
|
|
46
|
+
when 3
|
|
47
|
+
self[idx].size = txt.empty? ? 0 : txt.to_i
|
|
48
|
+
(cw=self[idx].childwin) && cw.w = self[idx].size
|
|
49
|
+
when 4
|
|
50
|
+
case txt
|
|
51
|
+
when /^0[xX]/
|
|
52
|
+
val = txt.to_i(16)
|
|
53
|
+
when /[0-9]+/
|
|
54
|
+
val = txt.to_i
|
|
55
|
+
else
|
|
56
|
+
val = 0
|
|
57
|
+
txt.split(',').each{|i| val |= RbbStyles[i.strip.intern].to_i}
|
|
58
|
+
end
|
|
59
|
+
self[idx].style = val
|
|
60
|
+
end
|
|
61
|
+
rescue => err
|
|
62
|
+
$fd_main_frm.MessageBox "#{err}", "FormDesigner", 0x10
|
|
63
|
+
end
|
|
64
|
+
__fd_update_lv(lv)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def __fd_on_lv_rclick(lv, idx)
|
|
68
|
+
[:additem, "Add", :sep, :deleteitem, "Delete"]
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def __fd_on_additem(lv, idx, *)
|
|
72
|
+
sname = get_toplevel_win.suffixed_name('band1')
|
|
73
|
+
self << [sname.intern, nil, sname.to_s.capitalize]
|
|
74
|
+
__fd_update_lv(lv)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def __fd_on_deleteitem(lv, idx)
|
|
78
|
+
ct = controls.find{|i| i.__associated_band_id == self[idx].idcmd}
|
|
79
|
+
if ct
|
|
80
|
+
if ct.respond_to?(:__fd_items_src)
|
|
81
|
+
frm = ct.get_toplevel_win
|
|
82
|
+
lns = frm.__fd_src[:lines]
|
|
83
|
+
col, len, lsrc = ct.__fd_items_src
|
|
84
|
+
lns.delete_if{|i| i.__id__ == lsrc.__id__}
|
|
85
|
+
end
|
|
86
|
+
ct.delete
|
|
87
|
+
end
|
|
88
|
+
self[idx].delete
|
|
89
|
+
__fd_update_lv(lv)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def __fd_add_ctrl(x, y, ct)
|
|
93
|
+
idx = hittest(x-self.x, y-self.y)
|
|
94
|
+
if ct.is_a?(Toolbar)
|
|
95
|
+
ct.style |= CCS_NORESIZE | CCS_NODIVIDER
|
|
96
|
+
end
|
|
97
|
+
self[idx].size = ct.w
|
|
98
|
+
self[idx].idealsize = ct.w
|
|
99
|
+
self[idx].childwin = ct
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def __fd_output_items(lns, curln, indent)
|
|
103
|
+
ar = []
|
|
104
|
+
ps = __fd_get_parents_str2
|
|
105
|
+
each{|b|
|
|
106
|
+
if cw=b.childwin #;dpp b.size, b.idealsize
|
|
107
|
+
cw.w = b.size
|
|
108
|
+
_x = cw.x
|
|
109
|
+
_y = cw.y
|
|
110
|
+
cw.x = cw.y = 0
|
|
111
|
+
ar << sprintf("#{ps} << [%p, %p, %p, %p, %#x, %s]", b.name, b.iimage,
|
|
112
|
+
b.text.empty? ? nil : b.text, b.size, b.style, cw.__fd_to_str_core(nil))
|
|
113
|
+
cw.x = _x
|
|
114
|
+
cw.y = _y
|
|
115
|
+
else
|
|
116
|
+
ar << sprintf("#{ps} << [%p, %p, %p, %p, %#x]", b.name, b.iimage,
|
|
117
|
+
b.text.empty? ? nil : b.text, b.size, b.style)
|
|
118
|
+
end
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
curln = __fd_set_items_srcs(lns, curln, indent, ar)
|
|
122
|
+
controls.each{|i|
|
|
123
|
+
curln = i.__fd_output_items(lns, curln, indent) if i.respond_to?(:__fd_output_items)
|
|
124
|
+
}
|
|
125
|
+
curln
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def __fd_item_loaded(item, asrc) #dpp @__fd_items_srcs #, controls
|
|
129
|
+
extend ModFDItemsSrcLine unless @__fd_items_srcs
|
|
130
|
+
@__fd_items_srcs << asrc
|
|
131
|
+
controls.each{|i| #; dpp i.event_registered?(WM_DESTROY, '__fd_destroy')
|
|
132
|
+
next if i.event_registered?(WM_DESTROY, '__fd_destroy')
|
|
133
|
+
i.extend(ModControlHook)
|
|
134
|
+
# id = i.__associated_band_id
|
|
135
|
+
# band = _band_id2ref(id)
|
|
136
|
+
}
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
# def __fd_output_items__(lns, curln, indent)
|
|
140
|
+
# ar = []
|
|
141
|
+
# each{|b|
|
|
142
|
+
# if cw=b.childwin
|
|
143
|
+
# ar << sprintf("[%p, %p, %p, %#x, %s]", b.name, b.iimage,
|
|
144
|
+
# b.text.empty? ? nil : b.text, b.style, cw.__fd_to_str_core(nil))
|
|
145
|
+
# else
|
|
146
|
+
# ar << sprintf("[%p, %p, %p, %#x]", b.name, b.iimage,
|
|
147
|
+
# b.text.empty? ? nil : b.text, b.style)
|
|
148
|
+
# end
|
|
149
|
+
# }
|
|
150
|
+
# if ar.empty?
|
|
151
|
+
# __fd_delete_items_src(self, lns)
|
|
152
|
+
# else
|
|
153
|
+
# s = __fd_get_parents_str2 + " << [#{ar.join(', ')}]"
|
|
154
|
+
# __fd_set_items_src(self, lns, curln+=1, indent, s)
|
|
155
|
+
# end
|
|
156
|
+
# controls.each{|i|
|
|
157
|
+
# curln = i.__fd_output_items(lns, curln, indent) if i.respond_to?(:__fd_output_items)
|
|
158
|
+
# }
|
|
159
|
+
# curln
|
|
160
|
+
# end
|
|
161
|
+
end
|
|
162
|
+
end
|
|
Binary file
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
require_relative '../fdmodules' if __FILE__ == $0
|
|
2
|
+
module WR
|
|
3
|
+
Splitter.extend ModFormDesigner
|
|
4
|
+
class Splitter
|
|
5
|
+
FDConfig[:default_size] = [6, 6]
|
|
6
|
+
FDConfig[:attributes] = ['position', 'ii'], ['margin', 'iiii,t'], ['direction', 'm', :vert], ['face', 'm', :vert], ['thickness', 'i'], ['limit', 'ii', [0, 0]]
|
|
7
|
+
FDConfig[:attr_tabs] = 'Attributes', 'Styles', 'Events', 'Panes'
|
|
8
|
+
|
|
9
|
+
def __fd_update_lv(lv)
|
|
10
|
+
lv.clear
|
|
11
|
+
lv << (direction==:horiz ? "Upper" : "Left")
|
|
12
|
+
lv.last.data = 0
|
|
13
|
+
lu_pane.each{|i| lv << "\t#{i.name}"; lv.last.data = 0}
|
|
14
|
+
lv << (direction==:horiz ? "Lower" : "Right")
|
|
15
|
+
lv.last.data = 1
|
|
16
|
+
rl_pane.each{|i| lv << "\t#{i.name}"; lv.last.data = 1}
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def __fd_set_lvitem(lv, ilist)
|
|
20
|
+
lv.viewmode = :reportview
|
|
21
|
+
lv.imagelist = ilist
|
|
22
|
+
lv.columns = ['Panes', 80], ['Controls', 160]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def __fd_on_lv_rclick(lv, idx)
|
|
26
|
+
ar = parent.controls.select{|i| i.is_a?(Window) && i!=self && !i.respond_to?(:__ownedbysplitter)}.map{|i| [:additem, i.name.to_s]}
|
|
27
|
+
mn = Menu[:ctrls, "Add Control", *ar]
|
|
28
|
+
[mn, :sep, :deleteitem, "Remove"]
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def __fd_on_additem(lv, idx, mnu, id)
|
|
32
|
+
ctl = parent.controls.__send__(mnu.ctrls[id].caption.intern)
|
|
33
|
+
parent.controls.delete_at(parent.controls.index(ctl))
|
|
34
|
+
parent.controls[parent.controls.index(self)+1, 0] = ctl
|
|
35
|
+
|
|
36
|
+
if lns = ctl._toplevelwin.__fd_src[:lines]
|
|
37
|
+
idx1 = lns.index{|i| i.respond_to?(:binded_obj) && i.binded_obj==ctl}
|
|
38
|
+
idx2 = lns.index{|i| i.respond_to?(:binded_obj) && i.binded_obj==self}
|
|
39
|
+
lns.insert(idx2+1, lns.delete_at(idx1)) if idx1 && idx2
|
|
40
|
+
end
|
|
41
|
+
if lv[idx].data == 0 # lu_pane
|
|
42
|
+
lu_pane << ctl
|
|
43
|
+
else
|
|
44
|
+
rl_pane << ctl
|
|
45
|
+
end
|
|
46
|
+
# dpp parent.controls
|
|
47
|
+
__fd_update_lv(lv)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def __fd_on_deleteitem(lv, idx)
|
|
51
|
+
if lv[idx].data == 0 # lu_pane
|
|
52
|
+
lu_pane.delete(parent.controls.__send__(lv[idx][1].intern))
|
|
53
|
+
else
|
|
54
|
+
rl_pane.delete(parent.controls.__send__(lv[idx][1].intern))
|
|
55
|
+
end
|
|
56
|
+
__fd_update_lv(lv)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def __fd_output_items(lns, curln, indent)
|
|
60
|
+
pt = __fd_get_parents_str2 #; dpp pt
|
|
61
|
+
lu_pane.each{|i| i.__fd_tmp_parent_str = "#{pt}.lu_pane"}
|
|
62
|
+
rl_pane.each{|i| i.__fd_tmp_parent_str = "#{pt}.rl_pane"}
|
|
63
|
+
curln
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
Binary file
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
require_relative '../fdmodules' if __FILE__ == $0
|
|
2
|
+
module WR
|
|
3
|
+
Static.extend ModFormDesigner
|
|
4
|
+
class Static
|
|
5
|
+
FDConfig[:default_size] = [80, 16]
|
|
6
|
+
FDConfig[:attributes] = ['caption', 's'], ['position', 'ii'], ['size', 'ii'], ['margin', 'iiii,t'], ['font', 'sis,t']
|
|
7
|
+
FDConfig[:altanate_mask] = [RC::SS_TYPEMASK, RC::SS_ELLIPSISMASK]
|
|
8
|
+
end
|
|
9
|
+
end
|
|
Binary file
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
require_relative '../fdmodules' if __FILE__ == $0
|
|
2
|
+
module WR
|
|
3
|
+
Statusbar.extend ModFormDesigner
|
|
4
|
+
class Statusbar
|
|
5
|
+
FDConfig[:classify] = :commonctrl
|
|
6
|
+
FDConfig[:default_size] = [0, 30]
|
|
7
|
+
FDConfig[:attributes] = ['caption', 's'], ['position', 'ii'], ['size', 'ii'], ['margin', 'iiii,t'], ['font', 'sis,t'], ['simple', 'b'], ['imagelist', 'n']
|
|
8
|
+
FDConfig[:attr_tabs] = 'Attributes', 'Styles', 'Events', 'Parts'
|
|
9
|
+
FDConfig[:have_controls] = true
|
|
10
|
+
|
|
11
|
+
def __fd_update_lv(lv)
|
|
12
|
+
lv.clear
|
|
13
|
+
count.times{|i|
|
|
14
|
+
pt = self[i]; #dpp pt.width, pt.text, pt.iimage.to_s, pt.type
|
|
15
|
+
s = sprintf("%d\t%s\t%s\t%#x", pt.width, pt.text.to_s, pt.iimage.to_s, pt.type.to_i)
|
|
16
|
+
lv << [s, nil, nil, pt]
|
|
17
|
+
}
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def __fd_set_lvitem(lv, ilist)
|
|
21
|
+
lv.viewmode = :reportview
|
|
22
|
+
lv.imagelist = ilist
|
|
23
|
+
lv.style &= ~LVS_NOCOLUMNHEADER
|
|
24
|
+
lv.columns = ['Width',56],['Text', 136], ['Img', 32],['Type', 40]
|
|
25
|
+
__fd_update_lv(lv)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def __fd_edit_item(lv, idx, subitem, ed)
|
|
29
|
+
data = lv[idx].data
|
|
30
|
+
txt = ed.text
|
|
31
|
+
begin
|
|
32
|
+
case subitem
|
|
33
|
+
when 0
|
|
34
|
+
self[idx].width = txt.to_i
|
|
35
|
+
when 1
|
|
36
|
+
self[idx].text = txt.to_s
|
|
37
|
+
when 2
|
|
38
|
+
self[idx].iimage = txt.empty? ? nil : txt.to_i
|
|
39
|
+
when 3
|
|
40
|
+
case txt
|
|
41
|
+
when /^0[xX]/
|
|
42
|
+
val = txt.to_i(16)
|
|
43
|
+
when /[0-9]+/
|
|
44
|
+
val = txt.to_i
|
|
45
|
+
end
|
|
46
|
+
self[idx].type = val
|
|
47
|
+
end
|
|
48
|
+
__fd_update_lv(lv)
|
|
49
|
+
rescue => err
|
|
50
|
+
$fd_main_frm.MessageBox "#{err}", "FormDesigner", 0x10
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def __fd_on_lv_rclick(lv, idx)
|
|
55
|
+
[:additem, "Add", :insertitem, "Insert", :sep, :deleteitem, "Delete"]
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def __fd_on_additem(lv, idx, *)
|
|
59
|
+
self << [100, ""]
|
|
60
|
+
__fd_update_lv(lv)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def __fd_on_insertitem(lv, idx)
|
|
64
|
+
self[idx, 0] = [100, ""]
|
|
65
|
+
__fd_update_lv(lv)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def __fd_on_deleteitem(lv, idx)
|
|
69
|
+
delete(idx)
|
|
70
|
+
__fd_update_lv(lv)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def __fd_output_items(lns, curln, indent)
|
|
74
|
+
ps = __fd_get_parents_str2
|
|
75
|
+
ar = []
|
|
76
|
+
each{|i| ar << ps + " << " + sprintf("[%p, %p, %p, #{i.type ? '%#x' : '%p'}]",
|
|
77
|
+
i.width, i.text, i.iimage, i.type)}
|
|
78
|
+
__fd_set_items_srcs(lns, curln, indent, ar)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def __fd_item_loaded(item, asrc)
|
|
82
|
+
extend ModFDItemsSrcLine unless @__fd_items_srcs
|
|
83
|
+
@__fd_items_srcs << asrc
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def __fd_on_delete_this()
|
|
87
|
+
return unless lns = @_toplevelwin.__fd_src[:lines]
|
|
88
|
+
__fd_delete_items_srcs(lns)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def __fd_output_items__(lns, curln, indent)
|
|
92
|
+
ar = []
|
|
93
|
+
each{|i| ar << sprintf("[%p, %p, %p, #{i.type ? '%#x' : '%p'}]", i.width, i.text, i.iimage, i.type)}
|
|
94
|
+
if ar.empty?
|
|
95
|
+
__fd_delete_items_src(self, lns)
|
|
96
|
+
else
|
|
97
|
+
s = __fd_get_parents_str2 + " << [#{ar.join(', ')}]"
|
|
98
|
+
__fd_set_items_src(self, lns, curln+=1, indent, s)
|
|
99
|
+
end
|
|
100
|
+
curln
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
Binary file
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
require_relative '../fdmodules' if __FILE__ == $0
|
|
2
|
+
module WR
|
|
3
|
+
Tabctrl.extend ModFormDesigner
|
|
4
|
+
class Tabctrl
|
|
5
|
+
FDConfig[:classify] = :commonctrl
|
|
6
|
+
FDConfig[:no_hookwndproc] = true
|
|
7
|
+
FDConfig[:default_size] = [128, 128]
|
|
8
|
+
FDConfig[:attributes] = ['position', 'ii'], ['size', 'ii'], ['margin', 'iiii,t'], ['font', 'sis,t'], ['inheritfont','si,t'], ['imagelist','n'], ['mintabwidth','i']#, ['tabs','a']
|
|
9
|
+
FDConfig[:attr_tabs] = 'Attributes', 'Styles', 'Events', 'Tabs'
|
|
10
|
+
FDConfig[:have_controls] = true
|
|
11
|
+
FDConfig[:tabs_get] = lambda{|ctl, ar| ar.empty? ? '' : ar.map{|i| i.text}}
|
|
12
|
+
FDConfig[:tabs_set] = lambda{|ctl, ar| ar==[""] ? nil : ar}
|
|
13
|
+
|
|
14
|
+
def __fd_update_lv(lv)
|
|
15
|
+
lv.clear
|
|
16
|
+
@_tabs.each_with_index{|tab, idx|
|
|
17
|
+
lv << "#{tab.text}\t#{tab.image>=0 ? tab.image : ''}"
|
|
18
|
+
lv.last.data = idx
|
|
19
|
+
self[idx].controls.each{|i|
|
|
20
|
+
lv << "\t\t#{i.name}"
|
|
21
|
+
lv.last.data = idx
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def __fd_set_lvitem(lv, ilist)
|
|
27
|
+
lv.viewmode = :reportview
|
|
28
|
+
lv.imagelist = ilist
|
|
29
|
+
lv.style &= ~LVS_NOCOLUMNHEADER
|
|
30
|
+
lv.columns = ['TabText', 104], ['Img', 32], ['Controls', 128]
|
|
31
|
+
__fd_update_lv(lv)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def __fd_edit_item(lv, idx, subitem, ed)
|
|
35
|
+
str = lv[idx].text
|
|
36
|
+
data = lv[idx].data
|
|
37
|
+
stbr = lv.get_toplevel_win._stbr1
|
|
38
|
+
case subitem
|
|
39
|
+
when 0
|
|
40
|
+
self[data].text = ed.text unless ed.text.empty?
|
|
41
|
+
when 1
|
|
42
|
+
self[data].image = ed.text.to_i unless ed.text.empty?
|
|
43
|
+
when 2
|
|
44
|
+
ed.hide
|
|
45
|
+
end
|
|
46
|
+
refresh
|
|
47
|
+
__fd_update_lv(lv)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def __fd_on_lv_rclick(lv, idx)
|
|
51
|
+
if idx < 0
|
|
52
|
+
[:addnode, "Add Tab"]
|
|
53
|
+
else
|
|
54
|
+
ar = controls.inject([]){|r, i| r << i.name.to_s unless i.respond_to?(:_owner); r}
|
|
55
|
+
a = []
|
|
56
|
+
count.times{|i| self[i].controls.each{|j| a << j.name.to_s}}
|
|
57
|
+
ar -= a
|
|
58
|
+
ar.map!{|i| [:additem, i]}.flatten!
|
|
59
|
+
mn = Menu[:ctrls, "Add Control", *ar]
|
|
60
|
+
[:addnode, "Add Tab", mn, :sep, :deleteitem, "Remove"]
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def __fd_on_additem(lv, idx, mnu, id)
|
|
65
|
+
self[lv[idx].data] << controls.__send__(mnu.ctrls[id].caption.intern)
|
|
66
|
+
__fd_update_lv(lv)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def __fd_on_addnode(lv, idx)
|
|
70
|
+
self << "Tab#{count+1}"
|
|
71
|
+
__fd_update_lv(lv)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def __fd_on_deleteitem(lv, idx)
|
|
75
|
+
return if idx < 0
|
|
76
|
+
tabidx = lv[idx].data
|
|
77
|
+
if lv[idx][1].empty?
|
|
78
|
+
self[tabidx].delete
|
|
79
|
+
else
|
|
80
|
+
self[tabidx].controls.delete(self.__send__(("_"+lv[idx][1]).intern))
|
|
81
|
+
end
|
|
82
|
+
__fd_update_lv(lv)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def __fd_output_items(lns, curln, indent)
|
|
86
|
+
if @_tabs.empty?
|
|
87
|
+
__fd_delete_items_srcs(lns)
|
|
88
|
+
else
|
|
89
|
+
ps = __fd_get_parents_str2
|
|
90
|
+
# ar = @_tabs.inject([]){|a, i|
|
|
91
|
+
# a << "#{ps} << " + (i.image<0 ? "\"#{i.text}\"" : "[\"#{i.text}\", #{i.image}]")
|
|
92
|
+
# }
|
|
93
|
+
# curln = __fd_set_items_srcs(lns, curln, indent, ar)
|
|
94
|
+
ar = @_tabs.inject([]){|a, i|
|
|
95
|
+
a << (i.image<0 ? "\"#{i.text}\"" : "[\"#{i.text}\", #{i.image}]")
|
|
96
|
+
}
|
|
97
|
+
s = ar.size==1 ? ar[0] : "[#{ar.join(', ')}]"
|
|
98
|
+
curln = __fd_set_items_srcs(lns, curln, indent, ["#{ps} << #{s}"])
|
|
99
|
+
|
|
100
|
+
end
|
|
101
|
+
count.times{|i|
|
|
102
|
+
self[i].controls.each{|j| j.__fd_tmp_parent_str = "#{ps}[#{i}]"}
|
|
103
|
+
}
|
|
104
|
+
curln
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def __fd_item_loaded(item, asrc)
|
|
108
|
+
extend ModFDItemsSrcLine unless @__fd_items_srcs
|
|
109
|
+
@__fd_items_srcs << asrc
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def __fd_on_delete_this()
|
|
113
|
+
return unless lns = @_toplevelwin.__fd_src[:lines]
|
|
114
|
+
__fd_delete_items_srcs(lns)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
# def __fd_output_items__(lns, curln, indent)
|
|
118
|
+
# if @_tabs.empty?
|
|
119
|
+
# __fd_delete_items_src(@_tabs, lns)
|
|
120
|
+
# else
|
|
121
|
+
# s = @_tabs.inject([]){|a, i|
|
|
122
|
+
# a << (i.image<0 ? "\"#{i.text}\"" : "[\"#{i.text}\", #{i.image}]")
|
|
123
|
+
# }.join(', ')
|
|
124
|
+
# s = __fd_get_parents_str2 + " << [#{s}]"
|
|
125
|
+
# __fd_set_items_src(@_tabs, lns, curln+=1, indent, s)
|
|
126
|
+
# end
|
|
127
|
+
#
|
|
128
|
+
# ps = __fd_get_parents_str2
|
|
129
|
+
# count.times{|i|
|
|
130
|
+
# self[i].controls.each{|j| j.__fd_tmp_parent_str = "#{ps}[#{i}]"}
|
|
131
|
+
# }
|
|
132
|
+
# curln
|
|
133
|
+
# end
|
|
134
|
+
|
|
135
|
+
end
|
|
136
|
+
end
|