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,84 @@
|
|
|
1
|
+
|
|
2
|
+
module WR
|
|
3
|
+
require_relative './menu' unless defined?(Menu)
|
|
4
|
+
|
|
5
|
+
# The main menu that is arranged at the top position of the window.<br>
|
|
6
|
+
# This is inherited all methods from Menu.
|
|
7
|
+
class Menubar < Menu
|
|
8
|
+
|
|
9
|
+
=begin
|
|
10
|
+
following methods are defined in the super class.
|
|
11
|
+
:singleton_methods
|
|
12
|
+
self.new(name, caption, menu-item_or_sub-menu, ... )
|
|
13
|
+
=end
|
|
14
|
+
|
|
15
|
+
# self.[](name, caption, menu-item_or_sub-menu, ... )
|
|
16
|
+
# Creates a menu but not alive with given arguments.<br>
|
|
17
|
+
# A <i>menu-item</i> must be a pair of name and caption, and <i>name</i> must be a symbol.
|
|
18
|
+
def self.[](*args)
|
|
19
|
+
self.new(*args)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Creates and shows this menubar at the top position of the window.
|
|
23
|
+
def create()
|
|
24
|
+
createmenu()
|
|
25
|
+
_create_substance
|
|
26
|
+
@_parent.SetMenu(self) # SetMenu sends WM_SIZE to parent.
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
__END__
|
|
33
|
+
module WR
|
|
34
|
+
class MyForm < Form
|
|
35
|
+
def initialize()
|
|
36
|
+
resize 400, 300
|
|
37
|
+
_<< Menubar[:menubar1, Menu[:file, "File", :open, "Open", Menu[:recent, "Recent", :myfile, "myfile1", :myfile, "myfile2"], :sep, :close, "Close\tAlt+F4"], Menu[:edit, "Edit", :cut, "Cut\tCtrl+X", :copy, "Copy\tCtrl+C", :paste, "Paste\tCtrl+V"]]
|
|
38
|
+
_<< Button[:btn1, 'Test1', 0, 0, 80, 24]
|
|
39
|
+
_<< Button[:btn2, 'Test2', 80, 0, 80, 24]
|
|
40
|
+
end
|
|
41
|
+
def created()
|
|
42
|
+
dpp _menubar1.file1
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def btn1_clicked(*)
|
|
46
|
+
_.menubar1._delete
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def btn2_clicked(*)
|
|
50
|
+
_.menubar1.file._delete(2)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def cut_clicked(*args)
|
|
54
|
+
dpp args
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
self.start
|
|
58
|
+
end
|
|
59
|
+
end if __FILE__ == $0
|
|
60
|
+
|
|
61
|
+
__END__
|
|
62
|
+
module WR
|
|
63
|
+
class MyForm < Form
|
|
64
|
+
def initialize()
|
|
65
|
+
move 100, 500, 320, 240
|
|
66
|
+
_<< Menubar[:main, Menu[:file, "&File"], Menu[:edit, "Edit"], Menu[:help, "Help", MFT_RIGHTJUSTIFY]]
|
|
67
|
+
_.main.help.imagelist = Imagelist.loadb64 "JJMAIBAIAAwAAgACAACAAf7/f7/AsAYoBQkImnYAAAAACAIEAgRRAMAgQEAEEBQADAwCA2QEgQoAAAAAAAABANhAAAAICB6CAQEAc4BoQCwADAYDAACAgEiAH+AAA/4LoP9/wBzgIBALCEAMFH4MfwdfhD/CZ+FX8L34Z/w4fh5/EF+Iv8Sn4nfxTfiv/Fx+MH8ZX40/xufjl/Hd+Pf8gH5CfyJfkb/JJ+S38m1URJbGT18oxl2uJS/yqZgQfLHuDB8ue4MHwIMXcKH5lMguFD80iwXBB+EF83v51xgtYAAAAuIF86poEHwfdAAAihfPphdrtdw4foEwC12u4QYUGvoWfQ+8AAAhE0fUdkgEDR2sA0kDANHb6VI0vgpH/Sh+ln9MX6a/06fp9/TROpoT8P9Ts34PwBAQMfwEEgMaH6sZv4H1azf6HgEIw6vZudxgCsITngEI44DCPAD1mzfEEBKnw1rR"
|
|
68
|
+
#
|
|
69
|
+
|
|
70
|
+
_.main.file << [:open, "&Open\tCtrl+O", 1, :save, "&Save", 2, Menu[:recent, "&Recent"], :sep, :exit, "Exit", 5]
|
|
71
|
+
_.main.edit << [:cut, "Cut\tCtrl+X", 1, :copy, "Copy\tCtrl+C", :paste, "Paste\tCtrl+V"]
|
|
72
|
+
_.main.help << [:help1, "Help", 0, :version, "Version"]
|
|
73
|
+
|
|
74
|
+
_.main.file.imagelist = Imagelist.loadb64 "JJMAIBAwABAAAgACAACAAf7/f7/AsAYoBQkImnYAAAAACAIEAgRRAMAgQEAEEBQADAwCA2QEgQoAAAAAAAABANhAAAAICB6CAQEAc4BoQCwADAYDAACAgEiAH+AAA/4LoP9/wBzgIBALCEAMFH4MeghEIhEIhEAAFKqFcKqUEILgRDGF8QIBfT/f8CDwACH+iEQj4EBQQgggfAgCIOEEAX0qlUr4MHwQHVUCD4mAwgGgQfFPKEA0ED4ECQgPizzDA+MLcQAYkBxAPhQHEABARQPjlrBAIARYAhwAqosHgCMAMd8AVAfKMB8hJYEHyLPkffJQ+TF0f8kAAERIHGTOCIgEJARZHyxhgQAMxmMxmOAAAERAIQAQGEAECBEWg4EIoAAIuAQkCDUeuIIJo+AQkEDn3BBNFwCEggcv1xKpJHwCEgge+0ym5k4It9vt9PuZYMKDEev1+mU/NHCAQCqV8CDwAi32iEymEAkIBAIpVKqCBj4RCAjTgAEymQAmY14SqAmTDEYCAwMQgXw+J7JJlMplMpCfGE0U4EAwGBgUCgAWsJ/YAmBCMCAVVQIGAwVBEJvxQHxAEGEIIBwYinLFQxQFguh0iZohDIrGdRYLAEEEwBB/EAACFElG4iETR9R2SAQNHawDSQMA0dvpUjS+CmEVLUXAA0BAtJwANAAEAUxgcADQABgMeAABAo+Bx8FAgPBQQHwWED8GA3+/0BCVKp0MIRKoov9gAcAB8AB9gAeAQAPAAPgEEBwBAOCAwADAADgMEAQAAYEBVZAgUFAwWBwoXggGjBmgIJAg9+AF+H9gA9gBl/AB+D9gB9gDd/gF+AFgD9/ut/vN/AGtwDtf73f8AgA="
|
|
75
|
+
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def created()
|
|
79
|
+
_.main.file.recent << [:recrntfile, "file1.rb", :recentfile, "file2.rb"]
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
self.start
|
|
83
|
+
end
|
|
84
|
+
end if $0 == __FILE__
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
require 'wrb'
|
|
2
|
+
require 'wrb/commctrlconst'
|
|
3
|
+
|
|
4
|
+
module WR
|
|
5
|
+
module RC
|
|
6
|
+
MCM_FIRST = 0x1000
|
|
7
|
+
MCM_GETCURSEL = MCM_FIRST+1
|
|
8
|
+
MCM_SETCURSEL = MCM_FIRST+2
|
|
9
|
+
MCM_GETMAXSELCOUNT = MCM_FIRST+3
|
|
10
|
+
MCM_SETMAXSELCOUNT = MCM_FIRST+4
|
|
11
|
+
MCM_GETSELRANGE = MCM_FIRST+5
|
|
12
|
+
MCM_SETSELRANGE = MCM_FIRST+6
|
|
13
|
+
MCM_GETMONTHRANGE = MCM_FIRST+7
|
|
14
|
+
MCM_SETDAYSTATE = MCM_FIRST+8
|
|
15
|
+
MCM_GETMINREQRECT = MCM_FIRST+9
|
|
16
|
+
MCM_SETCOLOR = MCM_FIRST+10
|
|
17
|
+
MCM_GETCOLOR = MCM_FIRST+11
|
|
18
|
+
MCM_SETTODAY = MCM_FIRST+12
|
|
19
|
+
MCM_GETTODAY = MCM_FIRST+13
|
|
20
|
+
MCM_HITTEST = MCM_FIRST+14
|
|
21
|
+
MCM_SETMCM_FIRSTDAYOFWEEK = MCM_FIRST+15
|
|
22
|
+
MCM_GETMCM_FIRSTDAYOFWEEK = MCM_FIRST+16
|
|
23
|
+
MCM_GETRANGE = MCM_FIRST+17
|
|
24
|
+
MCM_SETRANGE = MCM_FIRST+18
|
|
25
|
+
MCM_GETMONTHDELTA = MCM_FIRST+19
|
|
26
|
+
MCM_SETMONTHDELTA = MCM_FIRST+20
|
|
27
|
+
MCM_GETMAXTODAYWIDTH = MCM_FIRST+21
|
|
28
|
+
MCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
|
|
29
|
+
MCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
|
|
30
|
+
|
|
31
|
+
MCSC_BACKGROUND = 0
|
|
32
|
+
MCSC_TEXT = 1
|
|
33
|
+
MCSC_TITLEBK = 2
|
|
34
|
+
MCSC_TITLETEXT = 3
|
|
35
|
+
MCSC_MONTHBK = 4
|
|
36
|
+
MCSC_TRAILINGTEXT = 5
|
|
37
|
+
|
|
38
|
+
MCHT_TITLE = 0x10000
|
|
39
|
+
MCHT_CALENDAR = 0x20000
|
|
40
|
+
MCHT_TODAYLINK = 0x30000
|
|
41
|
+
|
|
42
|
+
MCHT_NEXT = 0x1000000
|
|
43
|
+
MCHT_PREV = 0x2000000
|
|
44
|
+
|
|
45
|
+
MCHT_NOWHERE = 0x0
|
|
46
|
+
|
|
47
|
+
MCHT_TITLEBK = MCHT_TITLE
|
|
48
|
+
MCHT_TITLEMONTH = MCHT_TITLE | 0x1
|
|
49
|
+
MCHT_TITLEYEAR = MCHT_TITLE | 0x2
|
|
50
|
+
MCHT_TITLEBTNNEXT = MCHT_TITLE | MCHT_NEXT | 0x3
|
|
51
|
+
MCHT_TITLEBTNPREV = MCHT_TITLE | MCHT_PREV | 0x3
|
|
52
|
+
|
|
53
|
+
MCHT_CALENDARBK = MCHT_CALENDAR
|
|
54
|
+
MCHT_CALENDARDATE = MCHT_CALENDAR | 0x1
|
|
55
|
+
MCHT_CALENDARDATENEXT = MCHT_CALENDARDATE | MCHT_NEXT
|
|
56
|
+
MCHT_CALENDARDATEPREV = MCHT_CALENDARDATE | MCHT_PREV
|
|
57
|
+
MCHT_CALENDARDAY = MCHT_CALENDAR | 0x2
|
|
58
|
+
MCHT_CALENDARWEEKNUM = MCHT_CALENDAR | 0x3
|
|
59
|
+
|
|
60
|
+
MCN_FIRST = -750
|
|
61
|
+
MCN_SELCHANGE = MCN_FIRST+1
|
|
62
|
+
MCN_GETDAYSTATE = MCN_FIRST+3
|
|
63
|
+
MCN_SELECT = MCN_FIRST+4
|
|
64
|
+
|
|
65
|
+
MCS_DAYSTATE = 0x1
|
|
66
|
+
MCS_MULTISELECT = 0x2
|
|
67
|
+
MCS_WEEKNUMBERS = 0x4
|
|
68
|
+
MCS_NOTODAYCIRCLE = 0x8
|
|
69
|
+
MCS_NOTODAY = 0x10
|
|
70
|
+
|
|
71
|
+
GMR_VISIBLE = 0
|
|
72
|
+
GMR_DAYSTATE = 1
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# This control implements a calendar-like user interface.
|
|
76
|
+
# <br>See also <a href="https://docs.microsoft.com/en-us/windows/desktop/Controls/
|
|
77
|
+
# window-controls"> Windows Control section of Microsoft Docs.</a>
|
|
78
|
+
class Monthcalender < WinControl #CommonControl
|
|
79
|
+
|
|
80
|
+
MCHITTESTINFO= API.defstruct "
|
|
81
|
+
UINT cbSize;
|
|
82
|
+
POINT pt;
|
|
83
|
+
UINT uHit;
|
|
84
|
+
SYSTEMTIME st;"
|
|
85
|
+
|
|
86
|
+
NMSELCHANGE = API.defstruct "
|
|
87
|
+
NMHDR nmhdr;
|
|
88
|
+
SYSTEMTIME stSelStart;
|
|
89
|
+
SYSTEMTIME stSelEnd;"
|
|
90
|
+
|
|
91
|
+
API.typealias("MONTHDAYSTATE", "DWORD")
|
|
92
|
+
NMDAYSTATE = API.defstruct "
|
|
93
|
+
NMHDR nmhdr;
|
|
94
|
+
SYSTEMTIME stStart;
|
|
95
|
+
int cDayState;
|
|
96
|
+
MONTHDAYSTATE *prgDayState;"
|
|
97
|
+
|
|
98
|
+
WinStyle = {
|
|
99
|
+
:daystate => MCS_DAYSTATE,
|
|
100
|
+
:multiselect => MCS_MULTISELECT,
|
|
101
|
+
:weeknumbers => MCS_WEEKNUMBERS,
|
|
102
|
+
:notodaycircle => MCS_NOTODAYCIRCLE,
|
|
103
|
+
:notoday => MCS_NOTODAY
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
PreDefinedEvents = {
|
|
107
|
+
:SELCHANGE => [WM_NOTIFY, MCN_SELCHANGE, 'xs', NMSELCHANGE],
|
|
108
|
+
:GETDAYSTATE => [WM_NOTIFY, MCN_GETDAYSTATE, 'xs', NMDAYSTATE],
|
|
109
|
+
:SELECT => [WM_NOTIFY, MCN_SELECT, 'xs', NMSELCHANGE]
|
|
110
|
+
}
|
|
111
|
+
DefaultEvents = []
|
|
112
|
+
|
|
113
|
+
def initialize(*args)
|
|
114
|
+
super
|
|
115
|
+
@_classname = "SysMonthCal32"
|
|
116
|
+
@_acceptable_events = PreDefinedEvents.dup
|
|
117
|
+
end
|
|
118
|
+
#
|
|
119
|
+
def create()
|
|
120
|
+
super
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
#### Methods only for window alive.
|
|
124
|
+
|
|
125
|
+
# Retrieves the minimum size required to display a full month in this month calendar control.
|
|
126
|
+
def minrect()
|
|
127
|
+
rc = RECT.new
|
|
128
|
+
SendMessage(MCM_GETMINREQRECT, 0, rc)
|
|
129
|
+
rc
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
protected
|
|
133
|
+
def _apply_options(arg)
|
|
134
|
+
if st=WinStyles[arg]
|
|
135
|
+
self.style |= st
|
|
136
|
+
end
|
|
137
|
+
super
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
module WR
|
|
143
|
+
class Form1 < Form
|
|
144
|
+
def initialize()
|
|
145
|
+
controls.add Button.new(:bt1, 'Click Me', 200, 0, 80, 24)
|
|
146
|
+
controls.add Monthcalender.new(:mc1, '', 200, 200, 230, 190, :weeknumbers)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def created()
|
|
150
|
+
rc = controls.mc1.minrect
|
|
151
|
+
controls.mc1.move(rc.right, rc.bottom)
|
|
152
|
+
# controls.mc1.w = rc.right
|
|
153
|
+
# controls.mc1.h = rc.bottom
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def bt1_clicked(*)
|
|
157
|
+
controls.mc1.move 0, 0
|
|
158
|
+
# controls.mc1.x = 0
|
|
159
|
+
# controls.mc1.y = 0
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
Form1.start
|
|
164
|
+
end if __FILE__ == $0
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
require 'wrb/commdlg'
|
|
2
|
+
|
|
3
|
+
module WR
|
|
4
|
+
OFN_READONLY = 0x1
|
|
5
|
+
OFN_OVERWRITEPROMPT = 0x2
|
|
6
|
+
OFN_HIDEREADONLY = 0x4
|
|
7
|
+
OFN_NOCHANGEDIR = 0x8
|
|
8
|
+
OFN_SHOWHELP = 0x10
|
|
9
|
+
OFN_ENABLEHOOK = 0x20
|
|
10
|
+
OFN_ENABLETEMPLATE = 0x40
|
|
11
|
+
OFN_ENABLETEMPLATEHANDLE = 0x80
|
|
12
|
+
OFN_NOVALIDATE = 0x100
|
|
13
|
+
OFN_ALLOWMULTISELECT = 0x200
|
|
14
|
+
OFN_EXTENSIONDIFFERENT = 0x400
|
|
15
|
+
OFN_PATHMUSTEXIST = 0x800
|
|
16
|
+
OFN_FILEMUSTEXIST = 0x1000
|
|
17
|
+
OFN_CREATEPROMPT = 0x2000
|
|
18
|
+
OFN_SHAREAWARE = 0x4000
|
|
19
|
+
OFN_NOREADONLYRETURN = 0x8000
|
|
20
|
+
OFN_NOTESTFILECREATE = 0x10000
|
|
21
|
+
OFN_NONETWORKBUTTON = 0x20000
|
|
22
|
+
OFN_NOLONGNAMES = 0x40000
|
|
23
|
+
OFN_EXPLORER = 0x80000
|
|
24
|
+
OFN_NODEREFERENCELINKS = 0x100000
|
|
25
|
+
OFN_LONGNAMES = 0x200000
|
|
26
|
+
OFN_ENABLEINCLUDENOTIFY = 0x400000
|
|
27
|
+
OFN_ENABLESIZING = 0x800000
|
|
28
|
+
OFN_DONTADDTORECENT = 0x2000000
|
|
29
|
+
OFN_FORCESHOWHIDDEN = 0x10000000
|
|
30
|
+
OFN_EX_NOPLACESBAR = 0x1
|
|
31
|
+
OFN_SHAREFALLTHROUGH = 2
|
|
32
|
+
OFN_SHARENOWARN = 1
|
|
33
|
+
OFN_SHAREWARN = 0
|
|
34
|
+
|
|
35
|
+
# A dialog box that lets the user specify the drive, directory, and the name of a file or set of files to open.
|
|
36
|
+
class OpenFileNameDlg < CommonDialog
|
|
37
|
+
API.typealias 'LPOFNHOOKPROC', 'Q'
|
|
38
|
+
OPENFILENAME = API.defstruct "
|
|
39
|
+
DWORD lStructSize;
|
|
40
|
+
HWND hwndOwner;
|
|
41
|
+
HINSTANCE hInstance;
|
|
42
|
+
LPCTSTR lpstrFilter;
|
|
43
|
+
LPTSTR lpstrCustomFilter;
|
|
44
|
+
DWORD nMaxCustFilter;
|
|
45
|
+
DWORD nFilterIndex;
|
|
46
|
+
LPTSTR lpstrFile;
|
|
47
|
+
DWORD nMaxFile;
|
|
48
|
+
LPTSTR lpstrFileTitle;
|
|
49
|
+
DWORD nMaxFileTitle;
|
|
50
|
+
LPCTSTR lpstrInitialDir;
|
|
51
|
+
LPCTSTR lpstrTitle;
|
|
52
|
+
DWORD Flags;
|
|
53
|
+
WORD nFileOffset;
|
|
54
|
+
WORD nFileExtension;
|
|
55
|
+
LPCTSTR lpstrDefExt;
|
|
56
|
+
LPARAM lCustData;
|
|
57
|
+
LPOFNHOOKPROC lpfnHook;
|
|
58
|
+
LPCTSTR lpTemplateName;
|
|
59
|
+
void *pvReserved;
|
|
60
|
+
DWORD dwReserved;
|
|
61
|
+
DWORD FlagsEx;"
|
|
62
|
+
|
|
63
|
+
API.defun 'GetOpenFileName(OPENFILENAME ofn)'
|
|
64
|
+
|
|
65
|
+
def self.show(owner=nil, caption: "", filter: "", flags: nil, initialdir: nil, filename: "")
|
|
66
|
+
ofn = self.new()
|
|
67
|
+
ofn.caption = caption
|
|
68
|
+
ofn.filter = filter
|
|
69
|
+
ofn.flags = flags || OFN_EXPLORER
|
|
70
|
+
ofn.initialdir = initialdir if initialdir
|
|
71
|
+
ofn.filename = filename
|
|
72
|
+
ofn.show(owner)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
MAXFILENAME = 4096
|
|
76
|
+
|
|
77
|
+
def initialize()
|
|
78
|
+
@_openfilename = OPENFILENAME[OPENFILENAME::Size]
|
|
79
|
+
@buff = API::TCHAR[MAXFILENAME]
|
|
80
|
+
@_openfilename.lpstrFile = @buff
|
|
81
|
+
@_openfilename.nMaxFile = MAXFILENAME
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def title()
|
|
85
|
+
@_openfilename.lpstrTitle
|
|
86
|
+
end
|
|
87
|
+
def title=(str)
|
|
88
|
+
@_openfilename.lpstrTitle = str
|
|
89
|
+
end
|
|
90
|
+
alias caption title
|
|
91
|
+
alias caption= title=
|
|
92
|
+
|
|
93
|
+
def filter()
|
|
94
|
+
@_openfilename.lpstrFilter
|
|
95
|
+
end
|
|
96
|
+
def filter=(*str)
|
|
97
|
+
@_openfilename.lpstrFilter = str.join("\0")
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def filename=(str)
|
|
101
|
+
@_openfilename.lpstrFile[0] = str.to_s
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def initialdir()
|
|
105
|
+
@_openfilename.lpstrInitialDir.to_s
|
|
106
|
+
end
|
|
107
|
+
def initialdir=(str)
|
|
108
|
+
@_openfilename.lpstrInitialDir = str.tr('/', '\\')
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def flags()
|
|
112
|
+
@_openfilename.Flags
|
|
113
|
+
end
|
|
114
|
+
def flags=(f)
|
|
115
|
+
@_openfilename.Flags = f
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def _openfilename()
|
|
119
|
+
@_openfilename
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def show(owner=nil)
|
|
123
|
+
@_openfilename.hwndOwner = owner._hwnd if owner
|
|
124
|
+
r = API.getOpenFileName(@_openfilename)
|
|
125
|
+
return nil if r == 0
|
|
126
|
+
(@_openfilename.Flags & OFN_ALLOWMULTISELECT != 0) ? @buff.to_s.split("\0") : @buff.to_s
|
|
127
|
+
end
|
|
128
|
+
alias open show
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
module WR
|
|
133
|
+
require 'wrb'
|
|
134
|
+
|
|
135
|
+
class Myform < Form
|
|
136
|
+
def initialize()
|
|
137
|
+
_<< Button[:bt1, 'Click me', 0, 0, 80, 24]
|
|
138
|
+
end
|
|
139
|
+
def bt1_clicked(*)
|
|
140
|
+
dpp OpenFileNameDlg.show(self, caption: "Please select file",
|
|
141
|
+
flags: OFN_EXPLORER | OFN_ALLOWMULTISELECT,
|
|
142
|
+
initialdir: "c:\\Users",
|
|
143
|
+
filter: ["all(*.*)", "*.*", "ruby(*.rb?)", "*.rb?"])
|
|
144
|
+
end
|
|
145
|
+
self.start
|
|
146
|
+
end
|
|
147
|
+
end if $0 == __FILE__
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
require 'wrb'
|
|
2
|
+
require 'wrb/commctrlconst'
|
|
3
|
+
|
|
4
|
+
module WR
|
|
5
|
+
module RC
|
|
6
|
+
PGS_VERT = 0x0
|
|
7
|
+
PGS_HORZ = 0x1
|
|
8
|
+
PGS_AUTOSCROLL = 0x2
|
|
9
|
+
PGS_DRAGNDROP = 0x4
|
|
10
|
+
|
|
11
|
+
PGF_INVISIBLE = 0
|
|
12
|
+
PGF_NORMAL = 1
|
|
13
|
+
PGF_GRAYED = 2
|
|
14
|
+
PGF_DEPRESSED = 4
|
|
15
|
+
PGF_HOT = 8
|
|
16
|
+
|
|
17
|
+
PGB_TOPORLEFT = 0
|
|
18
|
+
PGB_BOTTOMORRIGHT = 1
|
|
19
|
+
|
|
20
|
+
PGM_FIRST = 0x1400
|
|
21
|
+
PGM_SETCHILD = PGM_FIRST+1
|
|
22
|
+
PGM_RECALCSIZE = PGM_FIRST+2
|
|
23
|
+
PGM_FORWARDMOUSE = PGM_FIRST+3
|
|
24
|
+
PGM_SETBKCOLOR = PGM_FIRST+4
|
|
25
|
+
PGM_GETBKCOLOR = PGM_FIRST+5
|
|
26
|
+
PGM_SETBORDER = PGM_FIRST+6
|
|
27
|
+
PGM_GETBORDER = PGM_FIRST+7
|
|
28
|
+
PGM_SETPOS = PGM_FIRST+8
|
|
29
|
+
PGM_GETPOS = PGM_FIRST+9
|
|
30
|
+
PGM_SETBUTTONSIZE = PGM_FIRST+10
|
|
31
|
+
PGM_GETBUTTONSIZE = PGM_FIRST+11
|
|
32
|
+
PGM_GETBUTTONSTATE = PGM_FIRST+12
|
|
33
|
+
PGM_GETDROPTARGET = CCM_GETDROPTARGET
|
|
34
|
+
|
|
35
|
+
PGN_FIRST = -900
|
|
36
|
+
PGN_SCROLL = PGN_FIRST-1
|
|
37
|
+
PGN_CALCSIZE = PGN_FIRST-2
|
|
38
|
+
|
|
39
|
+
PGF_SCROLLUP = 1
|
|
40
|
+
PGF_SCROLLDOWN = 2
|
|
41
|
+
PGF_SCROLLLEFT = 4
|
|
42
|
+
PGF_SCROLLRIGHT = 8
|
|
43
|
+
|
|
44
|
+
PGF_CALCWIDTH = 1
|
|
45
|
+
PGF_CALCHEIGHT = 2
|
|
46
|
+
|
|
47
|
+
PGK_SHIFT = 1
|
|
48
|
+
PGK_CONTROL = 2
|
|
49
|
+
PGK_MENU = 4
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# This control is a window container that is used with a window that does not have enough display area to show all of its content.
|
|
53
|
+
# <br>See also <a href="https://docs.microsoft.com/en-us/windows/desktop/Controls/
|
|
54
|
+
# window-controls"> Windows Control section of Microsoft Docs.</a>
|
|
55
|
+
class Pager < WinControl
|
|
56
|
+
include ModCommCtrl
|
|
57
|
+
include RC
|
|
58
|
+
|
|
59
|
+
NMPGCALCSIZE = RWin::API.defstruct "
|
|
60
|
+
NMHDR hdr;
|
|
61
|
+
DWORD dwFlag;
|
|
62
|
+
int iWidth;
|
|
63
|
+
int iHeight;"
|
|
64
|
+
|
|
65
|
+
NMPGSCROLL = RWin::API.defstruct "
|
|
66
|
+
NMHDR hdr;
|
|
67
|
+
BOOL fwKeys;
|
|
68
|
+
RECT rcParent;
|
|
69
|
+
int iDir;
|
|
70
|
+
int iXpos;
|
|
71
|
+
int iYpos;
|
|
72
|
+
int iScroll;"
|
|
73
|
+
|
|
74
|
+
NMPGHOTITEM = RWin::API.defstruct "
|
|
75
|
+
NMHDR hdr;
|
|
76
|
+
int idOld;
|
|
77
|
+
int idNew;
|
|
78
|
+
DWORD dwFlags;"
|
|
79
|
+
|
|
80
|
+
WinStyles = {
|
|
81
|
+
:vert => ~PGS_HORZ,
|
|
82
|
+
:horz => PGS_HORZ,
|
|
83
|
+
:autoscroll => PGS_AUTOSCROLL,
|
|
84
|
+
:dragndrap => PGS_DRAGNDROP,
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
PreDefinedEvents = {
|
|
88
|
+
:scroll => [WM_NOTIFY, PGN_SCROLL, 'xs', NMPGSCROLL], # not work...
|
|
89
|
+
:calcsize => [WM_NOTIFY, PGN_CALCSIZE, 'xs', NMPGCALCSIZE]
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
# ( Nothing )
|
|
93
|
+
DefaultEvents = []
|
|
94
|
+
|
|
95
|
+
include ModParent
|
|
96
|
+
|
|
97
|
+
def initialize(*args)
|
|
98
|
+
self.style = PGS_HORZ
|
|
99
|
+
super
|
|
100
|
+
@_classname = "SysPager"
|
|
101
|
+
@_acceptable_events = PreDefinedEvents.dup
|
|
102
|
+
end
|
|
103
|
+
#
|
|
104
|
+
def create
|
|
105
|
+
super
|
|
106
|
+
@parent.register_event(itemid, WM_NOTIFY, PGN_CALCSIZE, "__calcsize__", 'xs', NMPGCALCSIZE, self)
|
|
107
|
+
self.child = @_child if @_child
|
|
108
|
+
self.bkcolor = @_bkcolor if @_bkcolor
|
|
109
|
+
self.border = @_border if @_border
|
|
110
|
+
self.buttonsize = @_buttonsize if @_buttonsize
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
# Sets the contained window for the pager control.<br>
|
|
114
|
+
# The argument can be both a control or an array of arguments for creating a control.
|
|
115
|
+
def child=(arg) #; dp "@%p", @controls # Write only attrebute
|
|
116
|
+
if alive?
|
|
117
|
+
raise "Already child was set." if @controls && !@controls.empty?
|
|
118
|
+
@controls = Controls.new(self, @parent)
|
|
119
|
+
win = @controls << arg
|
|
120
|
+
@idealwidth = win.w
|
|
121
|
+
@idealheight = win.h
|
|
122
|
+
SendMessage(PGM_SETCHILD, 0, win.hWnd)
|
|
123
|
+
else
|
|
124
|
+
@_child = arg
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
alias << child=
|
|
128
|
+
|
|
129
|
+
# Retrieves the current background color for this pager control.
|
|
130
|
+
def bkcolor()
|
|
131
|
+
alive? ? SendMessage(PGM_GETBKCOLOR , 0, 0) : @_bkcolor
|
|
132
|
+
end
|
|
133
|
+
# Sets the current background color for this pager control.
|
|
134
|
+
def bkcolor=(bc)
|
|
135
|
+
alive? ? SendMessage(PGM_SETBKCOLOR, 0, bc) : @_bkcolor = bc
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# Retrieves the current border size for this pager control.
|
|
139
|
+
def border()
|
|
140
|
+
alive? ? SendMessage(PGM_GETBORDER, 0, 0) : @_border
|
|
141
|
+
end
|
|
142
|
+
# Sets the current border size for this pager control.
|
|
143
|
+
def border=(bd)
|
|
144
|
+
alive? ? SendMessage(PGM_SETBORDER, 0, bd) : @_border = bd
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# Retrieves the current border size for this pager control.
|
|
148
|
+
def buttonsize()
|
|
149
|
+
alive? ? SendMessage(PGM_GETBUTTONSIZE, 0, 0) : @_buttonsize
|
|
150
|
+
end
|
|
151
|
+
# Sets the current button size for this pager control.
|
|
152
|
+
def buttonsize=(bt)
|
|
153
|
+
alive? ? SendMessage(PGM_SETBUTTONSIZE, 0, bt) : @_buttonsize = bt
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
# Gets an ideal width when this pager caluculates scrloable dimentions.
|
|
157
|
+
def idealwidth()
|
|
158
|
+
@idealwidth
|
|
159
|
+
end
|
|
160
|
+
# Sets an ideal width when this pager caluculates scrloable dimentions.
|
|
161
|
+
def idealwidth=(w)
|
|
162
|
+
@idealwidth = w
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
# Gets an ideal height when this pager caluculates scrloable dimentions.
|
|
166
|
+
def idealheight()
|
|
167
|
+
@idealheight
|
|
168
|
+
end
|
|
169
|
+
# Sets an ideal height when this pager caluculates scrloable dimentions.
|
|
170
|
+
def idealheight=(h)
|
|
171
|
+
@idealheight = h
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
##### only when alive #####
|
|
175
|
+
|
|
176
|
+
# Retrieves the state of the specified button in this pager control.
|
|
177
|
+
def buttonstate()
|
|
178
|
+
SendMessage(PGM_GETBUTTONSTATE, 0, 0)
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
protected
|
|
182
|
+
def _apply_options(arg)
|
|
183
|
+
if st = WinStyles[arg]
|
|
184
|
+
st < 0 ? self.style &= st : self.style |= st
|
|
185
|
+
return nil
|
|
186
|
+
end
|
|
187
|
+
super
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
private
|
|
191
|
+
def __calcsize__(calcsize)
|
|
192
|
+
if (calcsize.dwFlag & PGF_CALCWIDTH) != 0
|
|
193
|
+
calcsize.iWidth = @idealwidth.to_i
|
|
194
|
+
elsif (calcsize.dwFlag & PGF_CALCHEIGHT) != 0
|
|
195
|
+
calcsize.iHeight = @idealheight.to_i
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
end
|