imported irssi.
[silc.git] / apps / irssi / src / fe-text / screen.h
diff --git a/apps/irssi/src/fe-text/screen.h b/apps/irssi/src/fe-text/screen.h
new file mode 100644 (file)
index 0000000..c1449bf
--- /dev/null
@@ -0,0 +1,46 @@
+#ifndef __SCREEN_H
+#define __SCREEN_H
+
+#if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
+#  include <ncurses.h>
+#else
+#  include <curses.h>
+#endif
+
+/* Some curseses include term.h, which #defines some things breaking irssi */
+#undef lines
+#undef key_backspace
+#undef tab
+
+#define ATTR_UNDERLINE 0x100
+#define ATTR_COLOR8    0x200
+#define ATTR_REVERSE   0x400
+
+/* XXX I hope this could be integrated into BX.
+ * XXX Well, this should be done via libc,
+ *     but FreeBSD libc support is quite LAME.
+ *     Macro below are copied from lynx.
+ *
+ *                             clive@FreeBSD.org
+ */
+#ifdef WANT_BIG5
+/* XXX I didn't check the encoding range of big5+. This is standard big5. */
+#define is_big5_los(lo) (((char)0x40<=lo)&&(lo<=(char)0x7E))   /* standard */
+#define is_big5_lox(lo) (((char)0x80<=lo)&&(lo<=(char)0xFE))   /* extended */
+#define is_big5_hi(hi)  (((char)0x81<=hi)&&(hi<=(char)0xFE))
+#define is_big5(hi,lo) is_big5_hi(hi) && (is_big5_los(lo) || is_big5_lox(lo))
+#endif WANT_BIG5
+
+int init_screen(void); /* Initialize screen, detect screen length */
+void deinit_screen(void); /* Deinitialize screen */
+
+void set_color(WINDOW *window, int col);
+void set_bg(WINDOW *window, int col);
+
+void move_cursor(int y, int x);
+
+void screen_refresh_freeze(void);
+void screen_refresh_thaw(void);
+void screen_refresh(WINDOW *window);
+
+#endif