emacs-devel
[Top][All Lists]
Advanced

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

Re: More enhancements to fringe bitmaps.


From: Marco Munari 16473.54072
Subject: Re: More enhancements to fringe bitmaps.
Date: Thu, 18 Mar 2004 20:05:11 +0100

~\/~ "Kim" == Kim F Storm <address@hidden> writes:
...
Kim> Stay tuned :-)

ok :)

As M.B. suggests i switch to FRINGE_FACE_ID and FRINGE_INACTIVE_FACE_ID
naming notation. (a reason exists).


I don't understand why you (Kim) introduces (on 2004-02-09 as Changelog)
right_user_fringe_face_id and left_user_fringe_face_id


The respect of this user capability create to me dubts on
what it's better... how to create optional left_user_fringe_inactive_face_id
and _user_fringe_inactive_face_id,
i can introduce differential face_id number

an highlight function of fringe could respect more by default left
and right fringe user preference.

an updated patch containing following modification follows:

M etc/TODO
removed DONE stuff
(just for rem, because you are the one who made fringe user configurable)

M lisp/faces.el
added face fringe-inactive

M lisp/ibuffer.el
text fix in desc: long lines implies big column values, not "long columns"!

M lisp/log-edit.el
fix tipo: defar insted defvar

M src/dispextern.h
added basic face FRINGE_INACTIVE_FACE_ID
added macro CURRENT_FRINGE_FACE_ID(W): returns the
FRINGE*_FACE_ID depending on window (selected/unselected)
added macro CURRENT_DELTA_FRINGE_FACE_ID(W), it's an idea (to be discussed)

M src/fringe.c
partially disabled user left and right fringe configurable
to set brutally to current basic fringe (should be discussed)
maybe we need to define right_user_fringe_inactive_face_id
right_user_fringe_inactive_face_id (better if a delta compatible to
CURRENT_DELTA_FRINGE_FACE_ID.. it's just a possibility far to be the best)

M src/window.c
other-window call Fselect_window only if selected_window is
effectively a new one (this modify enlight task when only 1 window is
in the farme for either mode-line-fringe/mode-line-inactive
and fringe/fringe_inactive)

M src/xfaces.c
added lisp object Qfringe_inactive

M src/xfns.c
personal preference (narrow scroll bar)

Index: etc/TODO
===================================================================
RCS file: /cvsroot/emacs/emacs/etc/TODO,v
retrieving revision 1.61
diff -u -r1.61 TODO
--- etc/TODO    21 Nov 2003 18:23:27 -0000      1.61
+++ etc/TODO    18 Mar 2004 18:55:42 -0000
@@ -68,9 +68,6 @@
 
 * Set fringe widths per-window/per-buffer.
 
-* Make fringe bitmaps user configurable.  Maybe add ability to add
-  additional bitmaps to the fringe from lisp.
-
 Other features we would like:
 
 * Have a command suggestion help system that recognizes patterns
Index: lisp/faces.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/faces.el,v
retrieving revision 1.282
diff -u -r1.282 faces.el
--- lisp/faces.el       27 Feb 2004 17:30:23 -0000      1.282
+++ lisp/faces.el       18 Mar 2004 18:55:45 -0000
@@ -1923,6 +1923,19 @@
   :version "21.1"
   :group 'frames
   :group 'basic-faces)
+;(put 'fringe-active 'face-alias 'fringe) ;deprecated, just to be clare
+
+(defface fringe-inactive
+  '((((class color) (background light))
+     :background "grey75")
+    (((class color) (background dark))
+     :background "grey30")
+    (t
+     :background "light gray"))
+  "Basic face for the fringes of active input emacs windows."
+  :version "21.4"
+  :group 'frames
+  :group 'basic-faces)
 
 
 (defface scroll-bar '()
Index: lisp/ibuffer.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/ibuffer.el,v
retrieving revision 1.57
diff -u -r1.57 ibuffer.el
--- lisp/ibuffer.el     1 Sep 2003 15:45:12 -0000       1.57
+++ lisp/ibuffer.el     18 Mar 2004 18:55:48 -0000
@@ -199,7 +199,7 @@
   :group 'ibuffer)
 
 (defcustom ibuffer-eliding-string "..."
-  "The string to use for eliding long columns."
+  "The string to use for eliding long lines."
   :type 'string
   :group 'ibuffer)
 
Index: lisp/log-edit.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/log-edit.el,v
retrieving revision 1.25
diff -u -r1.25 log-edit.el
--- lisp/log-edit.el    18 Mar 2004 02:48:51 -0000      1.25
+++ lisp/log-edit.el    18 Mar 2004 18:55:48 -0000
@@ -299,7 +299,7 @@
 ;;; Actual code
 ;;;
 
-(defar log-edit-font-lock-keywords
+(defvar log-edit-font-lock-keywords
   '(("\\`\\(Summary:\\)\\(.*\\)"
      (1 font-lock-keyword-face)
      (2 font-lock-function-name-face))))
Index: src/dispextern.h
===================================================================
RCS file: /cvsroot/emacs/emacs/src/dispextern.h,v
retrieving revision 1.169
diff -u -r1.169 dispextern.h
--- src/dispextern.h    14 Mar 2004 00:28:01 -0000      1.169
+++ src/dispextern.h    18 Mar 2004 18:56:06 -0000
@@ -1172,6 +1172,22 @@
       ? MATRIX_HEADER_LINE_ROW (MATRIX)->height        \
       : 0)
 
+/* Return the fringe mode relative to selected/unselected window */
+
+#define CURRENT_FRINGE_FACE_ID(W)                      \
+       ( ((W) == XWINDOW (selected_window))            \
+         ? FRINGE_FACE_ID                              \
+         : FRINGE_INACTIVE_FACE_ID)
+
+/* Return the fringe optional optional increment to FRINGE_FACE_ID
+   depending on active or inactive window */
+
+#define CURRENT_DELTA_FRINGE_FACE_ID(W)                        \
+       ( ((W) == XWINDOW (selected_window))            \
+         ? 0                                           \
+         : (FRINGE_INACTIVE_FACE_ID - FRINGE_FACE_ID))
+
+
 /* Return the desired face id for the mode line of a window, depending
    on whether the window is selected or not, or if the window is the
    scrolling window for the currently active minibuffer window.
@@ -1519,6 +1535,7 @@
   MODE_LINE_INACTIVE_FACE_ID,
   TOOL_BAR_FACE_ID,
   FRINGE_FACE_ID,
+  FRINGE_INACTIVE_FACE_ID,
   HEADER_LINE_FACE_ID,
   SCROLL_BAR_FACE_ID,
   BORDER_FACE_ID,
Index: src/fringe.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/fringe.c,v
retrieving revision 1.10
diff -u -r1.10 fringe.c
--- src/fringe.c        1 Mar 2004 23:56:44 -0000       1.10
+++ src/fringe.c        18 Mar 2004 18:56:06 -0000
@@ -104,32 +104,32 @@
 
 /* An arrow like this: `<-'.  */
 /*
-  ...xx...
-  ..xx....
-  .xx.....
-  xxxxxx..
-  xxxxxx..
-  .xx.....
-  ..xx....
-  ...xx...
+- ..... ...
+  ..x.. ...
+  .x... ...
+  xxxxx ...
+  .x... ...
+  ..x.. ...
+- ..... ...
+- ..... ...
 */
 static unsigned short left_arrow_bits[] = {
-   0x18, 0x30, 0x60, 0xfc, 0xfc, 0x60, 0x30, 0x18};
+  0x04, 0x08, 0x1f, 0x08, 0x04};
 
 
 /* Right truncation arrow bitmap `->'.  */
 /*
-  ...xx...
-  ....xx..
-  .....xx.
-  ..xxxxxx
-  ..xxxxxx
-  .....xx.
-  ....xx..
-  ...xx...
+- ........
+  ... ..x..
+  ... ...x.
+  ... xxxxx
+  ... ...x.
+  ... ..x..
+- ........
+- ........
 */
 static unsigned short right_arrow_bits[] = {
-   0x18, 0x0c, 0x06, 0x3f, 0x3f, 0x06, 0x0c, 0x18};
+  0x04, 0x02, 0x1f, 0x02, 0x04};
 
 
 /* Up arrow bitmap.  */
@@ -163,31 +163,31 @@
 
 /* Marker for continued lines.  */
 /*
-  ..xxxx..
-  ..xxxxx.
-  ......xx
-  ..x..xxx
-  ..xxxxxx
-  ..xxxxx.
-  ..xxxx..
-  ..xxxxx.
+- ........
+- ........
+- ........
+  .... xx.
+  .... ..x
+  .... x.x
+  .... xx.
+  .... xxx
 */
 static unsigned short continued_bits[] = {
-   0x3c, 0x3e, 0x03, 0x27, 0x3f, 0x3e, 0x3c, 0x3e};
+   0x06, 0x01, 0x05, 0x06, 0x07};
 
 /* Marker for continuation lines.  */
 /*
-  ..xxxx..
-  .xxxxx..
-  xx......
-  xxx..x..
-  xxxxxx..
-  .xxxxx..
-  ..xxxx..
-  .xxxxx..
+  .... .xx
+  .... x..
+  .... x.x
+  .... .xx
+  .... xxx
+- ........
+- ........
+- ........
 */
 static unsigned short continuation_bits[] = {
-   0x3c, 0x7c, 0xc0, 0xe4, 0xfc, 0x7c, 0x3c, 0x7c};
+   0x03, 0x04, 0x05, 0x03, 0x07};
 
 /* Overlay arrow bitmap.  A triangular arrow.  */
 /*
@@ -413,13 +413,14 @@
 struct fringe_bitmap standard_bitmaps[MAX_STANDARD_FRINGE_BITMAPS] =
 {
   { NULL, 0, 0, 0, 0, 0 }, /* NO_FRINGE_BITMAP */
+  /*      bits, height,           width,period,   align   , dynamic*/
   { FRBITS (unknown_bits),            8, 0, ALIGN_BITMAP_CENTER, 0 },
-  { FRBITS (left_arrow_bits),         8, 0, ALIGN_BITMAP_CENTER, 0 },
-  { FRBITS (right_arrow_bits),        8, 0, ALIGN_BITMAP_CENTER, 0 },
+  { FRBITS (left_arrow_bits),         5, 0, ALIGN_BITMAP_CENTER, 0 },
+  { FRBITS (right_arrow_bits),        5, 0, ALIGN_BITMAP_CENTER, 0 },
   { FRBITS (up_arrow_bits),           8, 0, ALIGN_BITMAP_TOP,    0 },
   { FRBITS (down_arrow_bits),         8, 0, ALIGN_BITMAP_BOTTOM, 0 },
-  { FRBITS (continued_bits),          8, 0, ALIGN_BITMAP_CENTER, 0 },
-  { FRBITS (continuation_bits),       8, 0, ALIGN_BITMAP_CENTER, 0 },
+  { FRBITS (continued_bits),          3, 0, ALIGN_BITMAP_BOTTOM, 0 },
+  { FRBITS (continuation_bits),       3, 0, ALIGN_BITMAP_TOP,    0 },
   { FRBITS (ov_bits),                 8, 0, ALIGN_BITMAP_CENTER, 0 },
   { FRBITS (top_left_angle_bits),     8, 0, ALIGN_BITMAP_TOP,    0 },
   { FRBITS (top_right_angle_bits),    8, 0, ALIGN_BITMAP_TOP,    0 },
@@ -478,16 +479,19 @@
 
   if (which != NO_FRINGE_BITMAP)
     {
+      face_id = CURRENT_FRINGE_FACE_ID(w);
     }
   else if (left_p)
     {
       which = row->left_fringe_bitmap;
-      face_id = row->left_fringe_face_id;
+      face_id = row->left_fringe_face_id
+       +CURRENT_DELTA_FRINGE_FACE_ID(w);
     }
   else
     {
       which = row->right_fringe_bitmap;
-      face_id = row->right_fringe_face_id;
+      face_id = row->right_fringe_face_id
+       +CURRENT_DELTA_FRINGE_FACE_ID(w);
     }
 
   if (face_id == DEFAULT_FACE_ID)
@@ -800,7 +804,7 @@
       else if (row->left_user_fringe_bitmap != NO_FRINGE_BITMAP)
        {
          left = row->left_user_fringe_bitmap;
-         left_face_id = row->left_user_fringe_face_id;
+         left_face_id = 
CURRENT_FRINGE_FACE_ID(w);//row->left_user_fringe_face_id;
        }
       else if (row->indicate_bob_p && boundary_pos <= 0)
        left = ((row->indicate_eob_p && boundary_pos < 0)
@@ -826,7 +830,7 @@
       else if (row->right_user_fringe_bitmap != NO_FRINGE_BITMAP)
        {
          right = row->right_user_fringe_bitmap;
-         right_face_id = row->right_user_fringe_face_id;
+         right_face_id = 
CURRENT_FRINGE_FACE_ID(w);//row->right_user_fringe_face_id+CURRENT_DELTA_FRINGE_FACE_ID(w);
        }
       else if (row->indicate_bob_p && boundary_pos > 0)
        right = ((row->indicate_eob_p && boundary_pos >= 0)
@@ -853,15 +857,15 @@
          || row->visible_height != cur->visible_height
          || left != cur->left_fringe_bitmap
          || right != cur->right_fringe_bitmap
-         || left_face_id != cur->left_fringe_face_id
-         || right_face_id != cur->right_fringe_face_id
+         //|| left_face_id != cur->left_fringe_face_id
+         //|| right_face_id != cur->right_fringe_face_id
          || cur->redraw_fringe_bitmaps_p)
        {
          redraw_p = row->redraw_fringe_bitmaps_p = 
cur->redraw_fringe_bitmaps_p = 1;
          cur->left_fringe_bitmap = left;
          cur->right_fringe_bitmap = right;
-         cur->left_fringe_face_id = left_face_id;
-         cur->right_fringe_face_id = right_face_id;
+         cur->left_fringe_face_id = CURRENT_FRINGE_FACE_ID(w);//left_face_id;
+         cur->right_fringe_face_id = CURRENT_FRINGE_FACE_ID(w);//right_face_id;
        }
 
       if (row->overlay_arrow_p != cur->overlay_arrow_p)
@@ -872,8 +876,8 @@
 
       row->left_fringe_bitmap = left;
       row->right_fringe_bitmap = right;
-      row->left_fringe_face_id = left_face_id;
-      row->right_fringe_face_id = right_face_id;
+      row->left_fringe_face_id = CURRENT_FRINGE_FACE_ID(w);//left_face_id;
+      row->right_fringe_face_id = CURRENT_FRINGE_FACE_ID(w);//right_face_id;
     }
 
   return redraw_p;
@@ -992,7 +996,7 @@
   if (n = XINT (which), n >= max_used_fringe_bitmap)
     return Qnil;
 
-  fringe_faces[n] = FRINGE_FACE_ID;
+  fringe_faces[n] = FRINGE_INACTIVE_FACE_ID;
 
   fbp = &fringe_bitmaps[n];
   if (*fbp && (*fbp)->dynamic)
Index: src/window.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/window.c,v
retrieving revision 1.462
diff -u -r1.462 window.c
--- src/window.c        4 Mar 2004 17:16:23 -0000       1.462
+++ src/window.c        18 Mar 2004 18:56:06 -0000
@@ -1775,8 +1775,10 @@
     window = Fnext_window (window, Qnil, all_frames);
   for (; i < 0; ++i)
     window = Fprevious_window (window, Qnil, all_frames);
-
-  Fselect_window (window, Qnil);
+  if (window != selected_window) {
+    //selected_window->circa row->redraw_fringe_bitmaps_p = 1;
+    Fselect_window (window, Qnil);
+  }
   return Qnil;
 }
 
Index: src/xfaces.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/xfaces.c,v
retrieving revision 1.289
diff -u -r1.289 xfaces.c
--- src/xfaces.c        9 Feb 2004 15:39:49 -0000       1.289
+++ src/xfaces.c        18 Mar 2004 18:56:07 -0000
@@ -322,7 +322,7 @@
 
 /* Names of basic faces.  */
 
-Lisp_Object Qdefault, Qtool_bar, Qregion, Qfringe;
+Lisp_Object Qdefault, Qtool_bar, Qregion, Qfringe, Qfringe_inactive;
 Lisp_Object Qheader_line, Qscroll_bar, Qcursor, Qborder, Qmouse, Qmenu;
 Lisp_Object Qmode_line_inactive;
 extern Lisp_Object Qmode_line;
@@ -6626,6 +6626,7 @@
       realize_named_face (f, Qmode_line_inactive, MODE_LINE_INACTIVE_FACE_ID);
       realize_named_face (f, Qtool_bar, TOOL_BAR_FACE_ID);
       realize_named_face (f, Qfringe, FRINGE_FACE_ID);
+      realize_named_face (f, Qfringe_inactive, FRINGE_INACTIVE_FACE_ID);
       realize_named_face (f, Qheader_line, HEADER_LINE_FACE_ID);
       realize_named_face (f, Qscroll_bar, SCROLL_BAR_FACE_ID);
       realize_named_face (f, Qborder, BORDER_FACE_ID);
@@ -7701,6 +7702,8 @@
   staticpro (&Qregion);
   Qfringe = intern ("fringe");
   staticpro (&Qfringe);
+  Qfringe_inactive = intern ("fringe-inactive");
+  staticpro (&Qfringe_inactive);
   Qheader_line = intern ("header-line");
   staticpro (&Qheader_line);
   Qscroll_bar = intern ("scroll-bar");
Index: src/xfns.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/xfns.c,v
retrieving revision 1.608
diff -u -r1.608 xfns.c
--- src/xfns.c  14 Mar 2004 00:28:46 -0000      1.608
+++ src/xfns.c  18 Mar 2004 18:56:18 -0000
@@ -1791,13 +1791,13 @@
 
 #ifdef USE_TOOLKIT_SCROLL_BARS
   /* A minimum width of 14 doesn't look good for toolkit scroll bars.  */
-  int width = 16 + 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM;
+  int width = 8 + 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM;
   FRAME_CONFIG_SCROLL_BAR_COLS (f) = (width + wid - 1) / wid;
   FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = width;
 #else
   /* Make the actual width at least 14 pixels and a multiple of a
      character width.  */
-  FRAME_CONFIG_SCROLL_BAR_COLS (f) = (14 + wid - 1) / wid;
+  FRAME_CONFIG_SCROLL_BAR_COLS (f) = (6 + wid - 1) / wid;
 
   /* Use all of that space (aside from required margins) for the
      scroll bar.  */

Saluti,
MARco
-- 
x(t),y(t) = th(3t-34.5)*e^[-(3t-34.5)^2]/2-4.3+e^(-1.8/t^2)/(.8*atg(t-
3)+2)(t-1.8)-.3th(5t-42.5),(1.4e^[-(3t-34.5)^2]+1-sgn[|t-8.5|-.5]*1.5*
|sin(pi*t)|^[2e^(-(t-11.5)^2)+.5+e^(-(.6t-3.3)^2)])/(.5+t)+1  ; 0<t<14



In previous days i modify gpg source to support features (SHA-512
S10 and an optional different support of idea (w/o 3des S3) even if i
don't use idea), i generated the key with modified gpg... locally
it works, but when i register the key server on MIT, i obtain a
format error :(

Anyway if you can use it, my publik key follows

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.3.5 (GNU/Linux)

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
=9Otj
-----END PGP PUBLIC KEY BLOCK-----

reply via email to

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