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,77 @@
|
|
|
1
|
+
# Common constants and methods between Combobox and ComboboxEx
|
|
2
|
+
|
|
3
|
+
require 'wrb'
|
|
4
|
+
module WR::RC
|
|
5
|
+
|
|
6
|
+
CBS_SIMPLE = 0x0001
|
|
7
|
+
CBS_DROPDOWN = 0x0002
|
|
8
|
+
CBS_DROPDOWNLIST = 0x0003
|
|
9
|
+
|
|
10
|
+
CB_LIMITTEXT = 0x0141
|
|
11
|
+
CB_DELETESTRING = 0x0144
|
|
12
|
+
CB_GETCOUNT = 0x0146
|
|
13
|
+
CB_GETCURSEL = 0x0147
|
|
14
|
+
CB_GETLBTEXT = 0x0148
|
|
15
|
+
CB_GETLBTEXTLEN = 0x0149
|
|
16
|
+
CB_RESETCONTENT = 0x014b
|
|
17
|
+
CB_SETCURSEL = 0x014e
|
|
18
|
+
CB_SHOWDROPDOWN = 0x014f
|
|
19
|
+
CB_GETITEMDATA = 0x0150
|
|
20
|
+
CB_SETITEMDATA = 0x0151
|
|
21
|
+
CB_GETDROPPEDCONTROLRECT = 0x0152
|
|
22
|
+
CB_SETITEMHEIGHT = 0x0153
|
|
23
|
+
CB_GETITEMHEIGHT = 0x0154
|
|
24
|
+
CB_SETEXTENDEDUI = 0x0155
|
|
25
|
+
CB_GETEXTENDEDUI = 0x0156
|
|
26
|
+
CB_GETDROPPEDSTATE = 0x0157
|
|
27
|
+
CB_FINDSTRINGEXACT = 0x0158
|
|
28
|
+
CB_GETDROPPEDWIDTH = 0x015f
|
|
29
|
+
CB_SETDROPPEDWIDTH = 0x0160
|
|
30
|
+
|
|
31
|
+
CBN_SELCHANGE = 0x01
|
|
32
|
+
CBN_DBLCLK = 0x02
|
|
33
|
+
CBN_SETFOCUS = 0x03
|
|
34
|
+
CBN_KILLFOCUS = 0x04
|
|
35
|
+
CBN_EDITCHANGE = 0x05
|
|
36
|
+
CBN_EDITUPDATE = 0x06
|
|
37
|
+
CBN_DROPDOWN = 0x07
|
|
38
|
+
CBN_CLOSEUP = 0x08
|
|
39
|
+
CBN_SELENDOK = 0x09
|
|
40
|
+
CBN_SELENDCANCEL = 0x0a
|
|
41
|
+
|
|
42
|
+
module ModComboCommon
|
|
43
|
+
def h=(ht)
|
|
44
|
+
@_droppedheight = ht if ht > self.h
|
|
45
|
+
super
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def droppedheight()
|
|
49
|
+
@_droppedheight
|
|
50
|
+
end
|
|
51
|
+
def droppedheight=(h)
|
|
52
|
+
self.h = @_droppedheight = h
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def droppedsize()
|
|
56
|
+
if alive?
|
|
57
|
+
rc = RECT.new
|
|
58
|
+
SendMessage(CB_GETDROPPEDCONTROLRECT, 0, rc)
|
|
59
|
+
[rc.right-rc.left, rc.bottom-rc.top]
|
|
60
|
+
else
|
|
61
|
+
[@_droppedwidth, @_droppedheight]
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def resize(w, h)
|
|
66
|
+
@_droppedheight = h if h > self.h
|
|
67
|
+
super
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def move(*args)
|
|
71
|
+
ht = args[3]
|
|
72
|
+
super
|
|
73
|
+
@_droppedheight = ht if ht && ht > self.h
|
|
74
|
+
self
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Common module and constants for common controls
|
|
2
|
+
|
|
3
|
+
require 'wrb'
|
|
4
|
+
module WR
|
|
5
|
+
module RC
|
|
6
|
+
ICC_LISTVIEW_CLASSES = 0x1
|
|
7
|
+
ICC_TREEVIEW_CLASSES = 0x2
|
|
8
|
+
ICC_BAR_CLASSES = 0x4
|
|
9
|
+
ICC_TAB_CLASSES = 0x8
|
|
10
|
+
ICC_UPDOWN_CLASS = 0x10
|
|
11
|
+
ICC_PROGRESS_CLASS = 0x20
|
|
12
|
+
ICC_HOTKEY_CLASS = 0x40
|
|
13
|
+
ICC_ANIMATE_CLASS = 0x80
|
|
14
|
+
ICC_WIN95_CLASSES = 0xff
|
|
15
|
+
ICC_DATE_CLASSES = 0x100
|
|
16
|
+
ICC_USEREX_CLASSES = 0x200
|
|
17
|
+
ICC_COOL_CLASSES = 0x400
|
|
18
|
+
ICC_INTERNET_CLASSES = 0x800
|
|
19
|
+
ICC_PAGESCROLLER_CLASS = 0x1000
|
|
20
|
+
ICC_NATIVEFNTCTL_CLASS = 0x2000
|
|
21
|
+
ICC_STANDARD_CLASSES = 0x4000
|
|
22
|
+
ICC_LINK_CLASS = 0x8000
|
|
23
|
+
|
|
24
|
+
CCS_TOP = 0x1
|
|
25
|
+
CCS_NOMOVEY = 0x2
|
|
26
|
+
CCS_BOTTOM = 0x3
|
|
27
|
+
CCS_NORESIZE = 0x4
|
|
28
|
+
CCS_NOPARENTALIGN = 0x8
|
|
29
|
+
CCS_ADJUSTABLE = 0x20
|
|
30
|
+
CCS_NODIVIDER = 0x40
|
|
31
|
+
CCS_VERT = 0x80
|
|
32
|
+
CCS_LEFT = CCS_VERT | CCS_TOP
|
|
33
|
+
CCS_RIGHT = CCS_VERT | CCS_BOTTOM
|
|
34
|
+
CCS_NOMOVEX = CCS_VERT | CCS_NOMOVEY
|
|
35
|
+
|
|
36
|
+
CCM_FIRST = 0x2000
|
|
37
|
+
CCM_SETBKCOLOR = CCM_FIRST+0x1
|
|
38
|
+
CCM_SETCOLORSCHEME = CCM_FIRST+0x2
|
|
39
|
+
CCM_GETCOLORSCHEME = CCM_FIRST+0x3
|
|
40
|
+
CCM_GETDROPTARGET = CCM_FIRST+0x4
|
|
41
|
+
CCM_SETUNICODEFORMAT = CCM_FIRST+0x5
|
|
42
|
+
CCM_GETUNICODEFORMAT = CCM_FIRST+0x6
|
|
43
|
+
CCM_SETVERSION = CCM_FIRST+0x7
|
|
44
|
+
CCM_GETVERSION = CCM_FIRST+0x8
|
|
45
|
+
CCM_SETNOTIFYWINDOW = CCM_FIRST+0x9
|
|
46
|
+
CCM_SETWINDOWTHEME = CCM_FIRST+0xb
|
|
47
|
+
CCM_DPISCALE = CCM_FIRST+0xc
|
|
48
|
+
|
|
49
|
+
NM_FIRST = 0
|
|
50
|
+
NM_CLICK = NM_FIRST-2
|
|
51
|
+
NM_DBLCLK = NM_FIRST-3
|
|
52
|
+
NM_RETURN = NM_FIRST-4
|
|
53
|
+
NM_RCLICK = NM_FIRST-5
|
|
54
|
+
NM_RDBLCLK = NM_FIRST-6
|
|
55
|
+
NM_SETFOCUS = NM_FIRST-7
|
|
56
|
+
NM_KILLFOCUS = NM_FIRST-8
|
|
57
|
+
NM_CUSTOMDRAW = NM_FIRST-12
|
|
58
|
+
NM_HOVER = NM_FIRST-13
|
|
59
|
+
NM_NCHITTEST = NM_FIRST-14
|
|
60
|
+
NM_KEYDOWN = NM_FIRST-15
|
|
61
|
+
NM_RELEASEDCAPTURE = NM_FIRST-16
|
|
62
|
+
NM_SETCURSOR = NM_FIRST-17
|
|
63
|
+
NM_CHAR = NM_FIRST-18
|
|
64
|
+
NM_TOOLTIPSCREATED = NM_FIRST-19
|
|
65
|
+
NM_LDOWN = NM_FIRST-20
|
|
66
|
+
NM_RDOWN = NM_FIRST-21
|
|
67
|
+
NM_THEMECHANGED = NM_FIRST-22
|
|
68
|
+
|
|
69
|
+
I_IMAGECALLBACK = -1
|
|
70
|
+
I_IMAGENONE = -2
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
module ModCommCtrl
|
|
74
|
+
include RC
|
|
75
|
+
INITCOMMONCONTROLSEX = API.defstruct 'DWORD dwSize', 'DWORD dwICC'
|
|
76
|
+
API.loadlib "comctl32.dll"
|
|
77
|
+
API.defun "InitCommonControlsEx(INITCOMMONCONTROLSEX *lpInitCtrls)"
|
|
78
|
+
API.initCommonControlsEx(INITCOMMONCONTROLSEX[INITCOMMONCONTROLSEX::Size, 0x7ff])
|
|
79
|
+
|
|
80
|
+
NMHDR = API.defstruct '
|
|
81
|
+
HWND hwndFrom;
|
|
82
|
+
INT idFrom;
|
|
83
|
+
INT code;' unless defined? NMHDR
|
|
84
|
+
|
|
85
|
+
NMTOOLTIPSCREATED = API.defstruct "
|
|
86
|
+
NMHDR hdr;
|
|
87
|
+
HWND hwndToolTips;"
|
|
88
|
+
|
|
89
|
+
NMMOUSE = API.defstruct "
|
|
90
|
+
NMHDR hdr;
|
|
91
|
+
DWORD dwItemSpec;
|
|
92
|
+
DWORD dwItemData;
|
|
93
|
+
POINT pt;
|
|
94
|
+
LPARAM dwHitInfo;"
|
|
95
|
+
|
|
96
|
+
NMKEY = API.defstruct "
|
|
97
|
+
NMHDR hdr;
|
|
98
|
+
UINT nVKey;
|
|
99
|
+
UINT uFlags;"
|
|
100
|
+
|
|
101
|
+
NMCHAR = API.defstruct "
|
|
102
|
+
NMHDR hdr;
|
|
103
|
+
UINT ch;
|
|
104
|
+
DWORD dwItemPrev;
|
|
105
|
+
DWORD dwItemNext;"
|
|
106
|
+
|
|
107
|
+
NMTTDISPINFO = API.defstruct "
|
|
108
|
+
NMHDR hdr;
|
|
109
|
+
LPTSTR lpszText;
|
|
110
|
+
TCHAR szText[80];
|
|
111
|
+
HINSTANCE hinst;
|
|
112
|
+
UINT uFlags;
|
|
113
|
+
LPARAM lParam;"
|
|
114
|
+
TOOLTIPTEXT = NMTTDISPINFO
|
|
115
|
+
|
|
116
|
+
NMCUSTOMDRAW = API.defstruct "
|
|
117
|
+
NMHDR hdr;
|
|
118
|
+
DWORD dwDrawStage;
|
|
119
|
+
HDC hdc;
|
|
120
|
+
RECT rc;
|
|
121
|
+
DWORD dwItemSpec;
|
|
122
|
+
UINT uItemState;
|
|
123
|
+
LPARAM lItemlParam;"
|
|
124
|
+
|
|
125
|
+
CCStyles ={
|
|
126
|
+
:top => CCS_TOP,
|
|
127
|
+
:nomovey => CCS_NOMOVEY,
|
|
128
|
+
:bottom => CCS_BOTTOM,
|
|
129
|
+
:noresize => CCS_NORESIZE,
|
|
130
|
+
:noparentalign => CCS_NOPARENTALIGN,
|
|
131
|
+
:adjustable => CCS_ADJUSTABLE,
|
|
132
|
+
:nodivider => CCS_NODIVIDER,
|
|
133
|
+
:vert => CCS_VERT,
|
|
134
|
+
# :left => CCS_LEFT,
|
|
135
|
+
# :right => CCS_RIGHT,
|
|
136
|
+
# :nomovex => CCS_NOMOVEX
|
|
137
|
+
}
|
|
138
|
+
end
|
|
139
|
+
end
|
data/lib/wrb/commdlg.rb
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Base class and constants for Common Dialog
|
|
2
|
+
|
|
3
|
+
require 'rwin'
|
|
4
|
+
|
|
5
|
+
module WR
|
|
6
|
+
module RC
|
|
7
|
+
CDERR_DIALOGFAILURE = 0xFFFF
|
|
8
|
+
|
|
9
|
+
CDERR_GENERALCODES = 0x0000
|
|
10
|
+
CDERR_STRUCTSIZE = 0x0001
|
|
11
|
+
CDERR_INITIALIZATION = 0x0002
|
|
12
|
+
CDERR_NOTEMPLATE = 0x0003
|
|
13
|
+
CDERR_NOHINSTANCE = 0x0004
|
|
14
|
+
CDERR_LOADSTRFAILURE = 0x0005
|
|
15
|
+
CDERR_FINDRESFAILURE = 0x0006
|
|
16
|
+
CDERR_LOADRESFAILURE = 0x0007
|
|
17
|
+
CDERR_LOCKRESFAILURE = 0x0008
|
|
18
|
+
CDERR_MEMALLOCFAILURE = 0x0009
|
|
19
|
+
CDERR_MEMLOCKFAILURE = 0x000A
|
|
20
|
+
CDERR_NOHOOK = 0x000B
|
|
21
|
+
CDERR_REGISTERMSGFAIL = 0x000C
|
|
22
|
+
|
|
23
|
+
PDERR_PRINTERCODES = 0x1000
|
|
24
|
+
PDERR_SETUPFAILURE = 0x1001
|
|
25
|
+
PDERR_PARSEFAILURE = 0x1002
|
|
26
|
+
PDERR_RETDEFFAILURE = 0x1003
|
|
27
|
+
PDERR_LOADDRVFAILURE = 0x1004
|
|
28
|
+
PDERR_GETDEVMODEFAIL = 0x1005
|
|
29
|
+
PDERR_INITFAILURE = 0x1006
|
|
30
|
+
PDERR_NODEVICES = 0x1007
|
|
31
|
+
PDERR_NODEFAULTPRN = 0x1008
|
|
32
|
+
PDERR_DNDMMISMATCH = 0x1009
|
|
33
|
+
PDERR_CREATEICFAILURE = 0x100A
|
|
34
|
+
PDERR_PRINTERNOTFOUND = 0x100B
|
|
35
|
+
PDERR_DEFAULTDIFFERENT = 0x100C
|
|
36
|
+
|
|
37
|
+
CFERR_CHOOSEFONTCODES = 0x2000
|
|
38
|
+
CFERR_NOFONTS = 0x2001
|
|
39
|
+
CFERR_MAXLESSTHANMIN = 0x2002
|
|
40
|
+
|
|
41
|
+
FNERR_FILENAMECODES = 0x3000
|
|
42
|
+
FNERR_SUBCLASSFAILURE = 0x3001
|
|
43
|
+
FNERR_INVALIDFILENAME = 0x3002
|
|
44
|
+
FNERR_BUFFERTOOSMALL = 0x3003
|
|
45
|
+
|
|
46
|
+
FRERR_FINDREPLACECODES = 0x4000
|
|
47
|
+
FRERR_BUFFERLENGTHZERO = 0x4001
|
|
48
|
+
|
|
49
|
+
CCERR_CHOOSECOLORCODES = 0x5000
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
class CommonDialog
|
|
53
|
+
include RWin, RC
|
|
54
|
+
|
|
55
|
+
API.typealias 'HGLOBAL', 'Q'
|
|
56
|
+
API.typealias 'LPPAGESETUPHOOK', 'Q'
|
|
57
|
+
API.typealias 'LPPAGEPAINTHOOK', 'Q'
|
|
58
|
+
PAGESETUPDLG = API.defstruct "
|
|
59
|
+
DWORD lStructSize;
|
|
60
|
+
HWND hwndOwner;
|
|
61
|
+
HGLOBAL hDevMode;
|
|
62
|
+
HGLOBAL hDevNames;
|
|
63
|
+
DWORD Flags;
|
|
64
|
+
POINT ptPaperSize;
|
|
65
|
+
RECT rtMinMargin;
|
|
66
|
+
RECT rtMargin;
|
|
67
|
+
HINSTANCE hInstance;
|
|
68
|
+
LPARAM lCustData;
|
|
69
|
+
LPPAGESETUPHOOK lpfnPageSetupHook;
|
|
70
|
+
LPPAGEPAINTHOOK lpfnPagePaintHook;
|
|
71
|
+
LPCTSTR lpPageSetupTemplateName;
|
|
72
|
+
HGLOBAL hPageSetupTemplate;"
|
|
73
|
+
|
|
74
|
+
API.loadlib 'comdlg32'
|
|
75
|
+
API.defun 'CommDlgExtendedError()'
|
|
76
|
+
end
|
|
77
|
+
end
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
require 'wrb'
|
|
2
|
+
|
|
3
|
+
module WR
|
|
4
|
+
module RC
|
|
5
|
+
ACS_TRANSPARENT = 0x2
|
|
6
|
+
ACS_AUTOPLAY = 0x4
|
|
7
|
+
ACS_TIMER = 0x8
|
|
8
|
+
|
|
9
|
+
ACM_OPENA = WM_USER+100
|
|
10
|
+
ACM_OPENW = WM_USER+103
|
|
11
|
+
ACM_PLAY = WM_USER+101
|
|
12
|
+
ACM_STOP = WM_USER+102
|
|
13
|
+
ACM_ISPLAYING = WM_USER+104
|
|
14
|
+
if UNICODE
|
|
15
|
+
ACM_OPEN = ACM_OPENW
|
|
16
|
+
else
|
|
17
|
+
ACM_OPEN = ACM_OPENA
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
ACN_START = 1
|
|
21
|
+
ACN_STOP = 2
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# A window that displays an AVI clip (Animation).
|
|
25
|
+
# <br>See also <a href="https://docs.microsoft.com/en-us/windows/desktop/Controls/
|
|
26
|
+
# window-controls"> Windows Control section of Microsoft Docs.</a>
|
|
27
|
+
class Animate < WinControl
|
|
28
|
+
include ModStdCtrl
|
|
29
|
+
|
|
30
|
+
WinStyles = {
|
|
31
|
+
:transparent => ACS_TRANSPARENT,
|
|
32
|
+
:autoplay => ACS_AUTOPLAY,
|
|
33
|
+
:timer => ACS_TIMER
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
PreDefinedEvents = {
|
|
37
|
+
:start => [WM_COMMAND, ACN_START, 'hi'],
|
|
38
|
+
:stop => [WM_COMMAND, ACN_STOP, 'hi']
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
# (No default events)
|
|
42
|
+
DefaultEvents = []
|
|
43
|
+
|
|
44
|
+
def initialize(*args)
|
|
45
|
+
super
|
|
46
|
+
@_classname = "SysAnimate32"
|
|
47
|
+
@_acceptable_events = PreDefinedEvents.dup
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Opens an <i>path</i> of AVI clip and displays its first frame in this.
|
|
51
|
+
def open(path)
|
|
52
|
+
path.tr!('/', '\\')
|
|
53
|
+
if SendMessage(ACM_OPEN, 0, path) == 0
|
|
54
|
+
raise "open was failed"
|
|
55
|
+
end
|
|
56
|
+
true
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Plays an AVI clip in athis.
|
|
60
|
+
def play(times, from=0, to=-1)
|
|
61
|
+
SendMessage(ACM_PLAY, times, MAKELPARAM(from, to))
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Stops playing an AVI clip in this
|
|
65
|
+
def stop()
|
|
66
|
+
SendMessage(ACM_STOP, 0, 0)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Retreives whether an AVI clip is playing. Returns true/false.
|
|
70
|
+
def playing?() # only for visual style
|
|
71
|
+
SendMessage(ACM_ISPLAYING, 0, 0)==0 ? false : true
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
protected
|
|
75
|
+
def _apply_options(arg)
|
|
76
|
+
if st=WinStyles[arg]
|
|
77
|
+
@_style |= st
|
|
78
|
+
return nil
|
|
79
|
+
end
|
|
80
|
+
super
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
module WR
|
|
86
|
+
class MyForm < Form
|
|
87
|
+
def initialize()
|
|
88
|
+
_ << Button[:btn1, 'Open', 0, 0, 80, 24]
|
|
89
|
+
_ << Button[:btn2, 'Play', 80, 0, 80, 24]
|
|
90
|
+
_ << Button[:btn3, 'Stop', 160, 0, 80, 24]
|
|
91
|
+
_ << Button[:btn4, 'Playing', 240, 0, 80, 24]
|
|
92
|
+
_ << Animate[:anm1, 0, 30, 300, 240, :transparent, :events=>[:start, :stop]]
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def btn1_clicked(*)
|
|
96
|
+
dpp _anm1.open('../resources/round.avi')
|
|
97
|
+
end
|
|
98
|
+
def btn2_clicked(*)
|
|
99
|
+
_.anm1.play(-1, 1)
|
|
100
|
+
end
|
|
101
|
+
def btn3_clicked(*)
|
|
102
|
+
_.anm1.stop()
|
|
103
|
+
end
|
|
104
|
+
def btn4_clicked(*)
|
|
105
|
+
dpp _.anm1.playing?()
|
|
106
|
+
end
|
|
107
|
+
def anm1_start(*)
|
|
108
|
+
dpp 'start!'
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
self.start
|
|
112
|
+
end
|
|
113
|
+
end if __FILE__==$0
|
|
114
|
+
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
require 'wrb/lzss'
|
|
2
|
+
module WR
|
|
3
|
+
require_relative './picture.rb' unless defined? Picture
|
|
4
|
+
require_relative './canvas.rb' unless defined? Canvas
|
|
5
|
+
|
|
6
|
+
# A memory-image which consists of the pixel data for a graphics image and its attributes.
|
|
7
|
+
# <br>See also <a href="https://docs.microsoft.com/en-us/windows/desktop/gdi/windows-gdi">
|
|
8
|
+
# GDI section of Microsft Docs</a>
|
|
9
|
+
class Bitmap < RWin::Bitmap
|
|
10
|
+
|
|
11
|
+
=begin
|
|
12
|
+
self.new(name=nil, width, height, initalcolor=nil)
|
|
13
|
+
Creates empty bitmap with the specified arguments.<br>
|
|
14
|
+
If <i>initialcolor</i> is given, this bitmap will be filled with it.<br>
|
|
15
|
+
`name' is for adding on the toplevel window, give a Symbol if needed.
|
|
16
|
+
|
|
17
|
+
following methods are defined at the super class.
|
|
18
|
+
:singleton methods
|
|
19
|
+
self._load(str)
|
|
20
|
+
Loads from a string. Give a String as <i>str</i>.
|
|
21
|
+
self.fromfile(path)
|
|
22
|
+
Loads from a bitmap file. Give a String as <i>path</i> to bitmap file.
|
|
23
|
+
self.fromhandle(hbitmap)
|
|
24
|
+
Creates new Bitmap object from handle of another bitmap.<br>
|
|
25
|
+
Give an 32/64 bits integer as <i>hbitmap</i>.
|
|
26
|
+
self.frompicture(pic, background)
|
|
27
|
+
Creates new Bitmap object from a Pcture object.<br>
|
|
28
|
+
Give a Picture object as <i>pic</i>, an RGB integer as <i>background</i> color.
|
|
29
|
+
self.monochrome(newwidth, newhight)
|
|
30
|
+
Creates new monochrome Bitmap object from self.<br>
|
|
31
|
+
Give two integers as <i>newwidth</i> and <i>newheight</i>.
|
|
32
|
+
|
|
33
|
+
:instance methods
|
|
34
|
+
GetPixel(x, y)
|
|
35
|
+
Retrieves the RGB color value of the pixel at the specified coordinates.<br>
|
|
36
|
+
Give two integers as <i>x</i> and <i>y</i>. Returns an integer as RGB color.
|
|
37
|
+
SetPixel(x, y, color)
|
|
38
|
+
Sets the pixel at the specified coordinates to the specified color.<br>
|
|
39
|
+
Give two integers as <i>x</i>, <i>y</i> and a integer as RGB <i>color</i>.
|
|
40
|
+
_dump()
|
|
41
|
+
Dumps self to a string for Marshal object.
|
|
42
|
+
_hbitmap()
|
|
43
|
+
Retrieves a bitmap handle of self. Returns 32/64 bits integer as it.
|
|
44
|
+
_hdc()
|
|
45
|
+
Retrieves a device context handle of self. Returns 32/64 bits integer as it.
|
|
46
|
+
_hddbitmap()
|
|
47
|
+
Retrieves a device dependent bitmap handle of self. Returns 32/64 bits integer as it.
|
|
48
|
+
depth()
|
|
49
|
+
Gets color depth of self. Retruns an integer of one of 1, 4, 8, 16, 24 and 32.
|
|
50
|
+
dispose()
|
|
51
|
+
Disposes self from resource table and sets hbitmap to 0. Returns true/false.
|
|
52
|
+
draw(){|cv| ...}
|
|
53
|
+
Draws on this bitmap if block given. Argument <i>cv</i> will be given as a Canvas object.
|
|
54
|
+
height()
|
|
55
|
+
Gets a height of this bitmap. Returns an integer.
|
|
56
|
+
width()
|
|
57
|
+
Gets a width of this bitmap. Returns an integer.
|
|
58
|
+
=end
|
|
59
|
+
|
|
60
|
+
# include ModUtil
|
|
61
|
+
include RC
|
|
62
|
+
|
|
63
|
+
# Loads from a image file. Give a String as path to image file.
|
|
64
|
+
def self.fromfile(path)
|
|
65
|
+
if open(path, 'rb'){|f| f.read(2)} == "BM"
|
|
66
|
+
super
|
|
67
|
+
else
|
|
68
|
+
self.frompicture(Picture.fromfile(path))
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Converts self to a Picture object.
|
|
73
|
+
def to_picture()
|
|
74
|
+
Picture._load(self._dump)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Converts self to a 24 bit Bitmap objct.
|
|
78
|
+
def to_24()
|
|
79
|
+
Bitmap._load(self._dump(24))
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def to_mask_core(rop, maskcolor)
|
|
83
|
+
bm24 = self.to_24
|
|
84
|
+
maskcolor ||= bm24.GetPixel(0, 0)
|
|
85
|
+
bmm = Bitmap.monochrome(bm24.width, bm24.height)
|
|
86
|
+
bmm.draw{|cm|
|
|
87
|
+
bm24.draw{|cv| cv.SetBkColor(maskcolor)}
|
|
88
|
+
cm.BitBlt(0, 0, bm24, rop)
|
|
89
|
+
}
|
|
90
|
+
end
|
|
91
|
+
private :to_mask_core
|
|
92
|
+
|
|
93
|
+
# Creates a new monochrome bitmap for mask image. <br>
|
|
94
|
+
# Give an integer as RGB color for <i>maskcolor</i> which will be set to black and other clolors will be set to white.<br>
|
|
95
|
+
# If no maskcolor was given then color of (0, 0) position will be used as maskcolor.
|
|
96
|
+
def to_mask(maskcolor=nil)
|
|
97
|
+
to_mask_core(NOTSRCCOPY, maskcolor)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Creates a reverse mask image from <i>to_mask()</i> method.
|
|
101
|
+
def to_imgmask(maskcolor=nil)
|
|
102
|
+
to_mask_core(SRCCOPY, maskcolor)
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# Loads new bitmap object from a LZSS compressd string.
|
|
106
|
+
# Give a String as <i>str</i>.
|
|
107
|
+
def self.loadb64(str)
|
|
108
|
+
self._load(LZSS.expand(str.unpack('m')[0]))
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# Dumps self to a LZSS compressed string.
|
|
112
|
+
def dumpb64()
|
|
113
|
+
[LZSS.compress(self._dump)].pack('m')
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|