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.
- checksums.yaml +4 -4
- data/.github/workflows/macos.yml +19 -0
- data/.github/workflows/ubuntu.yml +26 -0
- data/.github/workflows/windows.yml +28 -0
- data/.gitmodules +1 -1
- data/.travis.yml +6 -3
- data/History.md +40 -0
- data/README.md +4 -1
- data/Rakefile +0 -83
- data/curses.gemspec +2 -3
- data/ext/curses/curses.c +1271 -151
- data/ext/curses/extconf.rb +140 -17
- data/lib/curses.rb +5 -12
- data/sample/form.rb +52 -0
- data/sample/menu.rb +1 -1
- data/vendor/PDCurses/.gitignore +47 -0
- data/vendor/PDCurses/.travis.yml +49 -0
- data/vendor/PDCurses/CMakeLists.txt +68 -0
- data/vendor/PDCurses/HISTORY.md +2036 -0
- data/vendor/PDCurses/IMPLEMNT.md +327 -0
- data/vendor/PDCurses/README.md +77 -0
- data/vendor/PDCurses/acs_defs.h +265 -0
- data/vendor/PDCurses/appveyor.yml +218 -0
- data/vendor/PDCurses/cmake/README.md +71 -0
- data/vendor/PDCurses/cmake/build_dependencies.cmake +178 -0
- data/vendor/PDCurses/cmake/build_options.cmake +25 -0
- data/vendor/PDCurses/cmake/dll_version.cmake +26 -0
- data/vendor/PDCurses/cmake/gen_config_header.cmake +43 -0
- data/vendor/PDCurses/cmake/get_version.cmake +17 -0
- data/vendor/PDCurses/cmake/make_uninstall.cmake +19 -0
- data/vendor/PDCurses/cmake/project_common.cmake +121 -0
- data/vendor/PDCurses/cmake/resource.in.cmake +52 -0
- data/vendor/PDCurses/cmake/sdl2_ttf/CMakeLists.txt +83 -0
- data/vendor/PDCurses/cmake/target_arch.cmake +36 -0
- data/vendor/PDCurses/cmake/version.in.cmake +73 -0
- data/vendor/PDCurses/cmake/watcom_open_dos16_toolchain.cmake +96 -0
- data/vendor/PDCurses/cmake/watcom_open_dos32_toolchain.cmake +106 -0
- data/vendor/PDCurses/cmake/watcom_open_os2v2_toolchain.cmake +105 -0
- data/vendor/PDCurses/curses.h +1846 -0
- data/vendor/PDCurses/curspriv.h +134 -0
- data/vendor/PDCurses/demos/README.md +25 -0
- data/vendor/PDCurses/demos/firework.c +144 -0
- data/vendor/PDCurses/demos/newtest.c +581 -0
- data/vendor/PDCurses/demos/ozdemo.c +447 -0
- data/vendor/PDCurses/demos/ptest.c +283 -0
- data/vendor/PDCurses/demos/rain.c +157 -0
- data/vendor/PDCurses/demos/testcurs.c +1607 -0
- data/vendor/PDCurses/demos/tui.c +1048 -0
- data/vendor/PDCurses/demos/tui.h +65 -0
- data/vendor/PDCurses/demos/tuidemo.c +233 -0
- data/vendor/PDCurses/demos/version.c +61 -0
- data/vendor/PDCurses/demos/worm.c +432 -0
- data/vendor/PDCurses/demos/xmas.c +955 -0
- data/vendor/PDCurses/dos/CMakeLists.txt +47 -0
- data/vendor/PDCurses/dos/Makefile.bcc +83 -0
- data/vendor/PDCurses/dos/Makefile.dmc +257 -0
- data/vendor/PDCurses/dos/Makefile.msc +113 -0
- data/vendor/PDCurses/dos/Makefile.wcc +107 -0
- data/vendor/PDCurses/dos/README.md +51 -0
- data/vendor/PDCurses/dos/bccdos.lrf +9 -0
- data/vendor/PDCurses/dos/mscdos.lrf +50 -0
- data/vendor/PDCurses/dos/pdcclip.c +132 -0
- data/vendor/PDCurses/dos/pdcdisp.c +135 -0
- data/vendor/PDCurses/dos/pdcdos.h +194 -0
- data/vendor/PDCurses/dos/pdcgetsc.c +98 -0
- data/vendor/PDCurses/dos/pdckbd.c +513 -0
- data/vendor/PDCurses/dos/pdcscrn.c +785 -0
- data/vendor/PDCurses/dos/pdcsetsc.c +101 -0
- data/vendor/PDCurses/dos/pdcutil.c +212 -0
- data/vendor/PDCurses/libobjs.mif +26 -0
- data/vendor/PDCurses/makedist.mif +20 -0
- data/vendor/PDCurses/man/README.md +21 -0
- data/vendor/PDCurses/man/intro.md +361 -0
- data/vendor/PDCurses/man/manext.c +119 -0
- data/vendor/PDCurses/man/sdl.md +152 -0
- data/vendor/PDCurses/man/sdl2.md +58 -0
- data/vendor/PDCurses/man/x11.md +407 -0
- data/vendor/PDCurses/ncurses/CMakeLists.txt +66 -0
- data/vendor/PDCurses/ncurses/README.md +26 -0
- data/vendor/PDCurses/ncurses/makefile +29 -0
- data/vendor/PDCurses/os2/CMakeLists.txt +41 -0
- data/vendor/PDCurses/os2/Makefile.bcc +90 -0
- data/vendor/PDCurses/os2/Makefile.wcc +43 -0
- data/vendor/PDCurses/os2/README.md +43 -0
- data/vendor/PDCurses/os2/iccos2.lrf +50 -0
- data/vendor/PDCurses/os2/iccos2.mak +256 -0
- data/vendor/PDCurses/os2/pdcclip.c +188 -0
- data/vendor/PDCurses/os2/pdcdisp.c +93 -0
- data/vendor/PDCurses/os2/pdcgetsc.c +89 -0
- data/vendor/PDCurses/os2/pdckbd.c +521 -0
- data/vendor/PDCurses/os2/pdcos2.h +55 -0
- data/vendor/PDCurses/os2/pdcscrn.c +449 -0
- data/vendor/PDCurses/os2/pdcsetsc.c +112 -0
- data/vendor/PDCurses/os2/pdcutil.c +52 -0
- data/vendor/PDCurses/panel.h +56 -0
- data/vendor/PDCurses/pdcurses/README.md +25 -0
- data/vendor/PDCurses/pdcurses/addch.c +693 -0
- data/vendor/PDCurses/pdcurses/addchstr.c +245 -0
- data/vendor/PDCurses/pdcurses/addstr.c +240 -0
- data/vendor/PDCurses/pdcurses/attr.c +359 -0
- data/vendor/PDCurses/pdcurses/beep.c +68 -0
- data/vendor/PDCurses/pdcurses/bkgd.c +223 -0
- data/vendor/PDCurses/pdcurses/border.c +411 -0
- data/vendor/PDCurses/pdcurses/clear.c +159 -0
- data/vendor/PDCurses/pdcurses/color.c +298 -0
- data/vendor/PDCurses/pdcurses/debug.c +109 -0
- data/vendor/PDCurses/pdcurses/delch.c +96 -0
- data/vendor/PDCurses/pdcurses/deleteln.c +211 -0
- data/vendor/PDCurses/pdcurses/deprec.c +27 -0
- data/vendor/PDCurses/pdcurses/getch.c +417 -0
- data/vendor/PDCurses/pdcurses/getstr.c +474 -0
- data/vendor/PDCurses/pdcurses/getyx.c +139 -0
- data/vendor/PDCurses/pdcurses/inch.c +127 -0
- data/vendor/PDCurses/pdcurses/inchstr.c +214 -0
- data/vendor/PDCurses/pdcurses/initscr.c +367 -0
- data/vendor/PDCurses/pdcurses/inopts.c +324 -0
- data/vendor/PDCurses/pdcurses/insch.c +271 -0
- data/vendor/PDCurses/pdcurses/insstr.c +264 -0
- data/vendor/PDCurses/pdcurses/instr.c +246 -0
- data/vendor/PDCurses/pdcurses/kernel.c +259 -0
- data/vendor/PDCurses/pdcurses/keyname.c +157 -0
- data/vendor/PDCurses/pdcurses/mouse.c +438 -0
- data/vendor/PDCurses/pdcurses/move.c +57 -0
- data/vendor/PDCurses/pdcurses/outopts.c +159 -0
- data/vendor/PDCurses/pdcurses/overlay.c +214 -0
- data/vendor/PDCurses/pdcurses/pad.c +260 -0
- data/vendor/PDCurses/pdcurses/panel.c +633 -0
- data/vendor/PDCurses/pdcurses/printw.c +126 -0
- data/vendor/PDCurses/pdcurses/refresh.c +279 -0
- data/vendor/PDCurses/pdcurses/scanw.c +578 -0
- data/vendor/PDCurses/pdcurses/scr_dump.c +213 -0
- data/vendor/PDCurses/pdcurses/scroll.c +101 -0
- data/vendor/PDCurses/pdcurses/slk.c +591 -0
- data/vendor/PDCurses/pdcurses/termattr.c +182 -0
- data/vendor/PDCurses/pdcurses/terminfo.c +217 -0
- data/vendor/PDCurses/pdcurses/touch.c +163 -0
- data/vendor/PDCurses/pdcurses/util.c +312 -0
- data/vendor/PDCurses/pdcurses/window.c +569 -0
- data/vendor/PDCurses/sdl1/Makefile.mng +110 -0
- data/vendor/PDCurses/sdl1/README.md +31 -0
- data/vendor/PDCurses/sdl1/deffont.h +385 -0
- data/vendor/PDCurses/sdl1/deficon.h +23 -0
- data/vendor/PDCurses/sdl1/pdcclip.c +131 -0
- data/vendor/PDCurses/sdl1/pdcdisp.c +373 -0
- data/vendor/PDCurses/sdl1/pdcgetsc.c +30 -0
- data/vendor/PDCurses/sdl1/pdckbd.c +405 -0
- data/vendor/PDCurses/sdl1/pdcscrn.c +414 -0
- data/vendor/PDCurses/sdl1/pdcsdl.h +31 -0
- data/vendor/PDCurses/sdl1/pdcsetsc.c +64 -0
- data/vendor/PDCurses/sdl1/pdcutil.c +40 -0
- data/vendor/PDCurses/sdl1/sdltest.c +79 -0
- data/vendor/PDCurses/sdl2/CMakeLists.txt +76 -0
- data/vendor/PDCurses/sdl2/Makefile.vc +164 -0
- data/vendor/PDCurses/sdl2/README.md +34 -0
- data/vendor/PDCurses/sdl2/deffont.h +385 -0
- data/vendor/PDCurses/sdl2/deficon.h +23 -0
- data/vendor/PDCurses/sdl2/pdcclip.c +93 -0
- data/vendor/PDCurses/sdl2/pdcdisp.c +534 -0
- data/vendor/PDCurses/sdl2/pdcgetsc.c +30 -0
- data/vendor/PDCurses/sdl2/pdckbd.c +480 -0
- data/vendor/PDCurses/sdl2/pdcscrn.c +443 -0
- data/vendor/PDCurses/sdl2/pdcsdl.h +33 -0
- data/vendor/PDCurses/sdl2/pdcsetsc.c +67 -0
- data/vendor/PDCurses/sdl2/pdcutil.c +39 -0
- data/vendor/PDCurses/sdl2/sdltest.c +81 -0
- data/vendor/PDCurses/term.h +48 -0
- data/vendor/PDCurses/version.mif +7 -0
- data/vendor/PDCurses/vt/CMakeLists.txt +28 -0
- data/vendor/PDCurses/vt/Makefile.bcc +111 -0
- data/vendor/PDCurses/vt/Makefile.dmc +258 -0
- data/vendor/PDCurses/vt/Makefile.vc +144 -0
- data/vendor/PDCurses/vt/Makefile.wcc +107 -0
- data/vendor/PDCurses/vt/README.md +64 -0
- data/vendor/PDCurses/vt/pdcclip.c +20 -0
- data/vendor/PDCurses/vt/pdcdisp.c +284 -0
- data/vendor/PDCurses/vt/pdcgetsc.c +27 -0
- data/vendor/PDCurses/vt/pdckbd.c +394 -0
- data/vendor/PDCurses/vt/pdcscrn.c +434 -0
- data/vendor/PDCurses/vt/pdcsetsc.c +45 -0
- data/vendor/PDCurses/vt/pdcutil.c +43 -0
- data/vendor/PDCurses/vt/pdcvt.h +16 -0
- data/vendor/PDCurses/watcom.mif +68 -0
- data/vendor/PDCurses/wincon/CMakeLists.txt +27 -0
- data/vendor/PDCurses/wincon/Makefile.bcc +88 -0
- data/vendor/PDCurses/wincon/Makefile.dmc +256 -0
- data/vendor/PDCurses/wincon/Makefile.lcc +273 -0
- data/vendor/PDCurses/wincon/Makefile.mng +176 -0
- data/vendor/PDCurses/wincon/Makefile.vc +144 -0
- data/vendor/PDCurses/wincon/Makefile.wcc +51 -0
- data/vendor/PDCurses/wincon/README.md +85 -0
- data/vendor/PDCurses/wincon/pdcclip.c +174 -0
- data/vendor/PDCurses/wincon/pdcdisp.c +143 -0
- data/vendor/PDCurses/wincon/pdcgetsc.c +55 -0
- data/vendor/PDCurses/wincon/pdckbd.c +786 -0
- data/vendor/PDCurses/wincon/pdcscrn.c +717 -0
- data/vendor/PDCurses/wincon/pdcsetsc.c +91 -0
- data/vendor/PDCurses/wincon/pdcurses.ico +0 -0
- data/vendor/PDCurses/wincon/pdcurses.rc +28 -0
- data/vendor/PDCurses/wincon/pdcutil.c +41 -0
- data/vendor/PDCurses/wincon/pdcwin.h +31 -0
- data/vendor/PDCurses/wingui/CMakeLists.txt +27 -0
- data/vendor/PDCurses/wingui/Makefile.bcc +85 -0
- data/vendor/PDCurses/wingui/Makefile.dmc +259 -0
- data/vendor/PDCurses/wingui/Makefile.lcc +273 -0
- data/vendor/PDCurses/wingui/Makefile.mng +171 -0
- data/vendor/PDCurses/wingui/Makefile.vc +144 -0
- data/vendor/PDCurses/wingui/Makefile.wcc +51 -0
- data/vendor/PDCurses/wingui/README.md +93 -0
- data/vendor/PDCurses/wingui/pdcclip.c +174 -0
- data/vendor/PDCurses/wingui/pdcdisp.c +718 -0
- data/vendor/PDCurses/wingui/pdcgetsc.c +30 -0
- data/vendor/PDCurses/wingui/pdckbd.c +143 -0
- data/vendor/PDCurses/wingui/pdcscrn.c +2797 -0
- data/vendor/PDCurses/wingui/pdcsetsc.c +89 -0
- data/vendor/PDCurses/wingui/pdcurses.ico +0 -0
- data/vendor/PDCurses/wingui/pdcurses.rc +28 -0
- data/vendor/PDCurses/wingui/pdcutil.c +61 -0
- data/vendor/PDCurses/wingui/pdcwin.h +122 -0
- data/vendor/PDCurses/x11/Makefile.in +754 -0
- data/vendor/PDCurses/x11/PDCurses.spec +82 -0
- data/vendor/PDCurses/x11/README.md +62 -0
- data/vendor/PDCurses/x11/ScrollBox.c +319 -0
- data/vendor/PDCurses/x11/ScrollBox.h +51 -0
- data/vendor/PDCurses/x11/ScrollBoxP.h +70 -0
- data/vendor/PDCurses/x11/aclocal.m4 +994 -0
- data/vendor/PDCurses/x11/big_icon.xbm +46 -0
- data/vendor/PDCurses/x11/compose.h +201 -0
- data/vendor/PDCurses/x11/config.guess +1500 -0
- data/vendor/PDCurses/x11/config.h.in +100 -0
- data/vendor/PDCurses/x11/config.sub +1616 -0
- data/vendor/PDCurses/x11/configure +6700 -0
- data/vendor/PDCurses/x11/configure.ac +295 -0
- data/vendor/PDCurses/x11/debian/changelog +6 -0
- data/vendor/PDCurses/x11/debian/compat +1 -0
- data/vendor/PDCurses/x11/debian/control +11 -0
- data/vendor/PDCurses/x11/debian/copyright +27 -0
- data/vendor/PDCurses/x11/debian/rules +98 -0
- data/vendor/PDCurses/x11/install-sh +253 -0
- data/vendor/PDCurses/x11/little_icon.xbm +14 -0
- data/vendor/PDCurses/x11/ncurses_cfg.h +45 -0
- data/vendor/PDCurses/x11/pdcclip.c +173 -0
- data/vendor/PDCurses/x11/pdcdisp.c +85 -0
- data/vendor/PDCurses/x11/pdcgetsc.c +28 -0
- data/vendor/PDCurses/x11/pdckbd.c +104 -0
- data/vendor/PDCurses/x11/pdcscrn.c +258 -0
- data/vendor/PDCurses/x11/pdcsetsc.c +95 -0
- data/vendor/PDCurses/x11/pdcutil.c +52 -0
- data/vendor/PDCurses/x11/pdcx11.c +316 -0
- data/vendor/PDCurses/x11/pdcx11.h +191 -0
- data/vendor/PDCurses/x11/sb.c +155 -0
- data/vendor/PDCurses/x11/x11.c +3686 -0
- data/vendor/PDCurses/x11/xcurses-config.in +81 -0
- 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
|