lynx-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

lynx-dev [PATCH 2.8.4dev.20] Styles in menu


From: Ilya Zakharevich
Subject: lynx-dev [PATCH 2.8.4dev.20] Styles in menu
Date: Sun, 20 May 2001 02:32:49 -0400
User-agent: Mutt/1.2.5i

This patch makes the style of menu border/bg/entry/number/active-entry
and scroll indicator settable.  The names in lynx.lss are

  menu.frame menu.bg menu.n menu.entry menu.active menu.sb

Enjoy,
Ilya

--- src/LYCurses.c      2001/05/02 09:06:45     1.1
+++ src/LYCurses.c      2001/05/20 06:02:32
@@ -330,6 +330,7 @@ PUBLIC void LYbox ARGS2(
      * specify our own ASCII characters for the corners and call
      * wborder() instead of box(). - kw
      */
+    LynxWChangeStyle(win, s_menu_frame, STACK_ON);
 #ifdef HAVE_WBORDER
     if (!boxvert || !boxhori)
        box(win, boxvert, boxhori);
@@ -340,6 +341,7 @@ PUBLIC void LYbox ARGS2(
 #else
     box(win, boxvert, boxhori);
 #endif
+    LynxWChangeStyle(win, s_menu_frame, STACK_OFF);
 #ifdef CSS
     if (formfield)
        wcurses_css(win, "frame", ABS_OFF);
@@ -414,7 +416,7 @@ PRIVATE int LYAttrset ARGS3(
     }
 }
 
-PRIVATE void curses_w_style ARGS3(
+PUBLIC void curses_w_style ARGS3(
        WINDOW*,        win,
        int,            style,
        int,            dir)
@@ -471,7 +473,7 @@ PRIVATE void curses_w_style ARGS3(
                        "in LynxChangeStyle(curses_w_style)"));
            last_colorattr_ptr--;
        }
-       last_styles[last_colorattr_ptr++] = getattrs(LYwin);
+       last_styles[last_colorattr_ptr++] = getattrs(win);
        /* don't cache style changes for active links */
 #if OMIT_SCN_KEEPING
        /* since we don't compute the hcode to stack off in HTML.c, we
@@ -1509,7 +1511,21 @@ PUBLIC WINDOW *LYstartPopup ARGS4(
        !(form_window = newwin(height, 0, top_y, 0))) {
        HTAlert(POPUP_FAILED);
     } else {
+       attr_t b;
+
        LYsubwindow(form_window);
+#  ifdef USE_COLOR_STYLE
+       /* Get a proper value for the attribute */
+       LynxWChangeStyle(form_window, s_menu_bg, STACK_ON);
+       b = getattrs(form_window);
+       LynxWChangeStyle(form_window, s_menu_bg, STACK_OFF);
+       wbkgd(form_window, b | ' ');
+       /* wbkgdset does not make a lot of sense with USE_COLOR_STYLE
+          since it *forces* attributes on all the cells in the window.
+          Undo the change done in LYsubwindow, since we set our styles.
+        */
+       wbkgdset(form_window, (b & ~(A_BOLD|A_BLINK)) | ' ');
+#  endif
     }
 #endif /* USE_SLANG */
     return form_window;
--- src/LYCurses.h      2001/05/02 09:23:53     1.1
+++ src/LYCurses.h      2001/05/02 09:27:12
@@ -319,7 +319,11 @@ extern void curses_style PARAMS((int sty
 extern void setHashStyle PARAMS((int style, int color, int cattr, int mono, 
char* element));
 extern void setStyle PARAMS((int style, int color, int cattr, int mono));
 extern void wcurses_css PARAMS((WINDOW * win, char* name, int dir));
-#define LynxChangeStyle(style,dir) curses_style(style,dir)
+extern void curses_w_style PARAMS((WINDOW* win, int style, int dir));
+#  define LynxChangeStyle(style,dir) curses_style(style,dir)
+#  define LynxWChangeStyle(win,style,dir) curses_w_style(win,style,dir)
+#else
+#  define LynxWChangeStyle(win,style,dir)      1
 #endif /* USE_COLOR_STYLE */
 
 #if USE_COLOR_TABLE
--- src/LYHash.h        2001/05/02 09:58:04     1.1
+++ src/LYHash.h        2001/05/02 09:59:36
@@ -50,6 +50,12 @@ extern int   s_prompt_sel;
 extern int     s_status;
 extern int     s_title;
 extern int     s_whereis;
+extern int     s_menu_frame;
+extern int     s_menu_bg;
+extern int     s_menu_number;
+extern int     s_menu_entry;
+extern int     s_menu_active;
+extern int     s_menu_sb;
 
 #ifdef USE_SCROLLBAR
 extern int     s_sb_aa;
--- src/LYStrings.c     2001/05/02 07:48:59     1.3
+++ src/LYStrings.c     2001/05/02 10:46:56
@@ -3650,13 +3650,29 @@ PRIVATE void draw_option ARGS7(
     if (reversed)
        SLsmg_set_color(0);
 #else
-    wmove(win, entry, 2);
+    wmove(win, entry, 1);
+    LynxWChangeStyle(win, s_menu_entry, STACK_ON);
+    waddch(win, ' ');
+    LynxWChangeStyle(win, s_menu_entry, STACK_OFF);
+    LynxWChangeStyle(win, s_menu_number, STACK_ON);
     waddstr(win, Cnum);
+    LynxWChangeStyle(win, s_menu_number, STACK_OFF);
+#ifdef USE_COLOR_STYLE
+    LynxWChangeStyle(win, reversed ? s_menu_active : s_menu_entry, STACK_ON);
+#else
     if (reversed)
        wstart_reverse(win);
+#endif
     LYpaddstr(win, width, value);
+#ifdef USE_COLOR_STYLE
+    LynxWChangeStyle(win, reversed ? s_menu_active : s_menu_entry, STACK_OFF);
+#else
     if (reversed)
        wstop_reverse(win);
+#endif
+    LynxWChangeStyle(win, s_menu_entry, STACK_ON);
+    waddch(win, ' ');
+    LynxWChangeStyle(win, s_menu_entry, STACK_OFF);
 #endif /* USE_SLANG */
 }
 
@@ -3918,11 +3934,15 @@ redraw:
            }
            if (can_scroll & ~can_scroll_was & CAN_SCROLL_UP) {
                wmove(form_window, 1, Lnum + width + 3);
+               LynxWChangeStyle(form_window, s_menu_sb, STACK_ON);
                waddch(form_window, ACS_UARROW);
+               LynxWChangeStyle(form_window, s_menu_sb, STACK_OFF);
            }
            if (can_scroll & ~can_scroll_was & CAN_SCROLL_DOWN) {
                wmove(form_window, length, Lnum + width + 3);
+               LynxWChangeStyle(form_window, s_menu_sb, STACK_ON);
                waddch(form_window, ACS_DARROW);
+               LynxWChangeStyle(form_window, s_menu_sb, STACK_OFF);
            }
        }
 
--- src/LYStyle.c       2001/05/02 09:58:20     1.1
+++ src/LYStyle.c       2001/05/02 10:25:16
@@ -1,6 +1,6 @@
 /* character level styles for Lynx
  * (c) 1996 Rob Partington -- donated to the Lyncei (if they want it :-)
- * $Id: LYStyle.c,v 1.1 2001/05/02 09:58:20 vera Exp $
+ * $Id: LYStyle.c,v 1.1 2001/05/02 09:58:20 vera Exp vera $
  */
 #include <HTUtils.h>
 #include <HTML.h>
@@ -67,6 +67,12 @@ PUBLIC int s_prompt_sel              = NOSTYLE;
 PUBLIC int s_status            = NOSTYLE;
 PUBLIC int s_title             = NOSTYLE;
 PUBLIC int s_whereis           = NOSTYLE;
+PUBLIC int s_menu_frame                = NOSTYLE;
+PUBLIC int s_menu_bg           = NOSTYLE;
+PUBLIC int s_menu_number       = NOSTYLE;
+PUBLIC int s_menu_entry                = NOSTYLE;
+PUBLIC int s_menu_active       = NOSTYLE;
+PUBLIC int s_menu_sb           = NOSTYLE;
 
 #ifdef USE_SCROLLBAR
 PUBLIC int s_sb_aa             = NOSTYLE;
@@ -231,6 +237,12 @@ PRIVATE void parse_style ARGS1(char*,buf
        { "edit.prompt.marked", DSTYLE_ELEMENTS,        &s_prompt_sel },
        { "edit.prompt",        DSTYLE_ELEMENTS,        &s_prompt_edit },
        { "forwbackw.arrow",    DSTYLE_ELEMENTS,        &s_forw_backw },
+       { "menu.frame",         DSTYLE_ELEMENTS,        &s_menu_frame },
+       { "menu.bg",            DSTYLE_ELEMENTS,        &s_menu_bg },
+       { "menu.n",             DSTYLE_ELEMENTS,        &s_menu_number },
+       { "menu.entry",         DSTYLE_ELEMENTS,        &s_menu_entry },
+       { "menu.active",        DSTYLE_ELEMENTS,        &s_menu_active },
+       { "menu.sb",            DSTYLE_ELEMENTS,        &s_menu_sb },
     };
     unsigned n;
     BOOL found = FALSE;
@@ -423,6 +435,11 @@ PUBLIC void parse_userstyles NOARGS
     dft_style(s_aedit_pad,             s_aedit);
     dft_style(s_curedit,               s_aedit);
     dft_style(s_aedit_sel,             s_aedit);
+    dft_style(s_menu_bg,               s_normal);
+    dft_style(s_menu_entry,            s_menu_bg);
+    dft_style(s_menu_frame,            s_menu_bg);
+    dft_style(s_menu_number,           s_menu_bg);
+    dft_style(s_menu_active,           s_alink);
 }
 
 

; To UNSUBSCRIBE: Send "unsubscribe lynx-dev" to address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]