using stls should not enable new CAPAs
[apps/madmutt.git] / lib-ui / curses.h
index 4304363..cab58af 100644 (file)
 #ifndef _MUTT_CURSES_H
 #define _MUTT_CURSES_H
 
-#include <lib-lib/lib-lib.h>
 #include "mutt.h"
 
-#ifdef USE_SLANG_CURSES
-
-#ifndef unix                    /* this symbol is not defined by the hp-ux compiler (sigh) */
-#define unix
-#endif /* unix */
-
-#include "slcurses.h"
-
-#define KEY_DC SL_KEY_DELETE
-#define KEY_IC SL_KEY_IC
-
-/*
- * ncurses and SLang seem to send different characters when the Enter key is
- * pressed, so define some macros to properly detect the Enter key.
- */
-#define M_ENTER_C '\r'
-#define M_ENTER_S "\r"
-
-#else
-
-#ifdef HAVE_NCURSESW_NCURSES_H
-#include <ncursesw/ncurses.h>
-#else
-#ifdef HAVE_NCURSES_NCURSES_H
-#include <ncurses/ncurses.h>
-#else
-#ifdef HAVE_NCURSES_H
-#include <ncurses.h>
-#else
-#include <curses.h>
-#endif
-#endif
-#endif
-
-#define M_ENTER_C '\n'
-#define M_ENTER_S "\n"
-
-#endif /* USE_SLANG_CURSES */
-
 /* AIX defines ``lines'' in <term.h>, but it's used as a var name in
  * various places in Mutt
  */
 #undef lines
 #endif /* lines */
 
-#define CLEARLINE_WIN(x) move(x,(option(OPTMBOXPANE)?SidebarWidth:0)), clrtoeol()
-#define CLEARLINE(x) move(x,0), clrtoeol()
-#define CENTERLINE(x,y) move(y, (COLS-strlen(x))/2), addstr(x)
-#define BEEP() do { if (option (OPTBEEP)) beep(); } while (0)
+#define CLEARLINE(W, x) wmove(W, x,0), wclrtoeol(W)
+#define BEEP() do { if (mod_core.beep) beep(); } while (0)
 
-#if ! (defined(USE_SLANG_CURSES) || defined(HAVE_CURS_SET))
-#define curs_set(x)
-#endif
-
-#if !defined(USE_SLANG_CURSES) && defined(HAVE_BKGDSET)
-#define BKGDSET(x) bkgdset (ColorDefs[x] | ' ')
-#else
-#define BKGDSET(x)
-#endif
+#define BKGDSET(W, x)   wbkgdset(W, ColorDefs[x] | ' ')
+#define SETCOLOR(W, X)  wattrset(W, ColorDefs[X])
+#define ADDCOLOR(W, X)  wattron(W, ColorDefs[X])
 
-#if (defined(USE_SLANG_CURSES) || defined(HAVE_CURS_SET))
 void mutt_curs_set (int);
-#else
-#define mutt_curs_set(x)
-#endif
-#define PAGELEN (LINES-3)
 
 #define ctrl(c) ((c)-'@')
 
@@ -90,13 +37,13 @@ void mutt_curs_set (int);
 #endif
 
 event_t mutt_getch (void);
+#define waddwch(win, w)  waddnwstr(win, &(w), 1)
+
+void curses_initialize(void);
+void curses_install(void);
 
-void mutt_endwin (const char *);
 void mutt_flushinp (void);
-void mutt_refresh (void);
-void mutt_resize_screen (void);
 void mutt_ungetch (int, int);
-void mutt_need_hard_redraw (void);
 
 /* ----------------------------------------------------------------------------
  * Support for color
@@ -127,6 +74,17 @@ enum {
   MT_COLOR_MAX
 };
 
+/* flags for mutt_get_field() */
+#define  M_ALIAS       (1<<0)  /* do alias "completion" by calling up the alias-menu */
+#define  M_FILE        (1<<1)  /* do file completion */
+#define  M_EFILE       (1<<2)  /* do file completion, plus incoming folders */
+#define  M_CMD         (1<<3)  /* do completion on previous word */
+#define  M_PASS        (1<<4)  /* password mode (no echo) */
+#define  M_CLEAR       (1<<5)  /* clear input if printable character is pressed */
+#define  M_COMMAND     (1<<6)  /* do command completion */
+#define  M_PATTERN     (1<<7)  /* pattern mode - only used for history classes */
+#define  M_LASTFOLDER  (1<<8)  /* last-folder mode - hack hack hack */
+
 typedef struct color_line {
   regex_t rx;
   char *pattern;
@@ -157,16 +115,14 @@ void mutt_format_string (char *, ssize_t, int, int, int, char, const char *,
 void mutt_format_s (char *, ssize_t, const char *, const char *);
 void mutt_format_s_tree (char *, ssize_t, const char *, const char *);
 void mutt_free_color (int fg, int bg);
-void mutt_paddstr (int, const char *);
-#define mutt_perror(a) _mutt_perror (a, __FILE__, __LINE__)
-void _mutt_perror (const char*, const char*,int);
+void mutt_paddstr(WINDOW *, int, const char *);
+#define mutt_perror(s)  \
+  mutt_error("%s: %m (errno = %d) from %s:%i", s, errno, __FILE__, __LINE__)
 void mutt_query_exit (void);
 void mutt_query_menu (char *, ssize_t);
 void mutt_show_error (void);
 ssize_t mutt_pretty_size(char *s, ssize_t len, ssize_t n);
 
-int mutt_addwch (wchar_t);
-int mutt_alloc_color (int fg, int bg);
 int mutt_any_key_to_continue (const char *);
 int mutt_complete (char *, ssize_t);
 #define mutt_enter_fname(A,B,C,D,E) _mutt_enter_fname(A,B,C,D,E,0,NULL,NULL)
@@ -179,11 +135,9 @@ int mutt_get_field_unbuffered (char *, char *, ssize_t, int);
 int mutt_index_menu (void);
 int mutt_is_mail_list (address_t *);
 int mutt_is_subscribed_list (address_t *);
-int mutt_multi_choice (char *prompt, char *letters);
+int mutt_multi_choice (const char *prompt, const char *letters);
 int mutt_parse_color (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 int mutt_parse_uncolor (BUFFER *, BUFFER *, unsigned long, BUFFER *);
-int mutt_parse_mono (BUFFER *, BUFFER *, unsigned long, BUFFER *);
-int mutt_parse_unmono (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 int mutt_query_complete (char *, ssize_t);
 int mutt_user_is_recipient (HEADER *);
 int mutt_yesorno (const char *, int);
@@ -196,19 +150,12 @@ extern COLOR_LINE *ColorHdrList;
 extern COLOR_LINE *ColorBodyList;
 extern COLOR_LINE *ColorIndexList;
 
-void ci_init_color (void);
 void ci_start_color (void);
 
 #define mutt_make_string(A,B,C,D,E) _mutt_make_string(A,B,C,D,E,0)
 void _mutt_make_string (char *, ssize_t, const char *, CONTEXT *,
                         HEADER *, format_flag);
 
-
-#define SETCOLOR(X) attrset(ColorDefs[X])
-#define ADDCOLOR(X) attron(ColorDefs[X])
-
 #define MAYBE_REDRAW(x) if (option (OPTNEEDREDRAW)) { unset_option (OPTNEEDREDRAW); x = REDRAW_FULL; }
 
-#define SW              (option(OPTMBOXPANE)?SidebarWidth:0)
-
 #endif /* !_MUTT_CURSES_H */