curses 1.2.6 → 1.4.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.
Files changed (253) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +19 -0
  3. data/.github/workflows/ubuntu.yml +26 -0
  4. data/.github/workflows/windows.yml +28 -0
  5. data/.gitmodules +1 -1
  6. data/.travis.yml +6 -3
  7. data/History.md +40 -0
  8. data/README.md +4 -1
  9. data/Rakefile +0 -83
  10. data/curses.gemspec +2 -3
  11. data/ext/curses/curses.c +1271 -151
  12. data/ext/curses/extconf.rb +140 -17
  13. data/lib/curses.rb +5 -12
  14. data/sample/form.rb +52 -0
  15. data/sample/menu.rb +1 -1
  16. data/vendor/PDCurses/.gitignore +47 -0
  17. data/vendor/PDCurses/.travis.yml +49 -0
  18. data/vendor/PDCurses/CMakeLists.txt +68 -0
  19. data/vendor/PDCurses/HISTORY.md +2036 -0
  20. data/vendor/PDCurses/IMPLEMNT.md +327 -0
  21. data/vendor/PDCurses/README.md +77 -0
  22. data/vendor/PDCurses/acs_defs.h +265 -0
  23. data/vendor/PDCurses/appveyor.yml +218 -0
  24. data/vendor/PDCurses/cmake/README.md +71 -0
  25. data/vendor/PDCurses/cmake/build_dependencies.cmake +178 -0
  26. data/vendor/PDCurses/cmake/build_options.cmake +25 -0
  27. data/vendor/PDCurses/cmake/dll_version.cmake +26 -0
  28. data/vendor/PDCurses/cmake/gen_config_header.cmake +43 -0
  29. data/vendor/PDCurses/cmake/get_version.cmake +17 -0
  30. data/vendor/PDCurses/cmake/make_uninstall.cmake +19 -0
  31. data/vendor/PDCurses/cmake/project_common.cmake +121 -0
  32. data/vendor/PDCurses/cmake/resource.in.cmake +52 -0
  33. data/vendor/PDCurses/cmake/sdl2_ttf/CMakeLists.txt +83 -0
  34. data/vendor/PDCurses/cmake/target_arch.cmake +36 -0
  35. data/vendor/PDCurses/cmake/version.in.cmake +73 -0
  36. data/vendor/PDCurses/cmake/watcom_open_dos16_toolchain.cmake +96 -0
  37. data/vendor/PDCurses/cmake/watcom_open_dos32_toolchain.cmake +106 -0
  38. data/vendor/PDCurses/cmake/watcom_open_os2v2_toolchain.cmake +105 -0
  39. data/vendor/PDCurses/curses.h +1846 -0
  40. data/vendor/PDCurses/curspriv.h +134 -0
  41. data/vendor/PDCurses/demos/README.md +25 -0
  42. data/vendor/PDCurses/demos/firework.c +144 -0
  43. data/vendor/PDCurses/demos/newtest.c +581 -0
  44. data/vendor/PDCurses/demos/ozdemo.c +447 -0
  45. data/vendor/PDCurses/demos/ptest.c +283 -0
  46. data/vendor/PDCurses/demos/rain.c +157 -0
  47. data/vendor/PDCurses/demos/testcurs.c +1607 -0
  48. data/vendor/PDCurses/demos/tui.c +1048 -0
  49. data/vendor/PDCurses/demos/tui.h +65 -0
  50. data/vendor/PDCurses/demos/tuidemo.c +233 -0
  51. data/vendor/PDCurses/demos/version.c +61 -0
  52. data/vendor/PDCurses/demos/worm.c +432 -0
  53. data/vendor/PDCurses/demos/xmas.c +955 -0
  54. data/vendor/PDCurses/dos/CMakeLists.txt +47 -0
  55. data/vendor/PDCurses/dos/Makefile.bcc +83 -0
  56. data/vendor/PDCurses/dos/Makefile.dmc +257 -0
  57. data/vendor/PDCurses/dos/Makefile.msc +113 -0
  58. data/vendor/PDCurses/dos/Makefile.wcc +107 -0
  59. data/vendor/PDCurses/dos/README.md +51 -0
  60. data/vendor/PDCurses/dos/bccdos.lrf +9 -0
  61. data/vendor/PDCurses/dos/mscdos.lrf +50 -0
  62. data/vendor/PDCurses/dos/pdcclip.c +132 -0
  63. data/vendor/PDCurses/dos/pdcdisp.c +135 -0
  64. data/vendor/PDCurses/dos/pdcdos.h +194 -0
  65. data/vendor/PDCurses/dos/pdcgetsc.c +98 -0
  66. data/vendor/PDCurses/dos/pdckbd.c +513 -0
  67. data/vendor/PDCurses/dos/pdcscrn.c +785 -0
  68. data/vendor/PDCurses/dos/pdcsetsc.c +101 -0
  69. data/vendor/PDCurses/dos/pdcutil.c +212 -0
  70. data/vendor/PDCurses/libobjs.mif +26 -0
  71. data/vendor/PDCurses/makedist.mif +20 -0
  72. data/vendor/PDCurses/man/README.md +21 -0
  73. data/vendor/PDCurses/man/intro.md +361 -0
  74. data/vendor/PDCurses/man/manext.c +119 -0
  75. data/vendor/PDCurses/man/sdl.md +152 -0
  76. data/vendor/PDCurses/man/sdl2.md +58 -0
  77. data/vendor/PDCurses/man/x11.md +407 -0
  78. data/vendor/PDCurses/ncurses/CMakeLists.txt +66 -0
  79. data/vendor/PDCurses/ncurses/README.md +26 -0
  80. data/vendor/PDCurses/ncurses/makefile +29 -0
  81. data/vendor/PDCurses/os2/CMakeLists.txt +41 -0
  82. data/vendor/PDCurses/os2/Makefile.bcc +90 -0
  83. data/vendor/PDCurses/os2/Makefile.wcc +43 -0
  84. data/vendor/PDCurses/os2/README.md +43 -0
  85. data/vendor/PDCurses/os2/iccos2.lrf +50 -0
  86. data/vendor/PDCurses/os2/iccos2.mak +256 -0
  87. data/vendor/PDCurses/os2/pdcclip.c +188 -0
  88. data/vendor/PDCurses/os2/pdcdisp.c +93 -0
  89. data/vendor/PDCurses/os2/pdcgetsc.c +89 -0
  90. data/vendor/PDCurses/os2/pdckbd.c +521 -0
  91. data/vendor/PDCurses/os2/pdcos2.h +55 -0
  92. data/vendor/PDCurses/os2/pdcscrn.c +449 -0
  93. data/vendor/PDCurses/os2/pdcsetsc.c +112 -0
  94. data/vendor/PDCurses/os2/pdcutil.c +52 -0
  95. data/vendor/PDCurses/panel.h +56 -0
  96. data/vendor/PDCurses/pdcurses/README.md +25 -0
  97. data/vendor/PDCurses/pdcurses/addch.c +693 -0
  98. data/vendor/PDCurses/pdcurses/addchstr.c +245 -0
  99. data/vendor/PDCurses/pdcurses/addstr.c +240 -0
  100. data/vendor/PDCurses/pdcurses/attr.c +359 -0
  101. data/vendor/PDCurses/pdcurses/beep.c +68 -0
  102. data/vendor/PDCurses/pdcurses/bkgd.c +223 -0
  103. data/vendor/PDCurses/pdcurses/border.c +411 -0
  104. data/vendor/PDCurses/pdcurses/clear.c +159 -0
  105. data/vendor/PDCurses/pdcurses/color.c +298 -0
  106. data/vendor/PDCurses/pdcurses/debug.c +109 -0
  107. data/vendor/PDCurses/pdcurses/delch.c +96 -0
  108. data/vendor/PDCurses/pdcurses/deleteln.c +211 -0
  109. data/vendor/PDCurses/pdcurses/deprec.c +27 -0
  110. data/vendor/PDCurses/pdcurses/getch.c +417 -0
  111. data/vendor/PDCurses/pdcurses/getstr.c +474 -0
  112. data/vendor/PDCurses/pdcurses/getyx.c +139 -0
  113. data/vendor/PDCurses/pdcurses/inch.c +127 -0
  114. data/vendor/PDCurses/pdcurses/inchstr.c +214 -0
  115. data/vendor/PDCurses/pdcurses/initscr.c +367 -0
  116. data/vendor/PDCurses/pdcurses/inopts.c +324 -0
  117. data/vendor/PDCurses/pdcurses/insch.c +271 -0
  118. data/vendor/PDCurses/pdcurses/insstr.c +264 -0
  119. data/vendor/PDCurses/pdcurses/instr.c +246 -0
  120. data/vendor/PDCurses/pdcurses/kernel.c +259 -0
  121. data/vendor/PDCurses/pdcurses/keyname.c +157 -0
  122. data/vendor/PDCurses/pdcurses/mouse.c +438 -0
  123. data/vendor/PDCurses/pdcurses/move.c +57 -0
  124. data/vendor/PDCurses/pdcurses/outopts.c +159 -0
  125. data/vendor/PDCurses/pdcurses/overlay.c +214 -0
  126. data/vendor/PDCurses/pdcurses/pad.c +260 -0
  127. data/vendor/PDCurses/pdcurses/panel.c +633 -0
  128. data/vendor/PDCurses/pdcurses/printw.c +126 -0
  129. data/vendor/PDCurses/pdcurses/refresh.c +279 -0
  130. data/vendor/PDCurses/pdcurses/scanw.c +578 -0
  131. data/vendor/PDCurses/pdcurses/scr_dump.c +213 -0
  132. data/vendor/PDCurses/pdcurses/scroll.c +101 -0
  133. data/vendor/PDCurses/pdcurses/slk.c +591 -0
  134. data/vendor/PDCurses/pdcurses/termattr.c +182 -0
  135. data/vendor/PDCurses/pdcurses/terminfo.c +217 -0
  136. data/vendor/PDCurses/pdcurses/touch.c +163 -0
  137. data/vendor/PDCurses/pdcurses/util.c +312 -0
  138. data/vendor/PDCurses/pdcurses/window.c +569 -0
  139. data/vendor/PDCurses/sdl1/Makefile.mng +110 -0
  140. data/vendor/PDCurses/sdl1/README.md +31 -0
  141. data/vendor/PDCurses/sdl1/deffont.h +385 -0
  142. data/vendor/PDCurses/sdl1/deficon.h +23 -0
  143. data/vendor/PDCurses/sdl1/pdcclip.c +131 -0
  144. data/vendor/PDCurses/sdl1/pdcdisp.c +373 -0
  145. data/vendor/PDCurses/sdl1/pdcgetsc.c +30 -0
  146. data/vendor/PDCurses/sdl1/pdckbd.c +405 -0
  147. data/vendor/PDCurses/sdl1/pdcscrn.c +414 -0
  148. data/vendor/PDCurses/sdl1/pdcsdl.h +31 -0
  149. data/vendor/PDCurses/sdl1/pdcsetsc.c +64 -0
  150. data/vendor/PDCurses/sdl1/pdcutil.c +40 -0
  151. data/vendor/PDCurses/sdl1/sdltest.c +79 -0
  152. data/vendor/PDCurses/sdl2/CMakeLists.txt +76 -0
  153. data/vendor/PDCurses/sdl2/Makefile.vc +164 -0
  154. data/vendor/PDCurses/sdl2/README.md +34 -0
  155. data/vendor/PDCurses/sdl2/deffont.h +385 -0
  156. data/vendor/PDCurses/sdl2/deficon.h +23 -0
  157. data/vendor/PDCurses/sdl2/pdcclip.c +93 -0
  158. data/vendor/PDCurses/sdl2/pdcdisp.c +534 -0
  159. data/vendor/PDCurses/sdl2/pdcgetsc.c +30 -0
  160. data/vendor/PDCurses/sdl2/pdckbd.c +480 -0
  161. data/vendor/PDCurses/sdl2/pdcscrn.c +443 -0
  162. data/vendor/PDCurses/sdl2/pdcsdl.h +33 -0
  163. data/vendor/PDCurses/sdl2/pdcsetsc.c +67 -0
  164. data/vendor/PDCurses/sdl2/pdcutil.c +39 -0
  165. data/vendor/PDCurses/sdl2/sdltest.c +81 -0
  166. data/vendor/PDCurses/term.h +48 -0
  167. data/vendor/PDCurses/version.mif +7 -0
  168. data/vendor/PDCurses/vt/CMakeLists.txt +28 -0
  169. data/vendor/PDCurses/vt/Makefile.bcc +111 -0
  170. data/vendor/PDCurses/vt/Makefile.dmc +258 -0
  171. data/vendor/PDCurses/vt/Makefile.vc +144 -0
  172. data/vendor/PDCurses/vt/Makefile.wcc +107 -0
  173. data/vendor/PDCurses/vt/README.md +64 -0
  174. data/vendor/PDCurses/vt/pdcclip.c +20 -0
  175. data/vendor/PDCurses/vt/pdcdisp.c +284 -0
  176. data/vendor/PDCurses/vt/pdcgetsc.c +27 -0
  177. data/vendor/PDCurses/vt/pdckbd.c +394 -0
  178. data/vendor/PDCurses/vt/pdcscrn.c +434 -0
  179. data/vendor/PDCurses/vt/pdcsetsc.c +45 -0
  180. data/vendor/PDCurses/vt/pdcutil.c +43 -0
  181. data/vendor/PDCurses/vt/pdcvt.h +16 -0
  182. data/vendor/PDCurses/watcom.mif +68 -0
  183. data/vendor/PDCurses/wincon/CMakeLists.txt +27 -0
  184. data/vendor/PDCurses/wincon/Makefile.bcc +88 -0
  185. data/vendor/PDCurses/wincon/Makefile.dmc +256 -0
  186. data/vendor/PDCurses/wincon/Makefile.lcc +273 -0
  187. data/vendor/PDCurses/wincon/Makefile.mng +176 -0
  188. data/vendor/PDCurses/wincon/Makefile.vc +144 -0
  189. data/vendor/PDCurses/wincon/Makefile.wcc +51 -0
  190. data/vendor/PDCurses/wincon/README.md +85 -0
  191. data/vendor/PDCurses/wincon/pdcclip.c +174 -0
  192. data/vendor/PDCurses/wincon/pdcdisp.c +143 -0
  193. data/vendor/PDCurses/wincon/pdcgetsc.c +55 -0
  194. data/vendor/PDCurses/wincon/pdckbd.c +786 -0
  195. data/vendor/PDCurses/wincon/pdcscrn.c +717 -0
  196. data/vendor/PDCurses/wincon/pdcsetsc.c +91 -0
  197. data/vendor/PDCurses/wincon/pdcurses.ico +0 -0
  198. data/vendor/PDCurses/wincon/pdcurses.rc +28 -0
  199. data/vendor/PDCurses/wincon/pdcutil.c +41 -0
  200. data/vendor/PDCurses/wincon/pdcwin.h +31 -0
  201. data/vendor/PDCurses/wingui/CMakeLists.txt +27 -0
  202. data/vendor/PDCurses/wingui/Makefile.bcc +85 -0
  203. data/vendor/PDCurses/wingui/Makefile.dmc +259 -0
  204. data/vendor/PDCurses/wingui/Makefile.lcc +273 -0
  205. data/vendor/PDCurses/wingui/Makefile.mng +171 -0
  206. data/vendor/PDCurses/wingui/Makefile.vc +144 -0
  207. data/vendor/PDCurses/wingui/Makefile.wcc +51 -0
  208. data/vendor/PDCurses/wingui/README.md +93 -0
  209. data/vendor/PDCurses/wingui/pdcclip.c +174 -0
  210. data/vendor/PDCurses/wingui/pdcdisp.c +718 -0
  211. data/vendor/PDCurses/wingui/pdcgetsc.c +30 -0
  212. data/vendor/PDCurses/wingui/pdckbd.c +143 -0
  213. data/vendor/PDCurses/wingui/pdcscrn.c +2797 -0
  214. data/vendor/PDCurses/wingui/pdcsetsc.c +89 -0
  215. data/vendor/PDCurses/wingui/pdcurses.ico +0 -0
  216. data/vendor/PDCurses/wingui/pdcurses.rc +28 -0
  217. data/vendor/PDCurses/wingui/pdcutil.c +61 -0
  218. data/vendor/PDCurses/wingui/pdcwin.h +122 -0
  219. data/vendor/PDCurses/x11/Makefile.in +754 -0
  220. data/vendor/PDCurses/x11/PDCurses.spec +82 -0
  221. data/vendor/PDCurses/x11/README.md +62 -0
  222. data/vendor/PDCurses/x11/ScrollBox.c +319 -0
  223. data/vendor/PDCurses/x11/ScrollBox.h +51 -0
  224. data/vendor/PDCurses/x11/ScrollBoxP.h +70 -0
  225. data/vendor/PDCurses/x11/aclocal.m4 +994 -0
  226. data/vendor/PDCurses/x11/big_icon.xbm +46 -0
  227. data/vendor/PDCurses/x11/compose.h +201 -0
  228. data/vendor/PDCurses/x11/config.guess +1500 -0
  229. data/vendor/PDCurses/x11/config.h.in +100 -0
  230. data/vendor/PDCurses/x11/config.sub +1616 -0
  231. data/vendor/PDCurses/x11/configure +6700 -0
  232. data/vendor/PDCurses/x11/configure.ac +295 -0
  233. data/vendor/PDCurses/x11/debian/changelog +6 -0
  234. data/vendor/PDCurses/x11/debian/compat +1 -0
  235. data/vendor/PDCurses/x11/debian/control +11 -0
  236. data/vendor/PDCurses/x11/debian/copyright +27 -0
  237. data/vendor/PDCurses/x11/debian/rules +98 -0
  238. data/vendor/PDCurses/x11/install-sh +253 -0
  239. data/vendor/PDCurses/x11/little_icon.xbm +14 -0
  240. data/vendor/PDCurses/x11/ncurses_cfg.h +45 -0
  241. data/vendor/PDCurses/x11/pdcclip.c +173 -0
  242. data/vendor/PDCurses/x11/pdcdisp.c +85 -0
  243. data/vendor/PDCurses/x11/pdcgetsc.c +28 -0
  244. data/vendor/PDCurses/x11/pdckbd.c +104 -0
  245. data/vendor/PDCurses/x11/pdcscrn.c +258 -0
  246. data/vendor/PDCurses/x11/pdcsetsc.c +95 -0
  247. data/vendor/PDCurses/x11/pdcutil.c +52 -0
  248. data/vendor/PDCurses/x11/pdcx11.c +316 -0
  249. data/vendor/PDCurses/x11/pdcx11.h +191 -0
  250. data/vendor/PDCurses/x11/sb.c +155 -0
  251. data/vendor/PDCurses/x11/x11.c +3686 -0
  252. data/vendor/PDCurses/x11/xcurses-config.in +81 -0
  253. metadata +255 -21
@@ -0,0 +1,31 @@
1
+ /* Public Domain Curses */
2
+
3
+ #include <curspriv.h>
4
+
5
+ #include <SDL.h>
6
+ #ifdef PDC_WIDE
7
+ #include <SDL_ttf.h>
8
+ #endif
9
+
10
+ #ifdef PDC_WIDE
11
+ PDCEX TTF_Font *pdc_ttffont;
12
+ PDCEX int pdc_font_size;
13
+ #endif
14
+ PDCEX SDL_Surface *pdc_screen, *pdc_font, *pdc_icon, *pdc_back;
15
+ PDCEX int pdc_sheight, pdc_swidth, pdc_yoffset, pdc_xoffset;
16
+
17
+ extern SDL_Surface *pdc_tileback; /* used to regenerate the background
18
+ of "transparent" cells */
19
+ extern SDL_Color pdc_color[256]; /* colors for font palette */
20
+ extern Uint32 pdc_mapped[256]; /* colors for FillRect(), as
21
+ used in _highlight() */
22
+ extern int pdc_fheight, pdc_fwidth; /* font height and width */
23
+ extern int pdc_flastc; /* font palette's last color
24
+ (treated as the foreground) */
25
+ extern bool pdc_own_screen; /* if pdc_screen was not set
26
+ before initscr(), PDCurses is
27
+ responsible for (owns) it */
28
+ extern Uint32 pdc_lastupdate; /* time of last update, in ticks */
29
+
30
+ void PDC_update_rects(void);
31
+ void PDC_retile(void);
@@ -0,0 +1,64 @@
1
+ /* Public Domain Curses */
2
+
3
+ #include "pdcsdl.h"
4
+
5
+ /*man-start**************************************************************
6
+
7
+ pdcsetsc
8
+ --------
9
+
10
+ ### Synopsis
11
+
12
+ int PDC_set_blink(bool blinkon);
13
+ void PDC_set_title(const char *title);
14
+
15
+ ### Description
16
+
17
+ PDC_set_blink() toggles whether the A_BLINK attribute sets an
18
+ actual blink mode (TRUE), or sets the background color to high
19
+ intensity (FALSE). The default is platform-dependent (FALSE in
20
+ most cases). It returns OK if it could set the state to match
21
+ the given parameter, ERR otherwise. Current platforms also
22
+ adjust the value of COLORS according to this function -- 16 for
23
+ FALSE, and 8 for TRUE.
24
+
25
+ PDC_set_title() sets the title of the window in which the curses
26
+ program is running. This function may not do anything on some
27
+ platforms. (Currently it only works in Win32 and X11.)
28
+
29
+ ### Portability
30
+ X/Open BSD SYS V
31
+ PDC_set_blink - - -
32
+ PDC_set_title - - -
33
+
34
+ **man-end****************************************************************/
35
+
36
+ int PDC_curs_set(int visibility)
37
+ {
38
+ int ret_vis;
39
+
40
+ PDC_LOG(("PDC_curs_set() - called: visibility=%d\n", visibility));
41
+
42
+ ret_vis = SP->visibility;
43
+
44
+ SP->visibility = visibility;
45
+
46
+ PDC_gotoyx(SP->cursrow, SP->curscol);
47
+
48
+ return ret_vis;
49
+ }
50
+
51
+ void PDC_set_title(const char *title)
52
+ {
53
+ PDC_LOG(("PDC_set_title() - called:<%s>\n", title));
54
+
55
+ SDL_WM_SetCaption(title, title);
56
+ }
57
+
58
+ int PDC_set_blink(bool blinkon)
59
+ {
60
+ // if (pdc_color_started) /* We've got 256 colors in this version */
61
+ // COLORS = 16;
62
+
63
+ return blinkon ? ERR : OK;
64
+ }
@@ -0,0 +1,40 @@
1
+ /* Public Domain Curses */
2
+
3
+ #include "pdcsdl.h"
4
+
5
+ void PDC_beep(void)
6
+ {
7
+ PDC_LOG(("PDC_beep() - called\n"));
8
+ }
9
+
10
+ void PDC_napms(int ms)
11
+ {
12
+ PDC_LOG(("PDC_napms() - called: ms=%d\n", ms));
13
+
14
+ PDC_update_rects();
15
+ SDL_PumpEvents();
16
+ SDL_Delay(ms);
17
+ }
18
+
19
+ const char *PDC_sysname(void)
20
+ {
21
+ return "SDL";
22
+ }
23
+
24
+ PDCEX PDC_version_info PDC_version = { PDC_PORT_SDL1,
25
+ PDC_VER_MAJOR, PDC_VER_MINOR, PDC_VER_CHANGE,
26
+ sizeof( chtype),
27
+ /* note that thus far, 'wide' and 'UTF8' versions exist */
28
+ /* only for SDL2, X11, Win32, and Win32a; elsewhere, */
29
+ /* these will be FALSE */
30
+ #ifdef PDC_WIDE
31
+ TRUE,
32
+ #else
33
+ FALSE,
34
+ #endif
35
+ #ifdef PDC_FORCE_UTF8
36
+ TRUE,
37
+ #else
38
+ FALSE,
39
+ #endif
40
+ };
@@ -0,0 +1,79 @@
1
+ /* Here's a simple example of combining SDL and PDCurses functionality.
2
+ The top portion of the window is devoted to SDL, with a four-line
3
+ (assuming the default 8x16 font) stdscr at the bottom.
4
+ */
5
+
6
+ #include <SDL.h>
7
+ #include <curses.h>
8
+ #include <stdlib.h>
9
+ #include <time.h>
10
+
11
+ /* You could #include pdcsdl.h, or just add the relevant declarations
12
+ here: */
13
+
14
+ PDCEX SDL_Surface *pdc_screen;
15
+ PDCEX int pdc_yoffset;
16
+
17
+ int main(int argc, char **argv)
18
+ {
19
+ char inp[60];
20
+ int i, j, seed;
21
+
22
+ seed = time((time_t *)0);
23
+ srand(seed);
24
+
25
+ /* Initialize SDL */
26
+
27
+ if (SDL_Init(SDL_INIT_VIDEO) < 0)
28
+ exit(1);
29
+
30
+ atexit(SDL_Quit);
31
+
32
+ pdc_screen = SDL_SetVideoMode(640, 480, 0, SDL_SWSURFACE|SDL_ANYFORMAT);
33
+
34
+ /* Initialize PDCurses */
35
+
36
+ pdc_yoffset = 416; /* 480 - 4 * 16 */
37
+
38
+ initscr();
39
+ start_color();
40
+ scrollok(stdscr, TRUE);
41
+
42
+ PDC_set_title("PDCurses for SDL");
43
+
44
+ /* Do some SDL stuff */
45
+
46
+ for (i = 640, j = 416; j; i -= 2, j -= 2)
47
+ {
48
+ SDL_Rect dest;
49
+
50
+ dest.x = (640 - i) / 2;
51
+ dest.y = (416 - j) / 2;
52
+ dest.w = i;
53
+ dest.h = j;
54
+
55
+ SDL_FillRect(pdc_screen, &dest,
56
+ SDL_MapRGB(pdc_screen->format, rand() % 256,
57
+ rand() % 256, rand() % 256));
58
+ }
59
+
60
+ SDL_UpdateRect(pdc_screen, 0, 0, 640, 416);
61
+
62
+ /* Do some curses stuff */
63
+
64
+ init_pair(1, COLOR_WHITE + 8, COLOR_BLUE);
65
+ bkgd(COLOR_PAIR(1));
66
+
67
+ addstr("This is a demo of ");
68
+ attron(A_UNDERLINE);
69
+ addstr("PDCurses for SDL");
70
+ attroff(A_UNDERLINE);
71
+ addstr(".\nYour comments here: ");
72
+ getnstr(inp, 59);
73
+ addstr("Press any key to exit.");
74
+
75
+ getch();
76
+ endwin();
77
+
78
+ return 0;
79
+ }
@@ -0,0 +1,76 @@
1
+ cmake_minimum_required(VERSION 3.11)
2
+
3
+ if(NOT CMAKE_BUILD_TYPE)
4
+ set(CMAKE_BUILD_TYPE "MinSizeRel" CACHE STRING "Choose the type of build, options are: Debug, Release, or MinSizeRel." FORCE)
5
+ message(STATUS "No build type specified, defaulting to MinSizeRel.")
6
+ endif()
7
+
8
+ project(sdl2 VERSION "${PROJECT_VERSION}" LANGUAGES C)
9
+ message(STATUS "${PROJECT_NAME} version: ${PROJECT_VERSION}")
10
+
11
+ message(STATUS "SDL2_LIBRARIES = ${SDL2_LIBRARIES}")
12
+ message(STATUS "SDL2_INCLUDE_DIR = ${SDL2_INCLUDE_DIR}")
13
+ message(STATUS "SDL2_LIBRARY_DIR = ${SDL2_LIBRARY_DIR}")
14
+ if(PDC_WIDE)
15
+ message(STATUS "SDL2_TTF_LIBRARY = ${SDL2_TTF_LIBRARY}")
16
+ message(STATUS "SDL2_TTF_INCLUDE_DIR = ${SDL2_TTF_INCLUDE_DIR}")
17
+ message(STATUS "SDL2_TTF_LIBRARY_DIR = ${SDL2_TTF_LIBRARY_DIR}")
18
+ endif()
19
+
20
+ include_directories(${SDL2_INCLUDE_DIR} ${SDL2_TTF_INCLUDE_DIR})
21
+ link_directories(${SDL2_LIBRARY_DIR} ${SDL2_TTF_LIBRARY_DIR})
22
+
23
+ include(project_common)
24
+
25
+ macro (sdl2_app dir targ)
26
+
27
+ set(bin_name "${PROJECT_NAME}_${targ}")
28
+
29
+ if(${targ} STREQUAL "tuidemo")
30
+ set(src_files ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/tuidemo.c ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/tui.c)
31
+ else()
32
+ set(src_files ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${targ}.c)
33
+ endif()
34
+
35
+ add_executable(${bin_name} ${src_files})
36
+
37
+ if(PDC_WIDE)
38
+ target_link_libraries(${bin_name} ${PDCURSE_PROJ} ${EXTRA_LIBS}
39
+ "${SDL2_LIBRARIES};${SDL2_TTF_LIBRARY};${FT2_LIBRARY};${ZLIB_LIBRARY};${SDL2_DEP_LIBRARIES}")
40
+ else()
41
+ target_link_libraries(${bin_name} ${PDCURSE_PROJ} ${EXTRA_LIBS}
42
+ "${SDL2_LIBRARIES};${SDL2_TTF_DEP_LIBRARIES};${SDL2_DEP_LIBRARIES}")
43
+ endif()
44
+
45
+ add_dependencies(${bin_name} ${PDCURSE_PROJ})
46
+ set_target_properties(${bin_name} PROPERTIES OUTPUT_NAME ${targ})
47
+
48
+ install(TARGETS ${bin_name} RUNTIME DESTINATION ${PDCURSES_DIST}/bin/${PROJECT_NAME} COMPONENT applications)
49
+
50
+ endmacro ()
51
+
52
+ sdl2_app(../demos version)
53
+ sdl2_app(../demos firework)
54
+ sdl2_app(../demos ozdemo)
55
+ sdl2_app(../demos newtest)
56
+ sdl2_app(../demos ptest)
57
+ sdl2_app(../demos rain)
58
+ sdl2_app(../demos testcurs)
59
+ sdl2_app(../demos tuidemo)
60
+ sdl2_app(../demos worm)
61
+ sdl2_app(../demos xmas)
62
+ sdl2_app(./ sdltest)
63
+
64
+ if(WIN32)
65
+ set_target_properties(${PROJECT_NAME}_newtest PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS")
66
+ endif(WIN32)
67
+
68
+ if(PDC_SDL2_DEPS_BUILD)
69
+ if(PDC_WIDE)
70
+ add_dependencies(${PDCURSE_PROJ} sdl2_ext sdl2_ttf_ext)
71
+ else()
72
+ add_dependencies(${PDCURSE_PROJ} sdl2_ext)
73
+ endif()
74
+ endif()
75
+
76
+ set(CPACK_COMPONENTS_ALL applications)
@@ -0,0 +1,164 @@
1
+ # Visual C++ & Intel(R) NMakefile for PDCurses library - Win32 VC++ 2.0+
2
+ #
3
+ # Note: currently NOT working (at least not with VC 2015)
4
+ #
5
+ # Usage: nmake -f [path\]Makefile.vc [DEBUG=] [DLL=] [WIDE=] [UTF8=]
6
+ # [ICC=] [CHTYPE_32=] [IX86=] [CHTYPE_16=] [target]
7
+ # [SDL_INCLUDE_DIR=path\to\SDL\includes] [SDL_LIB_DIR=path\to\SDL\libs]
8
+ #
9
+ # where target can be any of:
10
+ # [all|demos|pdcurses.lib|testcurs.exe...]
11
+
12
+ # CHTYPE_## is used to override the default 64-bit chtypes in favor
13
+ # of "traditional" 32- or 16-bit chtypes.
14
+ # IX86 is used to build 32-bit code instead of 64-bit
15
+ # ICC is used to invoke Intel (R) tools icl.exe and xilink.exe, instead of
16
+ # MS tools cl.exe and link.exe
17
+
18
+ O = obj
19
+
20
+ !ifndef PDCURSES_SRCDIR
21
+ PDCURSES_SRCDIR = ..
22
+ !endif
23
+
24
+ INCLUDES =
25
+
26
+ !ifdef SDL_INCLUDE_DIR
27
+ INCLUDES = $(INCLUDES) -I $(SDL_INCLUDE_DIR)
28
+ !endif
29
+
30
+ !ifndef SDL_LIB_DIR
31
+ SDL_LIB_DIR = .
32
+ !endif
33
+
34
+
35
+ !include $(PDCURSES_SRCDIR)\version.mif
36
+ !include $(PDCURSES_SRCDIR)\libobjs.mif
37
+
38
+ osdir = $(PDCURSES_SRCDIR)\sdl2
39
+
40
+ PDCURSES_WIN_H = $(osdir)\pdcsdl.h
41
+
42
+ !ifdef ICC
43
+ CC = icl.exe -nologo
44
+ LINK = xilink.exe -nologo
45
+ !else
46
+ CC = cl.exe -nologo
47
+ LINK = link.exe -nologo
48
+ !endif
49
+
50
+ !ifdef DEBUG
51
+ CFLAGS = $(INCLUDES) -Dmain=SDL_main -Z7 -DPDCDEBUG -MT -D_CRT_SECURE_NO_WARNINGS
52
+ LDFLAGS = -debug -pdb:none
53
+ !else
54
+ CFLAGS = $(INCLUDES) -Dmain=SDL_main -Ox -MT -W3 -D_CRT_SECURE_NO_WARNINGS
55
+ LDFLAGS =
56
+ !endif
57
+
58
+ LDFLAGS = $(LDFLAGS) /LIBPATH:$(SDL_LIB_DIR) SDL2.lib SDL2main.lib /ENTRY:SDL_main /SUBSYSTEM:Console
59
+
60
+ !ifdef WIDE
61
+ WIDEOPT = -DPDC_WIDE
62
+ LDFLAGS = $(LDFLAGS) SDL2_ttf.lib
63
+ !endif
64
+
65
+ !ifdef UTF8
66
+ UTF8OPT = -DPDC_FORCE_UTF8
67
+ !endif
68
+
69
+ !ifdef CHTYPE_32
70
+ CHTYPE_FLAGS= -DCHTYPE_32
71
+ !endif
72
+
73
+ !ifdef CHTYPE_16
74
+ CHTYPE_FLAGS= -DCHTYPE_16
75
+ !endif
76
+
77
+ SHL_LD = link $(LDFLAGS) /NOLOGO /DLL /OUT:pdcurses.dll
78
+
79
+ CCLIBS = user32.lib gdi32.lib advapi32.lib shell32.lib comdlg32.lib
80
+ # may need to add msvcrt.lib for VC 2.x, VC 5.0 doesn't want it
81
+ #CCLIBS = msvcrt.lib user32.lib gdi32.lib advapi32.lib comdlg32.lib
82
+
83
+ !ifdef WIDE
84
+ WIDEOPT = -DPDC_WIDE
85
+ !endif
86
+
87
+ LIBEXE = lib -nologo
88
+
89
+ LIBCURSES = pdcurses.lib
90
+ CURSESDLL = pdcurses.dll
91
+
92
+ !ifdef DLL
93
+ DLLOPT = -DPDC_DLL_BUILD
94
+ PDCLIBS = $(CURSESDLL)
95
+ !else
96
+ PDCLIBS = $(LIBCURSES)
97
+ !endif
98
+
99
+ BUILD = $(CC) -I$(PDCURSES_SRCDIR) -c $(CFLAGS) $(CHTYPE_FLAGS) $(DLLOPT) \
100
+ $(WIDEOPT) $(UTF8OPT)
101
+
102
+ all: $(PDCLIBS) $(DEMOS)
103
+
104
+ clean:
105
+ -del *.obj
106
+ -del *.lib
107
+ -del *.exe
108
+ -del *.dll
109
+ -del *.exp
110
+ -del *.res
111
+
112
+ DEMOOBJS = $(DEMOS:.exe=.obj) tui.obj
113
+
114
+ $(LIBOBJS) $(PDCOBJS) : $(PDCURSES_HEADERS)
115
+ $(PDCOBJS) : $(PDCURSES_WIN_H)
116
+ $(DEMOOBJS) : $(PDCURSES_CURSES_H)
117
+ $(DEMOS) : $(LIBCURSES)
118
+ panel.obj : $(PANEL_HEADER)
119
+ terminfo.obj: $(TERM_HEADER)
120
+
121
+ !ifndef DLL
122
+ $(LIBCURSES) : $(LIBOBJS) $(PDCOBJS)
123
+ $(LIBEXE) -out:$@ $(LIBOBJS) $(PDCOBJS)
124
+ -copy $(LIBCURSES) panel.lib
125
+ !endif
126
+
127
+ $(CURSESDLL) : $(LIBOBJS) $(PDCOBJS) pdcurses.obj
128
+ $(SHL_LD) $(LIBOBJS) $(PDCOBJS) pdcurses.obj $(CCLIBS)
129
+ -copy $(LIBCURSES) panel.lib
130
+
131
+ pdcurses.res pdcurses.obj: $(osdir)\pdcurses.rc $(osdir)\pdcurses.ico
132
+ rc /r /fopdcurses.res $(osdir)\pdcurses.rc
133
+ !ifdef IX86
134
+ cvtres /MACHINE:IX86 /NOLOGO /OUT:pdcurses.obj pdcurses.res
135
+ !else
136
+ cvtres /MACHINE:X64 /NOLOGO /OUT:pdcurses.obj pdcurses.res
137
+ !endif
138
+
139
+ {$(srcdir)\}.c{}.obj::
140
+ $(BUILD) $<
141
+
142
+ {$(osdir)\}.c{}.obj::
143
+ $(BUILD) $<
144
+
145
+ {$(demodir)\}.c{}.obj::
146
+ $(BUILD) $<
147
+
148
+ .obj.exe:
149
+ $(LINK) $< $(LDFLAGS) $(LIBCURSES) $(CCLIBS)
150
+
151
+ tuidemo.exe: tuidemo.obj tui.obj
152
+ $(LINK) $*.obj tui.obj $(LDFLAGS) $(LIBCURSES) $(CCLIBS)
153
+
154
+ tui.obj: $(demodir)\tui.c $(demodir)\tui.h
155
+ $(BUILD) -I$(demodir) $(demodir)\tui.c
156
+
157
+ tuidemo.obj: $(demodir)\tuidemo.c
158
+ $(BUILD) -I$(demodir) $(demodir)\tuidemo.c
159
+
160
+ PLATFORM1 = Visual C++
161
+ PLATFORM2 = Microsoft Visual C/C++ for Win32
162
+ ARCNAME = pdc$(VER)_vc_w32
163
+
164
+ !include $(PDCURSES_SRCDIR)\makedist.mif