curses 1.4.4 → 1.4.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (258) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +6 -0
  3. data/.github/workflows/macos.yml +1 -1
  4. data/.github/workflows/push_gem.yml +48 -0
  5. data/.github/workflows/ubuntu.yml +2 -2
  6. data/.github/workflows/windows.yml +2 -2
  7. data/History.md +23 -0
  8. data/README.md +7 -0
  9. data/curses.gemspec +1 -1
  10. data/ext/curses/curses.c +7 -7
  11. data/sample/colors.rb +6 -1
  12. data/sample/form.rb +1 -1
  13. data/sample/menu.rb +2 -0
  14. metadata +9 -251
  15. data/vendor/PDCurses/.gitignore +0 -47
  16. data/vendor/PDCurses/.travis.yml +0 -49
  17. data/vendor/PDCurses/CMakeLists.txt +0 -68
  18. data/vendor/PDCurses/HISTORY.md +0 -2036
  19. data/vendor/PDCurses/IMPLEMNT.md +0 -327
  20. data/vendor/PDCurses/Makefile +0 -27
  21. data/vendor/PDCurses/README.md +0 -77
  22. data/vendor/PDCurses/acs_defs.h +0 -265
  23. data/vendor/PDCurses/appveyor.yml +0 -218
  24. data/vendor/PDCurses/cmake/README.md +0 -71
  25. data/vendor/PDCurses/cmake/build_dependencies.cmake +0 -178
  26. data/vendor/PDCurses/cmake/build_options.cmake +0 -25
  27. data/vendor/PDCurses/cmake/dll_version.cmake +0 -26
  28. data/vendor/PDCurses/cmake/gen_config_header.cmake +0 -43
  29. data/vendor/PDCurses/cmake/get_version.cmake +0 -17
  30. data/vendor/PDCurses/cmake/make_uninstall.cmake +0 -19
  31. data/vendor/PDCurses/cmake/project_common.cmake +0 -121
  32. data/vendor/PDCurses/cmake/resource.in.cmake +0 -52
  33. data/vendor/PDCurses/cmake/sdl2_ttf/CMakeLists.txt +0 -83
  34. data/vendor/PDCurses/cmake/target_arch.cmake +0 -36
  35. data/vendor/PDCurses/cmake/version.in.cmake +0 -73
  36. data/vendor/PDCurses/cmake/watcom_open_dos16_toolchain.cmake +0 -96
  37. data/vendor/PDCurses/cmake/watcom_open_dos32_toolchain.cmake +0 -106
  38. data/vendor/PDCurses/cmake/watcom_open_os2v2_toolchain.cmake +0 -105
  39. data/vendor/PDCurses/curses.h +0 -1846
  40. data/vendor/PDCurses/curspriv.h +0 -134
  41. data/vendor/PDCurses/demos/README.md +0 -25
  42. data/vendor/PDCurses/demos/firework.c +0 -144
  43. data/vendor/PDCurses/demos/newtest.c +0 -581
  44. data/vendor/PDCurses/demos/ozdemo.c +0 -447
  45. data/vendor/PDCurses/demos/ptest.c +0 -283
  46. data/vendor/PDCurses/demos/rain.c +0 -157
  47. data/vendor/PDCurses/demos/testcurs.c +0 -1607
  48. data/vendor/PDCurses/demos/tui.c +0 -1048
  49. data/vendor/PDCurses/demos/tui.h +0 -65
  50. data/vendor/PDCurses/demos/tuidemo.c +0 -233
  51. data/vendor/PDCurses/demos/version.c +0 -61
  52. data/vendor/PDCurses/demos/worm.c +0 -432
  53. data/vendor/PDCurses/demos/xmas.c +0 -955
  54. data/vendor/PDCurses/dos/CMakeLists.txt +0 -47
  55. data/vendor/PDCurses/dos/Makefile +0 -105
  56. data/vendor/PDCurses/dos/Makefile.bcc +0 -83
  57. data/vendor/PDCurses/dos/Makefile.dmc +0 -257
  58. data/vendor/PDCurses/dos/Makefile.msc +0 -113
  59. data/vendor/PDCurses/dos/Makefile.wcc +0 -107
  60. data/vendor/PDCurses/dos/README.md +0 -51
  61. data/vendor/PDCurses/dos/bccdos.lrf +0 -9
  62. data/vendor/PDCurses/dos/mscdos.lrf +0 -50
  63. data/vendor/PDCurses/dos/pdcclip.c +0 -132
  64. data/vendor/PDCurses/dos/pdcdisp.c +0 -135
  65. data/vendor/PDCurses/dos/pdcdos.h +0 -194
  66. data/vendor/PDCurses/dos/pdcgetsc.c +0 -98
  67. data/vendor/PDCurses/dos/pdckbd.c +0 -513
  68. data/vendor/PDCurses/dos/pdcscrn.c +0 -785
  69. data/vendor/PDCurses/dos/pdcsetsc.c +0 -101
  70. data/vendor/PDCurses/dos/pdcutil.c +0 -212
  71. data/vendor/PDCurses/libobjs.mif +0 -26
  72. data/vendor/PDCurses/makedist.mif +0 -20
  73. data/vendor/PDCurses/man/Makefile +0 -37
  74. data/vendor/PDCurses/man/README.md +0 -21
  75. data/vendor/PDCurses/man/intro.md +0 -361
  76. data/vendor/PDCurses/man/manext.c +0 -119
  77. data/vendor/PDCurses/man/sdl.md +0 -152
  78. data/vendor/PDCurses/man/sdl2.md +0 -58
  79. data/vendor/PDCurses/man/x11.md +0 -407
  80. data/vendor/PDCurses/ncurses/CMakeLists.txt +0 -66
  81. data/vendor/PDCurses/ncurses/README.md +0 -26
  82. data/vendor/PDCurses/ncurses/makefile +0 -29
  83. data/vendor/PDCurses/os2/CMakeLists.txt +0 -41
  84. data/vendor/PDCurses/os2/Makefile +0 -132
  85. data/vendor/PDCurses/os2/Makefile.bcc +0 -90
  86. data/vendor/PDCurses/os2/Makefile.wcc +0 -43
  87. data/vendor/PDCurses/os2/README.md +0 -43
  88. data/vendor/PDCurses/os2/iccos2.lrf +0 -50
  89. data/vendor/PDCurses/os2/iccos2.mak +0 -256
  90. data/vendor/PDCurses/os2/pdcclip.c +0 -188
  91. data/vendor/PDCurses/os2/pdcdisp.c +0 -93
  92. data/vendor/PDCurses/os2/pdcgetsc.c +0 -89
  93. data/vendor/PDCurses/os2/pdckbd.c +0 -521
  94. data/vendor/PDCurses/os2/pdcos2.h +0 -55
  95. data/vendor/PDCurses/os2/pdcscrn.c +0 -449
  96. data/vendor/PDCurses/os2/pdcsetsc.c +0 -112
  97. data/vendor/PDCurses/os2/pdcutil.c +0 -52
  98. data/vendor/PDCurses/panel.h +0 -56
  99. data/vendor/PDCurses/pdcurses/README.md +0 -25
  100. data/vendor/PDCurses/pdcurses/addch.c +0 -693
  101. data/vendor/PDCurses/pdcurses/addchstr.c +0 -245
  102. data/vendor/PDCurses/pdcurses/addstr.c +0 -240
  103. data/vendor/PDCurses/pdcurses/attr.c +0 -359
  104. data/vendor/PDCurses/pdcurses/beep.c +0 -68
  105. data/vendor/PDCurses/pdcurses/bkgd.c +0 -223
  106. data/vendor/PDCurses/pdcurses/border.c +0 -411
  107. data/vendor/PDCurses/pdcurses/clear.c +0 -159
  108. data/vendor/PDCurses/pdcurses/color.c +0 -298
  109. data/vendor/PDCurses/pdcurses/debug.c +0 -109
  110. data/vendor/PDCurses/pdcurses/delch.c +0 -96
  111. data/vendor/PDCurses/pdcurses/deleteln.c +0 -211
  112. data/vendor/PDCurses/pdcurses/deprec.c +0 -27
  113. data/vendor/PDCurses/pdcurses/getch.c +0 -417
  114. data/vendor/PDCurses/pdcurses/getstr.c +0 -474
  115. data/vendor/PDCurses/pdcurses/getyx.c +0 -139
  116. data/vendor/PDCurses/pdcurses/inch.c +0 -127
  117. data/vendor/PDCurses/pdcurses/inchstr.c +0 -214
  118. data/vendor/PDCurses/pdcurses/initscr.c +0 -367
  119. data/vendor/PDCurses/pdcurses/inopts.c +0 -324
  120. data/vendor/PDCurses/pdcurses/insch.c +0 -271
  121. data/vendor/PDCurses/pdcurses/insstr.c +0 -264
  122. data/vendor/PDCurses/pdcurses/instr.c +0 -246
  123. data/vendor/PDCurses/pdcurses/kernel.c +0 -259
  124. data/vendor/PDCurses/pdcurses/keyname.c +0 -157
  125. data/vendor/PDCurses/pdcurses/mouse.c +0 -438
  126. data/vendor/PDCurses/pdcurses/move.c +0 -57
  127. data/vendor/PDCurses/pdcurses/outopts.c +0 -159
  128. data/vendor/PDCurses/pdcurses/overlay.c +0 -214
  129. data/vendor/PDCurses/pdcurses/pad.c +0 -260
  130. data/vendor/PDCurses/pdcurses/panel.c +0 -633
  131. data/vendor/PDCurses/pdcurses/printw.c +0 -126
  132. data/vendor/PDCurses/pdcurses/refresh.c +0 -279
  133. data/vendor/PDCurses/pdcurses/scanw.c +0 -578
  134. data/vendor/PDCurses/pdcurses/scr_dump.c +0 -213
  135. data/vendor/PDCurses/pdcurses/scroll.c +0 -101
  136. data/vendor/PDCurses/pdcurses/slk.c +0 -591
  137. data/vendor/PDCurses/pdcurses/termattr.c +0 -182
  138. data/vendor/PDCurses/pdcurses/terminfo.c +0 -217
  139. data/vendor/PDCurses/pdcurses/touch.c +0 -163
  140. data/vendor/PDCurses/pdcurses/util.c +0 -312
  141. data/vendor/PDCurses/pdcurses/window.c +0 -569
  142. data/vendor/PDCurses/sdl1/Makefile +0 -129
  143. data/vendor/PDCurses/sdl1/Makefile.mng +0 -110
  144. data/vendor/PDCurses/sdl1/README.md +0 -31
  145. data/vendor/PDCurses/sdl1/deffont.h +0 -385
  146. data/vendor/PDCurses/sdl1/deficon.h +0 -23
  147. data/vendor/PDCurses/sdl1/pdcclip.c +0 -131
  148. data/vendor/PDCurses/sdl1/pdcdisp.c +0 -373
  149. data/vendor/PDCurses/sdl1/pdcgetsc.c +0 -30
  150. data/vendor/PDCurses/sdl1/pdckbd.c +0 -405
  151. data/vendor/PDCurses/sdl1/pdcscrn.c +0 -414
  152. data/vendor/PDCurses/sdl1/pdcsdl.h +0 -31
  153. data/vendor/PDCurses/sdl1/pdcsetsc.c +0 -64
  154. data/vendor/PDCurses/sdl1/pdcutil.c +0 -40
  155. data/vendor/PDCurses/sdl1/sdltest.c +0 -79
  156. data/vendor/PDCurses/sdl2/CMakeLists.txt +0 -76
  157. data/vendor/PDCurses/sdl2/Makefile +0 -135
  158. data/vendor/PDCurses/sdl2/Makefile.vc +0 -164
  159. data/vendor/PDCurses/sdl2/README.md +0 -34
  160. data/vendor/PDCurses/sdl2/deffont.h +0 -385
  161. data/vendor/PDCurses/sdl2/deficon.h +0 -23
  162. data/vendor/PDCurses/sdl2/pdcclip.c +0 -93
  163. data/vendor/PDCurses/sdl2/pdcdisp.c +0 -534
  164. data/vendor/PDCurses/sdl2/pdcgetsc.c +0 -30
  165. data/vendor/PDCurses/sdl2/pdckbd.c +0 -480
  166. data/vendor/PDCurses/sdl2/pdcscrn.c +0 -443
  167. data/vendor/PDCurses/sdl2/pdcsdl.h +0 -33
  168. data/vendor/PDCurses/sdl2/pdcsetsc.c +0 -67
  169. data/vendor/PDCurses/sdl2/pdcutil.c +0 -39
  170. data/vendor/PDCurses/sdl2/sdltest.c +0 -81
  171. data/vendor/PDCurses/term.h +0 -48
  172. data/vendor/PDCurses/version.mif +0 -7
  173. data/vendor/PDCurses/vt/CMakeLists.txt +0 -28
  174. data/vendor/PDCurses/vt/Makefile +0 -135
  175. data/vendor/PDCurses/vt/Makefile.bcc +0 -111
  176. data/vendor/PDCurses/vt/Makefile.dmc +0 -258
  177. data/vendor/PDCurses/vt/Makefile.vc +0 -144
  178. data/vendor/PDCurses/vt/Makefile.wcc +0 -107
  179. data/vendor/PDCurses/vt/README.md +0 -64
  180. data/vendor/PDCurses/vt/pdcclip.c +0 -20
  181. data/vendor/PDCurses/vt/pdcdisp.c +0 -284
  182. data/vendor/PDCurses/vt/pdcgetsc.c +0 -27
  183. data/vendor/PDCurses/vt/pdckbd.c +0 -394
  184. data/vendor/PDCurses/vt/pdcscrn.c +0 -434
  185. data/vendor/PDCurses/vt/pdcsetsc.c +0 -45
  186. data/vendor/PDCurses/vt/pdcutil.c +0 -43
  187. data/vendor/PDCurses/vt/pdcvt.h +0 -16
  188. data/vendor/PDCurses/watcom.mif +0 -68
  189. data/vendor/PDCurses/wincon/CMakeLists.txt +0 -27
  190. data/vendor/PDCurses/wincon/Makefile.bcc +0 -88
  191. data/vendor/PDCurses/wincon/Makefile.dmc +0 -256
  192. data/vendor/PDCurses/wincon/Makefile.lcc +0 -273
  193. data/vendor/PDCurses/wincon/Makefile.mng +0 -176
  194. data/vendor/PDCurses/wincon/Makefile.vc +0 -144
  195. data/vendor/PDCurses/wincon/Makefile.wcc +0 -51
  196. data/vendor/PDCurses/wincon/README.md +0 -85
  197. data/vendor/PDCurses/wincon/pdcclip.c +0 -174
  198. data/vendor/PDCurses/wincon/pdcdisp.c +0 -143
  199. data/vendor/PDCurses/wincon/pdcgetsc.c +0 -55
  200. data/vendor/PDCurses/wincon/pdckbd.c +0 -786
  201. data/vendor/PDCurses/wincon/pdcscrn.c +0 -717
  202. data/vendor/PDCurses/wincon/pdcsetsc.c +0 -91
  203. data/vendor/PDCurses/wincon/pdcurses.ico +0 -0
  204. data/vendor/PDCurses/wincon/pdcurses.rc +0 -28
  205. data/vendor/PDCurses/wincon/pdcutil.c +0 -41
  206. data/vendor/PDCurses/wincon/pdcwin.h +0 -31
  207. data/vendor/PDCurses/wingui/CMakeLists.txt +0 -27
  208. data/vendor/PDCurses/wingui/Makefile.bcc +0 -85
  209. data/vendor/PDCurses/wingui/Makefile.dmc +0 -259
  210. data/vendor/PDCurses/wingui/Makefile.lcc +0 -273
  211. data/vendor/PDCurses/wingui/Makefile.mng +0 -171
  212. data/vendor/PDCurses/wingui/Makefile.vc +0 -144
  213. data/vendor/PDCurses/wingui/Makefile.wcc +0 -51
  214. data/vendor/PDCurses/wingui/README.md +0 -93
  215. data/vendor/PDCurses/wingui/pdcclip.c +0 -174
  216. data/vendor/PDCurses/wingui/pdcdisp.c +0 -718
  217. data/vendor/PDCurses/wingui/pdcgetsc.c +0 -30
  218. data/vendor/PDCurses/wingui/pdckbd.c +0 -143
  219. data/vendor/PDCurses/wingui/pdcscrn.c +0 -2797
  220. data/vendor/PDCurses/wingui/pdcsetsc.c +0 -89
  221. data/vendor/PDCurses/wingui/pdcurses.ico +0 -0
  222. data/vendor/PDCurses/wingui/pdcurses.rc +0 -28
  223. data/vendor/PDCurses/wingui/pdcutil.c +0 -61
  224. data/vendor/PDCurses/wingui/pdcwin.h +0 -122
  225. data/vendor/PDCurses/x11/Makefile.in +0 -754
  226. data/vendor/PDCurses/x11/PDCurses.spec +0 -82
  227. data/vendor/PDCurses/x11/README.md +0 -62
  228. data/vendor/PDCurses/x11/ScrollBox.c +0 -319
  229. data/vendor/PDCurses/x11/ScrollBox.h +0 -51
  230. data/vendor/PDCurses/x11/ScrollBoxP.h +0 -70
  231. data/vendor/PDCurses/x11/aclocal.m4 +0 -994
  232. data/vendor/PDCurses/x11/big_icon.xbm +0 -46
  233. data/vendor/PDCurses/x11/compose.h +0 -201
  234. data/vendor/PDCurses/x11/config.guess +0 -1500
  235. data/vendor/PDCurses/x11/config.h.in +0 -100
  236. data/vendor/PDCurses/x11/config.sub +0 -1616
  237. data/vendor/PDCurses/x11/configure +0 -6700
  238. data/vendor/PDCurses/x11/configure.ac +0 -295
  239. data/vendor/PDCurses/x11/debian/changelog +0 -6
  240. data/vendor/PDCurses/x11/debian/compat +0 -1
  241. data/vendor/PDCurses/x11/debian/control +0 -11
  242. data/vendor/PDCurses/x11/debian/copyright +0 -27
  243. data/vendor/PDCurses/x11/debian/rules +0 -98
  244. data/vendor/PDCurses/x11/install-sh +0 -253
  245. data/vendor/PDCurses/x11/little_icon.xbm +0 -14
  246. data/vendor/PDCurses/x11/ncurses_cfg.h +0 -45
  247. data/vendor/PDCurses/x11/pdcclip.c +0 -173
  248. data/vendor/PDCurses/x11/pdcdisp.c +0 -85
  249. data/vendor/PDCurses/x11/pdcgetsc.c +0 -28
  250. data/vendor/PDCurses/x11/pdckbd.c +0 -104
  251. data/vendor/PDCurses/x11/pdcscrn.c +0 -258
  252. data/vendor/PDCurses/x11/pdcsetsc.c +0 -95
  253. data/vendor/PDCurses/x11/pdcutil.c +0 -52
  254. data/vendor/PDCurses/x11/pdcx11.c +0 -316
  255. data/vendor/PDCurses/x11/pdcx11.h +0 -191
  256. data/vendor/PDCurses/x11/sb.c +0 -155
  257. data/vendor/PDCurses/x11/x11.c +0 -3686
  258. data/vendor/PDCurses/x11/xcurses-config.in +0 -81
@@ -1,82 +0,0 @@
1
- # $Id: PDCurses.spec,v 1.6 2013/07/23 01:35:31 mark Exp $
2
- %define debug_package %{nil}
3
- %define base /usr
4
-
5
- Summary: Public Domain Curses for X11
6
- Name: PDCurses
7
- Version: %{myversion}
8
- Release: 1
9
- License: Public Domain
10
- Group: Development/Libraries
11
- Source: %{name}-%{version}.tar.gz
12
- URL: http://pdcurses.org
13
- BuildRoot: %{_tmppath}/%{name}-%{version}-root
14
- Prefix: %base
15
- BuildRequires: libXaw-devel
16
-
17
- %package devel
18
- Summary: Public Domain Curses for X11 Development Files
19
- Group: Development/Libraries
20
- Requires: %{name}%{?_isa} = %{version}-%{release}
21
-
22
- %description
23
- PDCurses for X11 is an implementation of the curses library that lets
24
- you build text-mode curses programs as native X11 applications.
25
- This package contains the runtime library.
26
-
27
- For more information, visit http://pdcurses.org
28
-
29
- %description devel
30
- PDCurses for X11 is an implementation of the curses library that lets
31
- you build text-mode curses programs as native X11 applications.
32
- This package contains the development files.
33
-
34
- For more information, visit http://pdcurses.org
35
-
36
- %prep
37
- %setup -q
38
-
39
- %build
40
- cd x11
41
- ./configure --prefix=%{base} --libdir=%{_libdir} --enable-libdir-change=no
42
- make
43
-
44
- %install
45
- cd x11
46
- make DESTDIR=$RPM_BUILD_ROOT install
47
-
48
- %clean
49
- rm -rf $RPM_BUILD_ROOT
50
- rm -rf $RPM_BUILD_DIR/%{name}-%{version}
51
-
52
- %files
53
- %defattr(-,root,root)
54
- %{_libdir}/libXCurses.so.%{version}
55
- %{_libdir}/libXpanel.so.%{version}
56
-
57
- %files devel
58
- %defattr(-,root,root)
59
- %{_bindir}/xcurses-config
60
- %{_libdir}/libXCurses.a
61
- %{_libdir}/libXpanel.a
62
- %{_libdir}/libXCurses.so
63
- %{_libdir}/libXCurses.so.3
64
- %{_libdir}/libXpanel.so
65
- %{_libdir}/libXpanel.so.3
66
- %{_includedir}/xcurses.h
67
- %{_includedir}/xpanel.h
68
- %{_includedir}/xcurses/curses.h
69
- %{_includedir}/xcurses/panel.h
70
- %{_includedir}/xcurses/term.h
71
-
72
- %post
73
- ldconfig %{_libdir}
74
-
75
- %postun
76
- ldconfig %{_libdir}
77
-
78
- %post devel
79
- ldconfig %{_libdir}
80
-
81
- %postun devel
82
- ldconfig %{_libdir}
@@ -1,62 +0,0 @@
1
- PDCurses for X11
2
- ================
3
-
4
- This is a port of PDCurses for X11, aka XCurses. It is designed to
5
- allow existing curses programs to be re-compiled with PDCurses,
6
- resulting in native X11 programs.
7
-
8
-
9
- Building
10
- --------
11
-
12
- - Run "./configure". To build the wide-character version of the library,
13
- specify "--enable-widec" as a parameter. To use X Input Methods, add
14
- "--enable-xim". I recommend these options, but I haven't yet made
15
- them the defaults, for the sake of backwards compatibility and due to
16
- their new and relatively untested status.
17
-
18
- If your system is lacking in UTF-8 support, you can force the use of
19
- UTF-8 instead of the system locale via "--enable-force-utf8". This is
20
- generally more useful in Windows.
21
-
22
- If configure can't find your X include files or X libraries, you can
23
- specify the paths with the arguments "--x-includes=inc_path" and/or
24
- "--x-libraries=lib_path".
25
-
26
- By default, the library and demo programs are built with the optimizer
27
- switch -O2. You can turn this off, and turn on debugging (-g), by
28
- adding "--enable-debug" to the configure command.
29
-
30
- - Run "make". This should build libXCurses and all the demo programs.
31
-
32
- - Optionally, run "make install". curses.h and panel.h will be renamed
33
- when installed (to xcurses.h and xpanel.h), to avoid conflicts with
34
- any existing curses installations. Unrenamed copies of curses.h and
35
- panel.h are installed in (by default) /usr/local/include/xcurses.
36
-
37
- libXpanel is just a symlink to libXCurses. Both curses and panel
38
- functions are in the main library.
39
-
40
-
41
- Distribution Status
42
- -------------------
43
-
44
- As of April 13, 2006, the files in this directory are released to the
45
- Public Domain, except for ScrollBox*, which are under essentially the
46
- MIT X License.
47
-
48
-
49
- To be Done
50
- ----------
51
-
52
- - have newterm() create a new X window
53
-
54
- - provide a command line parsing function to enable X command line
55
- arguments to be parsed and stripped from the arguments passed back
56
- to the calling procedure.
57
-
58
-
59
- Acknowledgements
60
- ----------------
61
-
62
- X11 port was provided by Mark Hessling <mark@rexx.org>
@@ -1,319 +0,0 @@
1
- /*
2
- * Copyright 1989 O'Reilly and Associates, Inc.
3
-
4
- The X Consortium, and any party obtaining a copy of these files from
5
- the X Consortium, directly or indirectly, is granted, free of charge, a
6
- full and unrestricted irrevocable, world-wide, paid up, royalty-free,
7
- nonexclusive right and license to deal in this software and
8
- documentation files (the "Software"), including without limitation the
9
- rights to use, copy, modify, merge, publish, distribute, sublicense,
10
- and/or sell copies of the Software, and to permit persons who receive
11
- copies from any such party to do so. This license includes without
12
- limitation a license to do the foregoing actions under any patents of
13
- the party supplying this software to the X Consortium.
14
- */
15
-
16
- /* ScrollBox.c - scrollBox composite widget */
17
-
18
- #include <X11/IntrinsicP.h>
19
- #include <X11/StringDefs.h>
20
- #include <X11/Shell.h>
21
-
22
- #include "x11/ScrollBoxP.h"
23
-
24
- #include <stdio.h>
25
-
26
- #define INITIAL_WIDTH 300
27
- #define INITIAL_HEIGHT 300
28
-
29
- /************************************************************************
30
- * *
31
- * scrollBox Resources *
32
- * *
33
- ************************************************************************/
34
-
35
- static XtResource resources[] =
36
- {
37
- { XtNhSpace, XtCHSpace, XtRDimension, sizeof(Dimension),
38
- XtOffset(ScrollBoxWidget, scrollBox.h_space),
39
- XtRImmediate, (XtPointer)4 },
40
- { XtNvSpace, XtCVSpace, XtRDimension, sizeof(Dimension),
41
- XtOffset(ScrollBoxWidget, scrollBox.v_space),
42
- XtRImmediate, (XtPointer)4 },
43
- { XtNheightInc, XtCHeightInc, XtRDimension, sizeof(Dimension),
44
- XtOffset(ScrollBoxWidget, scrollBox.increment_height),
45
- XtRImmediate, (XtPointer)13 },
46
- { XtNwidthInc, XtCWidthInc, XtRDimension, sizeof(Dimension),
47
- XtOffset(ScrollBoxWidget, scrollBox.increment_width),
48
- XtRImmediate, (XtPointer)7 },
49
- };
50
-
51
- /************************************************************************
52
- * *
53
- * Full class record constant *
54
- * *
55
- ************************************************************************/
56
-
57
- static void Initialize(Widget, Widget, ArgList, Cardinal *);
58
- static void Resize(Widget);
59
- static Boolean SetValues(Widget, Widget, Widget, ArgList, Cardinal *);
60
- static void ChangeManaged(Widget);
61
- static XtGeometryResult QueryGeometry(Widget, XtWidgetGeometry *,
62
- XtWidgetGeometry *);
63
- static XtGeometryResult GeometryManager(Widget, XtWidgetGeometry *,
64
- XtWidgetGeometry *);
65
- static void RefigureLocations(Widget);
66
-
67
- ScrollBoxClassRec scrollBoxClassRec = {
68
- {
69
- /* core_class fields */
70
- /* superclass */ (WidgetClass) &compositeClassRec,
71
- /* class_name */ "scrollBox",
72
- /* widget_size */ sizeof(ScrollBoxRec),
73
- /* class_initialize */ NULL,
74
- /* class_part_init */ NULL,
75
- /* class_inited */ FALSE,
76
- /* initialize */ Initialize,
77
- /* initialize_hook */ NULL,
78
- /* realize */ XtInheritRealize,
79
- /* actions */ NULL,
80
- /* num_actions */ 0,
81
- /* resources */ resources,
82
- /* num_resources */ XtNumber(resources),
83
- /* xrm_class */ NULLQUARK,
84
- /* compress_motion */ TRUE,
85
- /* compress_exposure */ TRUE,
86
- /* compress_enterleave */ TRUE,
87
- /* visible_interest */ FALSE,
88
- /* destroy */ NULL,
89
- /* resize */ Resize,
90
- /* expose */ NULL,
91
- /* set_values */ SetValues,
92
- /* set_values_hook */ NULL,
93
- /* set_values_almost */ XtInheritSetValuesAlmost,
94
- /* get_values_hook */ NULL,
95
- /* accept_focus */ NULL,
96
- /* version */ XtVersion,
97
- /* callback_private */ NULL,
98
- /* tm_table */ NULL,
99
- /* query_geometry */ QueryGeometry,
100
- /* display_accelerator */ XtInheritDisplayAccelerator,
101
- /* extension */ NULL
102
- },{
103
- /* composite_class fields */
104
- /* geometry_manager */ GeometryManager,
105
- /* change_managed */ ChangeManaged,
106
- /* insert_child */ XtInheritInsertChild,
107
- /* delete_child */ XtInheritDeleteChild,
108
- /* extension */ NULL
109
- },{
110
- /* scrollBox class fields */
111
- /* empty */ 0,
112
- }
113
- };
114
-
115
- WidgetClass scrollBoxWidgetClass = (WidgetClass)&scrollBoxClassRec;
116
-
117
-
118
- /************************************************************************
119
- * *
120
- * Private Routines *
121
- * *
122
- ************************************************************************/
123
-
124
- /* Do a layout, either actually assigning positions, or just
125
- calculating size. */
126
-
127
- static void DoLayout(Widget w, Boolean doit)
128
- {
129
- ScrollBoxWidget sbw = (ScrollBoxWidget)w;
130
- Widget wmain, vscroll, hscroll, child;
131
- Dimension mw, mh; /* main window */
132
- Dimension vh; /* vertical scrollbar length (height) */
133
- Dimension hw; /* horizontal scrollbar length (width) */
134
- Position vx;
135
- Position hy;
136
- Cardinal i;
137
-
138
- if (sbw->composite.num_children != 3)
139
- XtAppError(XtWidgetToApplicationContext(w),
140
- "ScrollBox: must manage exactly three widgets.");
141
-
142
- for (i = 0; i < sbw->composite.num_children; i++)
143
- {
144
- child = sbw->composite.children[i];
145
-
146
- if (!XtIsManaged(child))
147
- XtAppError(XtWidgetToApplicationContext(w),
148
- "ScrollBox: all three widgets must be managed.");
149
- }
150
-
151
- /* Child one is the main window, two is the vertical scrollbar,
152
- and three is the horizontal scrollbar. */
153
-
154
- wmain = sbw->composite.children[0];
155
- vscroll = sbw->composite.children[1];
156
- hscroll = sbw->composite.children[2];
157
-
158
- /* Size all three widgets so that space is fully utilized. */
159
-
160
- mw = sbw->core.width - (2 * sbw->scrollBox.h_space) -
161
- vscroll->core.width - (2 * vscroll->core.border_width) -
162
- (2 * wmain->core.border_width);
163
-
164
- mh = sbw->core.height - (2 * sbw->scrollBox.v_space) -
165
- hscroll->core.height - (2 * hscroll->core.border_width) -
166
- (2 * wmain->core.border_width);
167
-
168
- /* Force the main window to be sized to the appropriate increment. */
169
-
170
- mw = (mw / sbw->scrollBox.increment_width) *
171
- sbw->scrollBox.increment_width;
172
-
173
- mh = ((mh / sbw->scrollBox.increment_height) *
174
- sbw->scrollBox.increment_height) +
175
- sbw->scrollBox.increment_height;
176
-
177
- vx = wmain->core.x + mw + sbw->scrollBox.h_space +
178
- wmain->core.border_width + vscroll->core.border_width;
179
-
180
- hy = wmain->core.y + mh + sbw->scrollBox.v_space +
181
- wmain->core.border_width + hscroll->core.border_width;
182
-
183
- vh = mh; /* scrollbars are always same length as main window */
184
- hw = mw;
185
-
186
- if (doit)
187
- {
188
- XtResizeWidget(wmain, mw, mh, 1);
189
-
190
- XtResizeWidget(vscroll, vscroll->core.width, vh, 1);
191
- XtMoveWidget(vscroll, vx, vscroll->core.y);
192
-
193
- XtResizeWidget(hscroll, hw, hscroll->core.height, 1);
194
- XtMoveWidget(hscroll, hscroll->core.x, hy);
195
- }
196
- }
197
-
198
- static XtGeometryResult GeometryManager(Widget w, XtWidgetGeometry *request,
199
- XtWidgetGeometry *reply)
200
- {
201
- XtWidgetGeometry allowed;
202
-
203
- if (request->request_mode & ~(XtCWQueryOnly | CWWidth | CWHeight))
204
- return XtGeometryNo;
205
-
206
- if (request->request_mode & CWWidth)
207
- allowed.width = request->width;
208
- else
209
- allowed.width = w->core.width;
210
-
211
- if (request->request_mode & CWHeight)
212
- allowed.height = request->height;
213
- else
214
- allowed.height = w->core.height;
215
-
216
- if (allowed.width == w->core.width && allowed.height == w->core.height)
217
- return XtGeometryNo;
218
-
219
- if (!(request->request_mode & XtCWQueryOnly))
220
- RefigureLocations(w);
221
-
222
- return XtGeometryYes;
223
- }
224
-
225
- static void RefigureLocations(Widget w)
226
- {
227
- DoLayout(w, False);
228
- }
229
-
230
- /* Calculate preferred size. We can't just use the current sizes
231
- of the children, because that calculation would always end up with
232
- our current size. Could query each child, and use that size to
233
- recalculate a size for us, then if it ends up being larger than width
234
- and height passed in, accept bounding box. However, we know our
235
- children and they don't have any particular preferred geometry,
236
- except the bigger the better. Therefore, if the parent suggested a
237
- size, we'll take it. */
238
-
239
- static XtGeometryResult QueryGeometry(Widget w, XtWidgetGeometry *request,
240
- XtWidgetGeometry *reply_return)
241
- {
242
- XtGeometryResult result=XtGeometryNo;
243
-
244
- request->request_mode &= CWWidth | CWHeight;
245
-
246
- /* parent isn't going to change w or h, so nothing to re-compute */
247
-
248
- if (request->request_mode == 0)
249
- return XtGeometryYes;
250
-
251
- /* if proposed size is large enough, accept it. Otherwise, suggest
252
- our arbitrary initial size. */
253
-
254
- if (request->request_mode & CWHeight)
255
- {
256
- if (request->height < INITIAL_HEIGHT)
257
- {
258
- result = XtGeometryAlmost;
259
- reply_return->height = INITIAL_HEIGHT;
260
- reply_return->request_mode &= CWHeight;
261
- }
262
- else
263
- result = XtGeometryYes;
264
- }
265
-
266
- if (request->request_mode & CWWidth)
267
- {
268
- if (request->width < INITIAL_WIDTH)
269
- {
270
- result = XtGeometryAlmost;
271
- reply_return->width = INITIAL_WIDTH;
272
- reply_return->request_mode &= CWWidth;
273
- }
274
- else
275
- result = XtGeometryYes;
276
- }
277
-
278
- return result;
279
- }
280
-
281
- /* Actually layout the scrollBox */
282
-
283
- static void Resize(Widget w)
284
- {
285
- DoLayout(w, True);
286
- }
287
-
288
- static void ChangeManaged(Widget w)
289
- {
290
- DoLayout(w, True);
291
- }
292
-
293
- static void Initialize(Widget request, Widget new,
294
- ArgList args, Cardinal *num_args)
295
- {
296
- ScrollBoxWidget newsbw = (ScrollBoxWidget)new;
297
-
298
- if (newsbw->core.width == 0)
299
- newsbw->core.width = INITIAL_WIDTH;
300
-
301
- if (newsbw->core.height == 0)
302
- newsbw->core.height = INITIAL_HEIGHT;
303
-
304
- }
305
-
306
- static Boolean SetValues(Widget current, Widget request, Widget new,
307
- ArgList args, Cardinal *num_args)
308
- {
309
- ScrollBoxWidget sbwcurrent = (ScrollBoxWidget)current;
310
- ScrollBoxWidget sbwnew = (ScrollBoxWidget)new;
311
-
312
- /* need to relayout if h_space or v_space change */
313
-
314
- if ((sbwnew->scrollBox.h_space != sbwcurrent->scrollBox.h_space) ||
315
- (sbwnew->scrollBox.v_space != sbwcurrent->scrollBox.v_space))
316
- DoLayout(new, True);
317
-
318
- return False;
319
- }
@@ -1,51 +0,0 @@
1
- /*
2
- * Copyright 1989 O'Reilly and Associates, Inc.
3
-
4
- The X Consortium, and any party obtaining a copy of these files from
5
- the X Consortium, directly or indirectly, is granted, free of charge, a
6
- full and unrestricted irrevocable, world-wide, paid up, royalty-free,
7
- nonexclusive right and license to deal in this software and
8
- documentation files (the "Software"), including without limitation the
9
- rights to use, copy, modify, merge, publish, distribute, sublicense,
10
- and/or sell copies of the Software, and to permit persons who receive
11
- copies from any such party to do so. This license includes without
12
- limitation a license to do the foregoing actions under any patents of
13
- the party supplying this software to the X Consortium.
14
- */
15
-
16
- #ifndef _XORAscrollBox_h
17
- #define _XORAscrollBox_h
18
-
19
- /************************************************************************
20
- * *
21
- * scrollBox Widget (subclass of CompositeClass) *
22
- * *
23
- ************************************************************************/
24
-
25
- /* Parameters:
26
-
27
- Name Class RepType Default Value
28
- ---- ----- ------- -------------
29
- background Background Pixel XtDefaultBackground
30
- border BorderColor Pixel XtDefaultForeground
31
- borderWidth BorderWidth Dimension 1
32
- destroyCallback Callback Pointer NULL
33
- hSpace HSpace Dimension 4
34
- height Height Dimension 0
35
- mappedWhenManaged MappedWhenManaged Boolean True
36
- vSpace VSpace Dimension 4
37
- width Width Dimension 0
38
- x Position Position 0
39
- y Position Position 0
40
-
41
- */
42
-
43
-
44
- /* Class record constants */
45
-
46
- extern WidgetClass scrollBoxWidgetClass;
47
-
48
- typedef struct _ScrollBoxClassRec *ScrollBoxWidgetClass;
49
- typedef struct _ScrollBoxRec *ScrollBoxWidget;
50
-
51
- #endif /* _XORAscrollBox_h */
@@ -1,70 +0,0 @@
1
- /*
2
- * Copyright 1989 O'Reilly and Associates, Inc.
3
-
4
- The X Consortium, and any party obtaining a copy of these files from
5
- the X Consortium, directly or indirectly, is granted, free of charge, a
6
- full and unrestricted irrevocable, world-wide, paid up, royalty-free,
7
- nonexclusive right and license to deal in this software and
8
- documentation files (the "Software"), including without limitation the
9
- rights to use, copy, modify, merge, publish, distribute, sublicense,
10
- and/or sell copies of the Software, and to permit persons who receive
11
- copies from any such party to do so. This license includes without
12
- limitation a license to do the foregoing actions under any patents of
13
- the party supplying this software to the X Consortium.
14
- */
15
-
16
- /*
17
- * scrollBoxP.h - Private definitions for scrollBox widget
18
- *
19
- */
20
-
21
- #ifndef _XORAscrollBoxP_h
22
- #define _XORAscrollBoxP_h
23
-
24
- /************************************************************************
25
- * *
26
- * scrollBox Widget Private Data *
27
- * *
28
- ************************************************************************/
29
-
30
- #include "x11/ScrollBox.h"
31
-
32
- #include <X11/CompositeP.h>
33
-
34
- /* New fields for the scrollBox widget class record */
35
- typedef struct _ScrollBoxClass {
36
- int empty;
37
- } ScrollBoxClassPart;
38
-
39
- /* Full class record declaration */
40
- typedef struct _ScrollBoxClassRec {
41
- CoreClassPart core_class;
42
- CompositeClassPart composite_class;
43
- ScrollBoxClassPart scrollBox_class;
44
- } ScrollBoxClassRec;
45
-
46
- extern ScrollBoxClassRec scrollBoxClassRec;
47
-
48
- /* New fields for the scrollBox widget record */
49
- typedef struct {
50
- Dimension h_space, v_space;
51
- Dimension preferred_width, preferred_height;
52
- Dimension last_query_width, last_query_height;
53
- Dimension increment_width, increment_height;
54
- XtGeometryMask last_query_mode;
55
- } ScrollBoxPart;
56
-
57
-
58
- /************************************************************************
59
- * *
60
- * Full instance record declaration *
61
- * *
62
- ************************************************************************/
63
-
64
- typedef struct _ScrollBoxRec {
65
- CorePart core;
66
- CompositePart composite;
67
- ScrollBoxPart scrollBox;
68
- } ScrollBoxRec;
69
-
70
- #endif /* _XORAscrollBoxP_h */