wrb 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|