pdcurses/pdcsetsc.c

changeset 97
2d43f05b284c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pdcurses/pdcsetsc.c	Thu Jul 23 18:07:39 2015 +0300
@@ -0,0 +1,89 @@
+/* Public Domain Curses */
+
+#include "pdcwin.h"
+
+RCSID("$Id: pdcsetsc.c,v 1.40 2008/07/14 04:24:52 wmcbrine Exp $")
+
+/*man-start**************************************************************
+
+  Name:                                                         pdcsetsc
+
+  Synopsis:
+        int PDC_set_blink(bool blinkon);
+        void PDC_set_title(const char *title);
+
+  Description:
+        PDC_set_blink() toggles whether the A_BLINK attribute sets an
+        actual blink mode (TRUE), or sets the background color to high
+        intensity (FALSE). The default is platform-dependent (FALSE in
+        most cases). It returns OK if it could set the state to match 
+        the given parameter, ERR otherwise. Current platforms also 
+        adjust the value of COLORS according to this function -- 16 for 
+        FALSE, and 8 for TRUE.
+
+        PDC_set_title() sets the title of the window in which the curses
+        program is running. This function may not do anything on some
+        platforms. (Currently it only works in Win32 and X11.)
+
+  Portability                                X/Open    BSD    SYS V
+        PDC_set_blink                           -       -       -
+        PDC_set_title                           -       -       -
+
+**man-end****************************************************************/
+
+int PDC_curs_set(int visibility)
+{
+    CONSOLE_CURSOR_INFO cci;
+    int ret_vis;
+
+    PDC_LOG(("PDC_curs_set() - called: visibility=%d\n", visibility));
+
+    ret_vis = SP->visibility;
+
+    if (GetConsoleCursorInfo(pdc_con_out, &cci) == FALSE)
+        return ERR;
+
+    switch(visibility)
+    {
+    case 0:             /* invisible */
+        cci.bVisible = FALSE;
+        break;
+    case 2:             /* highly visible */
+        cci.bVisible = TRUE;
+        cci.dwSize = 95;
+        break;
+    default:            /* normal visibility */
+        cci.bVisible = TRUE;
+        cci.dwSize = SP->orig_cursor;
+        break;
+    }
+
+    if (SetConsoleCursorInfo(pdc_con_out, &cci) == FALSE)
+        return ERR;
+
+    SP->visibility = visibility;
+    return ret_vis;
+}
+
+void PDC_set_title(const char *title)
+{
+#ifdef PDC_WIDE
+    wchar_t wtitle[512];
+#endif
+    PDC_LOG(("PDC_set_title() - called:<%s>\n", title));
+
+#ifdef PDC_WIDE
+    PDC_mbstowcs(wtitle, title, 511);
+    SetConsoleTitleW(wtitle);
+#else
+    SetConsoleTitleA(title);
+#endif
+}
+
+int PDC_set_blink(bool blinkon)
+{
+    if (pdc_color_started)
+        COLORS = 16;
+
+    return blinkon ? ERR : OK;
+}

mercurial