diff src/balloon_help.c @ 136:b980b6286996 r20-2b2

Import from CVS: tag r20-2b2
author cvs
date Mon, 13 Aug 2007 09:31:12 +0200
parents 34a5b81f86ba
children 43dd3413c7c7
line wrap: on
line diff
--- a/src/balloon_help.c	Mon Aug 13 09:30:13 2007 +0200
+++ b/src/balloon_help.c	Mon Aug 13 09:31:12 2007 +0200
@@ -1,3 +1,25 @@
+/* Balloon Help
+   Copyright (c) 1997 Douglas Keller
+
+This file is part of XEmacs.
+
+XEmacs is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+XEmacs is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with XEmacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* Synched up with: Not in FSF. */
+
 /*
  * Balloon Help
  *
@@ -74,8 +96,9 @@
 
 ============================================================================*/
 
-static GC create_gc( Display* dpy, Window win, unsigned long fg, unsigned long bg,
-                     XFontStruct* fontStruct )
+static GC
+create_gc (Display* dpy, Window win, unsigned long fg, unsigned long bg,
+	   XFontStruct* fontStruct)
 {
   XGCValues gcv;
   unsigned long mask;
@@ -88,22 +111,24 @@
 
   mask = GCFont | GCBackground | GCForeground | GCJoinStyle | GCLineWidth;
 
-  return XCreateGC( dpy, win, mask, &gcv );
+  return XCreateGC (dpy, win, mask, &gcv);
 }
 
-static void destroy_gc( Display* dpy, GC gc )
+static void
+destroy_gc (Display* dpy, GC gc)
 {
-  if( gc )
-  {
-    XFreeGC( dpy, gc );
-  }
+  if (gc)
+    {
+      XFreeGC (dpy, gc);
+    }
 }
 
 /*============================================================================
 
 ============================================================================*/
 
-static Window create_window( Display* dpy, unsigned long bg )
+static Window
+create_window (Display* dpy, unsigned long bg)
 {
   Window win;
   XSetWindowAttributes attr;
@@ -115,87 +140,94 @@
   attr.save_under        = True;
 
   win =
-    XCreateWindow( dpy,
-                   DefaultRootWindow( dpy ),
+    XCreateWindow (dpy,
+                   DefaultRootWindow (dpy),
                    0, 0, 1, 1,
                    0,
                    CopyFromParent, InputOutput, CopyFromParent,
-                   attr_mask, &attr );
+                   attr_mask, &attr);
 
-  XSelectInput( dpy, win,
+  XSelectInput (dpy, win,
                 SubstructureRedirectMask |
                 SubstructureNotifyMask |
                 ExposureMask |
                 EnterWindowMask |
-                LeaveWindowMask );
+                LeaveWindowMask);
   return win;
 }
 
-static void destroy_window( Display* dpy, Window win )
+static void
+destroy_window (Display* dpy, Window win)
 {
-  if( win )
-  {
-    XDestroyWindow( dpy, win );
-  }
+  if (win)
+    {
+      XDestroyWindow (dpy, win);
+    }
+}
+
+/*============================================================================
+
+============================================================================*/
+
+static void
+get_pointer_xy (Display* dpy, int* x_return, int* y_return)
+{
+  int dummy;
+  unsigned int mask;
+  Window dummy_win;
+
+  XQueryPointer (dpy, RootWindow(dpy, DefaultScreen(dpy)), &dummy_win, &dummy_win,
+		 x_return, y_return, &dummy, &dummy, &mask);
 }
 
 /*============================================================================
 
 ============================================================================*/
 
-static void get_pointer_xy( Display* dpy, int* x_return, int* y_return )
+static void
+create_pixmap_mask (int width, int height)
+{
+  b_maskWidth  = width;
+  b_maskHeight = height;
+  b_mask = XCreatePixmap (b_dpy, b_win, width, height, 1);
+}
+
+static void
+destroy_pixmap_mask(void)
 {
-  int dummy;
-  unsigned int mask;
-  Window dummy_win;
+  XFreePixmap (b_dpy, b_mask);
+}
 
-  XQueryPointer( dpy, RootWindow(dpy, DefaultScreen(dpy)), &dummy_win, &dummy_win,
-                 x_return, y_return, &dummy, &dummy, &mask );
+static void
+grow_pixmap_mask (int width, int height)
+{
+  if (width > b_maskWidth || height > b_maskHeight)
+    {
+      destroy_pixmap_mask ();
+      create_pixmap_mask (width, height);
+    }
 }
 
 /*============================================================================
 
 ============================================================================*/
 
-static void create_pixmap_mask( int width, int height )
-{
-  b_maskWidth  = width;
-  b_maskHeight = height;
-  b_mask = XCreatePixmap( b_dpy, b_win, width, height, 1 );
-}
-
-static void destroy_pixmap_mask( void )
-{
-  XFreePixmap( b_dpy, b_mask );
-}
-
-static void grow_pixmap_mask( int width, int height )
-{
-  if( width > b_maskWidth || height > b_maskHeight )
-  {
-    destroy_pixmap_mask();
-    create_pixmap_mask( width, height );
-  }
-}
-
-/*============================================================================
-
-============================================================================*/
-
-static void text_extent( XFontStruct* fontStruct, const char* text, int len,
-                         int* width, int* height )
+static void
+text_extent (XFontStruct* fontStruct, const char* text, int len,
+	     int* width, int* height)
 {
   XCharStruct extent;
   int dummy;
 
-  XTextExtents( fontStruct, text, len, &dummy, &dummy, &dummy, &extent );
+  XTextExtents (fontStruct, text, len, &dummy, &dummy, &dummy, &extent);
 
   *width  = extent.width;
   *height = fontStruct->ascent + fontStruct->descent;
 }
 
-static void get_text_size( Display* dpy, XFontStruct* fontStruct, const char* text,
-                           int* max_width, int* max_height )
+static void
+get_text_size (Display* dpy, XFontStruct* fontStruct, const char* text,
+	       int* max_width, int* max_height)
 {
   int width;
   int height;
@@ -205,25 +237,26 @@
   *max_width = *max_height = 0;
 
   start = text;
-  while( (end = strchr(start, '\n')) )
-  {
-    text_extent( fontStruct, start, end - start, &width, &height );
-    *max_width  = max( width, *max_width );
-    *max_height += height;
+  while ((end = strchr(start, '\n')))
+    {
+      text_extent (fontStruct, start, end - start, &width, &height);
+      *max_width  = max (width, *max_width);
+      *max_height += height;
 
-    start = end + 1;
-  }
-  text_extent( fontStruct, start, strlen(start), &width, &height );
-  *max_width  = max( width, *max_width );
+      start = end + 1;
+    }
+  text_extent (fontStruct, start, strlen (start), &width, &height);
+  *max_width  = max (width, *max_width);
   *max_height += height;
 
   /* Min width */
-  *max_width  = max( *max_width, CONE_WIDTH / 2 * 3 );
+  *max_width  = max (*max_width, CONE_WIDTH / 2 * 3);
 
 }
 
-static void draw_text( Display* dpy, Window win, GC gc, XFontStruct* fontStruct,
-                       int x, int y, const char* text )
+static void
+draw_text (Display* dpy, Window win, GC gc, XFontStruct* fontStruct,
+	   int x, int y, const char* text)
 {
   const char* start;
   const char* end;
@@ -234,100 +267,102 @@
   font_height = fontStruct->ascent + fontStruct->descent;
 
   start = text;
-  while( (end = strchr(start, '\n')) )
-  {
-    XDrawString( dpy, win, gc, x, y, start, end - start );
+  while ((end = strchr(start, '\n')))
+    {
+      XDrawString (dpy, win, gc, x, y, start, end - start);
 
-    start = end + 1;
-    y += font_height;
-  }
-  XDrawString( dpy, win, gc, x, y, start, strlen(start) );
+      start = end + 1;
+      y += font_height;
+    }
+  XDrawString (dpy, win, gc, x, y, start, strlen (start));
 }
 
 /*============================================================================
 
 ============================================================================*/
 
-static int get_shape( int last_shape, int x, int y, int width, int height,
-                      int screen_width, int screen_height )
+static int
+get_shape (int last_shape, int x, int y, int width, int height,
+	   int screen_width, int screen_height)
 {
   /* Can we use last_shape */
-  if( SHAPE_CONE_TOP_LEFT == last_shape )
-  {
-    if( (x + width < screen_width) && (y + height < screen_height) )
+  if (SHAPE_CONE_TOP_LEFT == last_shape)
     {
-      return last_shape;
+      if ((x + width < screen_width) && (y + height < screen_height))
+	{
+	  return last_shape;
+	}
     }
-  }
-  else if( SHAPE_CONE_TOP_RIGHT == last_shape )
-  {
-    if( (x - width > 0) && (y + height < screen_height) )
+  else if (SHAPE_CONE_TOP_RIGHT == last_shape)
     {
-      return last_shape;
+      if ((x - width > 0) && (y + height < screen_height))
+	{
+	  return last_shape;
+	}
     }
-  }
-  else if( SHAPE_CONE_BOTTOM_LEFT == last_shape )
-  {
-    if( (x + width < screen_width) && (y - height > 0) )
+  else if (SHAPE_CONE_BOTTOM_LEFT == last_shape)
     {
-      return last_shape;
+      if ((x + width < screen_width) && (y - height > 0))
+	{
+	  return last_shape;
+	}
     }
-  }
-  else if( SHAPE_CONE_BOTTOM_RIGHT == last_shape )
-  {
-    if( (x - width > 0) && (y - height > 0) )
+  else if (SHAPE_CONE_BOTTOM_RIGHT == last_shape)
     {
-      return last_shape;
+      if ((x - width > 0) && (y - height > 0))
+	{
+	  return last_shape;
+	}
     }
-  }
 
   /* Try to pick a shape that will not get changed, ie if top left quadrant, top_left */
-  if( x < screen_width / 2 )
-  {
-    if( y < screen_height / 2 )
+  if (x < screen_width / 2)
     {
-      return SHAPE_CONE_TOP_LEFT;
-    }
-    else
-    {
-      return SHAPE_CONE_BOTTOM_LEFT;
+      if (y < screen_height / 2)
+	{
+	  return SHAPE_CONE_TOP_LEFT;
+	}
+      else
+	{
+	  return SHAPE_CONE_BOTTOM_LEFT;
+	}
     }
-  }
   else
-  {
-    if( y < screen_height / 2 )
     {
-      return SHAPE_CONE_TOP_RIGHT;
+      if (y < screen_height / 2)
+	{
+	  return SHAPE_CONE_TOP_RIGHT;
+	}
+      else
+	{
+	  return SHAPE_CONE_BOTTOM_RIGHT;
+	}
     }
-    else
-    {
-      return SHAPE_CONE_BOTTOM_RIGHT;
-    }
-  }
 
   /* ### if width or height is greater than 1/2 the width or height then we might
      run off the screen */
 
-  abort();
+  abort ();
 
   return 0;
 }
 
-static void make_mask( int shape, int x, int y, int width, int height )
+static void
+make_mask (int shape, int x, int y, int width, int height)
 {
   XPoint cone[ 3 ];
 
-  grow_pixmap_mask( width, height );
+  grow_pixmap_mask (width, height);
 
   /* Clear mask */
-  XSetForeground( b_dpy, b_maskGC, 0 );
-  XFillRectangle( b_dpy, b_mask, b_maskGC,
-                  0, 0, width, height );
+  XSetForeground (b_dpy, b_maskGC, 0);
+  XFillRectangle (b_dpy, b_mask, b_maskGC,
+                  0, 0, width, height);
 
   /* Enable text area */
-  XSetForeground( b_dpy, b_maskGC, 1 );
-  XFillRectangle( b_dpy, b_mask, b_maskGC,
-                  0, shape & SHAPE_CONE_TOP ? CONE_HEIGHT : 0, width, height - CONE_HEIGHT );
+  XSetForeground (b_dpy, b_maskGC, 1);
+  XFillRectangle (b_dpy, b_mask, b_maskGC, 0,
+		  shape & SHAPE_CONE_TOP ? CONE_HEIGHT : 0, width, height - CONE_HEIGHT);
 
   /* Enable for cone area */
   cone[0].x = (shape & SHAPE_CONE_LEFT) ? CONE_WIDTH / 2 : width - (CONE_WIDTH / 2);
@@ -337,154 +372,156 @@
   cone[2].x = (shape & SHAPE_CONE_LEFT) ? CONE_WIDTH     : width - CONE_WIDTH;
   cone[2].y = (shape & SHAPE_CONE_TOP)  ? CONE_HEIGHT    : height - CONE_HEIGHT;
 
-  XFillPolygon( b_dpy, b_mask, b_maskGC, cone, 3, Nonconvex, CoordModeOrigin );
+  XFillPolygon (b_dpy, b_mask, b_maskGC, cone, 3, Nonconvex, CoordModeOrigin);
 
 }
 
-static void show_help( XtPointer data, XtIntervalId* id )
+static void
+show_help (XtPointer data, XtIntervalId* id)
 {
   int x, y;
   int shape;
   XPoint border[ 3 ];
 
-  if( id == NULL || (id && b_timer) && b_text )
-  {
-    b_timer = None;
+  if (id == NULL || (id && b_timer) && b_text)
+    {
+      b_timer = None;
 
-    /* size */
-    get_text_size( b_dpy, b_fontStruct, b_text, &b_width, &b_height );
-    b_width  += 2 * MARGIN_WIDTH + 2 * BORDER_WIDTH;
-    b_height += 2 * MARGIN_WIDTH + 2 * BORDER_WIDTH + CONE_HEIGHT;
+      /* size */
+      get_text_size (b_dpy, b_fontStruct, b_text, &b_width, &b_height);
+      b_width  += 2 * MARGIN_WIDTH + 2 * BORDER_WIDTH;
+      b_height += 2 * MARGIN_WIDTH + 2 * BORDER_WIDTH + CONE_HEIGHT;
 
-    /* origin */
-    get_pointer_xy( b_dpy, &x, &y );
+      /* origin */
+      get_pointer_xy (b_dpy, &x, &y);
 
-    /* guess at shape */
-    shape = get_shape( b_lastShape, x, y, b_width, b_height, b_screenWidth, b_screenHeight );
+      /* guess at shape */
+      shape = get_shape(b_lastShape, x, y, b_width, b_height,
+			b_screenWidth, b_screenHeight);
 
-    x += (shape & SHAPE_CONE_LEFT) ? POINTER_OFFSET : -POINTER_OFFSET;
-    y += (shape & SHAPE_CONE_TOP)  ? POINTER_OFFSET : -POINTER_OFFSET;
+      x += (shape & SHAPE_CONE_LEFT) ? POINTER_OFFSET : -POINTER_OFFSET;
+      y += (shape & SHAPE_CONE_TOP)  ? POINTER_OFFSET : -POINTER_OFFSET;
 
-    /* make sure it is still ok with offset */
-    shape = get_shape( shape, x, y, b_width, b_height, b_screenWidth, b_screenHeight );
+      /* make sure it is still ok with offset */
+      shape = get_shape (shape, x, y, b_width, b_height, b_screenWidth, b_screenHeight);
 
-    b_lastX = x;
-    b_lastY = y;
-    b_lastShape = shape;
+      b_lastX = x;
+      b_lastY = y;
+      b_lastShape = shape;
 
 
-    make_mask( shape, x, y, b_width, b_height );
+      make_mask (shape, x, y, b_width, b_height);
 
-    XShapeCombineMask( b_dpy, b_win, ShapeBounding, 0, 0, b_mask, ShapeSet );
+      XShapeCombineMask (b_dpy, b_win, ShapeBounding, 0, 0, b_mask, ShapeSet);
 
-    XMoveResizeWindow( b_dpy, b_win,
-                       (shape & SHAPE_CONE_LEFT) ? x : x - b_width,
-                       (shape & SHAPE_CONE_TOP)  ? y : y - b_height,
-                       b_width, b_height );
+      XMoveResizeWindow(b_dpy, b_win,
+			(shape & SHAPE_CONE_LEFT) ? x : x - b_width,
+			(shape & SHAPE_CONE_TOP)  ? y : y - b_height,
+			b_width, b_height);
 
-    XClearWindow( b_dpy, b_win );
+      XClearWindow (b_dpy, b_win);
 
-    XMapRaised( b_dpy, b_win );
-    b_winMapped = True;
+      XMapRaised (b_dpy, b_win);
+      b_winMapped = True;
 
-    draw_text( b_dpy, b_win, b_gc, b_fontStruct,
-               BORDER_WIDTH + MARGIN_WIDTH,
-               BORDER_WIDTH + MARGIN_WIDTH + ((shape & SHAPE_CONE_TOP) ? CONE_HEIGHT : 0),
-               b_text );
+      draw_text (b_dpy, b_win, b_gc, b_fontStruct,
+		 BORDER_WIDTH + MARGIN_WIDTH,
+		 BORDER_WIDTH + MARGIN_WIDTH + ((shape & SHAPE_CONE_TOP) ? CONE_HEIGHT : 0),
+               b_text);
 
-    /* 3d border */
-    /* shine- top left */
-    border[0].x = 0 + BORDER_WIDTH_HALF;
-    border[0].y = ((shape & SHAPE_CONE_TOP) ? b_height : b_height - CONE_HEIGHT) - BORDER_WIDTH_HALF;
-    border[1].x = 0 + BORDER_WIDTH_HALF;
-    border[1].y = ((shape & SHAPE_CONE_TOP) ? CONE_HEIGHT : 0) + BORDER_WIDTH_HALF;
-    border[2].x = b_width - BORDER_WIDTH_HALF;
-    border[2].y = border[1].y;
-    XDrawLines( b_dpy, b_win, b_shineGC, border, 3, CoordModeOrigin );
+      /* 3d border */
+      /* shine- top left */
+      border[0].x = 0 + BORDER_WIDTH_HALF;
+      border[0].y = ((shape & SHAPE_CONE_TOP) ? b_height : b_height - CONE_HEIGHT) - BORDER_WIDTH_HALF;
+      border[1].x = 0 + BORDER_WIDTH_HALF;
+      border[1].y = ((shape & SHAPE_CONE_TOP) ? CONE_HEIGHT : 0) + BORDER_WIDTH_HALF;
+      border[2].x = b_width - BORDER_WIDTH_HALF;
+      border[2].y = border[1].y;
+      XDrawLines (b_dpy, b_win, b_shineGC, border, 3, CoordModeOrigin);
 
-    /* shadow- bottom right */
-    border[0].x = 0 + BORDER_WIDTH_HALF;
-    border[0].y = ((shape & SHAPE_CONE_TOP) ? b_height : b_height - CONE_HEIGHT) - BORDER_WIDTH_HALF;
-    border[1].x = b_width - BORDER_WIDTH_HALF;
-    border[1].y = border[0].y;
-    border[2].x = b_width - BORDER_WIDTH_HALF;
-    border[2].y = ((shape & SHAPE_CONE_TOP) ? CONE_HEIGHT : 0) + BORDER_WIDTH_HALF;
-    XDrawLines( b_dpy, b_win, b_shadowGC, border, 3, CoordModeOrigin );
+      /* shadow- bottom right */
+      border[0].x = 0 + BORDER_WIDTH_HALF;
+      border[0].y = ((shape & SHAPE_CONE_TOP) ? b_height : b_height - CONE_HEIGHT) - BORDER_WIDTH_HALF;
+      border[1].x = b_width - BORDER_WIDTH_HALF;
+      border[1].y = border[0].y;
+      border[2].x = b_width - BORDER_WIDTH_HALF;
+      border[2].y = ((shape & SHAPE_CONE_TOP) ? CONE_HEIGHT : 0) + BORDER_WIDTH_HALF;
+      XDrawLines (b_dpy, b_win, b_shadowGC, border, 3, CoordModeOrigin);
 
-    /* cone */
-    if( SHAPE_CONE_TOP_LEFT == shape )
-    {
-      XClearArea( b_dpy, b_win,
-                  CONE_WIDTH / 2 + BORDER_WIDTH,
-                  CONE_HEIGHT,
-                  CONE_WIDTH / 2 - BORDER_WIDTH,
-                  BORDER_WIDTH, False );
-      XDrawLine( b_dpy, b_win, b_shadowGC,
-                 0,
-                 0,
-                 CONE_WIDTH / 2 + BORDER_WIDTH_HALF,
-                 CONE_HEIGHT );
-      XDrawLine( b_dpy, b_win, b_shineGC,
-                 0,
-                 0,
-                 CONE_WIDTH - BORDER_WIDTH_HALF,
-                 CONE_HEIGHT );
-    }
-    else if( SHAPE_CONE_TOP_RIGHT == shape )
-    {
-      XClearArea( b_dpy, b_win,
-                  b_width - CONE_WIDTH + BORDER_WIDTH,
-                  CONE_HEIGHT,
-                  CONE_WIDTH / 2 - BORDER_WIDTH,
-                  BORDER_WIDTH, False );
-      XDrawLine( b_dpy, b_win, b_shadowGC,
-                 b_width,
-                 0,
-                 b_width - CONE_WIDTH / 2 - BORDER_WIDTH_HALF,
-                 CONE_HEIGHT );
-      XDrawLine( b_dpy, b_win, b_shineGC,
-                 b_width,
-                 0,
-                 b_width - CONE_WIDTH + BORDER_WIDTH_HALF,
-                 CONE_HEIGHT );
+      /* cone */
+    if (SHAPE_CONE_TOP_LEFT == shape)
+      {
+	XClearArea (b_dpy, b_win,
+		    CONE_WIDTH / 2 + BORDER_WIDTH,
+		    CONE_HEIGHT,
+		    CONE_WIDTH / 2 - BORDER_WIDTH,
+		    BORDER_WIDTH, False);
+	XDrawLine (b_dpy, b_win, b_shadowGC,
+		   0,
+		   0,
+		   CONE_WIDTH / 2 + BORDER_WIDTH_HALF,
+		   CONE_HEIGHT);
+	XDrawLine (b_dpy, b_win, b_shineGC,
+		   0,
+		   0,
+		   CONE_WIDTH - BORDER_WIDTH_HALF,
+		   CONE_HEIGHT);
+      }
+    else if (SHAPE_CONE_TOP_RIGHT == shape)
+      {
+	XClearArea (b_dpy, b_win,
+		    b_width - CONE_WIDTH + BORDER_WIDTH,
+		    CONE_HEIGHT,
+		    CONE_WIDTH / 2 - BORDER_WIDTH,
+		    BORDER_WIDTH, False);
+	XDrawLine (b_dpy, b_win, b_shadowGC,
+		   b_width,
+		   0,
+		   b_width - CONE_WIDTH / 2 - BORDER_WIDTH_HALF,
+		   CONE_HEIGHT);
+	XDrawLine (b_dpy, b_win, b_shineGC,
+		   b_width,
+		   0,
+		   b_width - CONE_WIDTH + BORDER_WIDTH_HALF,
+		   CONE_HEIGHT);
+      }
+    else if (SHAPE_CONE_BOTTOM_LEFT == shape)
+      {
+	XClearArea (b_dpy, b_win,
+		    CONE_WIDTH / 2 + BORDER_WIDTH,
+		    b_height - CONE_HEIGHT - BORDER_WIDTH,
+		    CONE_WIDTH / 2 - BORDER_WIDTH,
+		    BORDER_WIDTH, False);
+	XDrawLine (b_dpy, b_win, b_shadowGC,
+		   0,
+		   b_height - 1,
+		   CONE_WIDTH,
+		   b_height - 1 - CONE_HEIGHT);
+	XDrawLine (b_dpy, b_win, b_shineGC,
+		   0,
+		   b_height - 1,
+		   CONE_WIDTH / 2 + BORDER_WIDTH,
+		   b_height - 1 - CONE_HEIGHT);
+      }
+    else if (SHAPE_CONE_BOTTOM_RIGHT == shape)
+      {
+	XClearArea (b_dpy, b_win,
+		    b_width - 1 - CONE_WIDTH + BORDER_WIDTH,
+		    b_height - CONE_HEIGHT - BORDER_WIDTH,
+		    CONE_WIDTH / 2 - BORDER_WIDTH - 1,
+		    BORDER_WIDTH, False);
+	XDrawLine (b_dpy, b_win, b_shadowGC,
+		   b_width - 1,
+		   b_height - 1,
+		   b_width - 1 - CONE_WIDTH,
+		   b_height - 1 - CONE_HEIGHT);
+	XDrawLine (b_dpy, b_win, b_shineGC,
+		   b_width - 1,
+		   b_height - 1,
+		   b_width - 1 - CONE_WIDTH / 2 - BORDER_WIDTH,
+		   b_height - 1 - CONE_HEIGHT);
+      }
     }
-    else if( SHAPE_CONE_BOTTOM_LEFT == shape )
-    {
-      XClearArea( b_dpy, b_win,
-                  CONE_WIDTH / 2 + BORDER_WIDTH,
-                  b_height - CONE_HEIGHT - BORDER_WIDTH,
-                  CONE_WIDTH / 2 - BORDER_WIDTH,
-                  BORDER_WIDTH, False );
-      XDrawLine( b_dpy, b_win, b_shadowGC,
-                 0,
-                 b_height - 1,
-                 CONE_WIDTH,
-                 b_height - 1 - CONE_HEIGHT );
-      XDrawLine( b_dpy, b_win, b_shineGC,
-                 0,
-                 b_height - 1,
-                 CONE_WIDTH / 2 + BORDER_WIDTH,
-                 b_height - 1 - CONE_HEIGHT );
-    }
-    else if( SHAPE_CONE_BOTTOM_RIGHT == shape )
-    {
-      XClearArea( b_dpy, b_win,
-                  b_width - 1 - CONE_WIDTH + BORDER_WIDTH,
-                  b_height - CONE_HEIGHT - BORDER_WIDTH,
-                  CONE_WIDTH / 2 - BORDER_WIDTH - 1,
-                  BORDER_WIDTH, False );
-      XDrawLine( b_dpy, b_win, b_shadowGC,
-                 b_width - 1,
-                 b_height - 1,
-                 b_width - 1 - CONE_WIDTH,
-                 b_height - 1 - CONE_HEIGHT );
-      XDrawLine( b_dpy, b_win, b_shineGC,
-                 b_width - 1,
-                 b_height - 1,
-                 b_width - 1 - CONE_WIDTH / 2 - BORDER_WIDTH,
-                 b_height - 1 - CONE_HEIGHT);
-    }
-  }
 
 }
 
@@ -492,122 +529,128 @@
 
 ============================================================================*/
 
-void balloon_help_create( Display* dpy,
-                          Pixel fg, Pixel bg, Pixel shine, Pixel shadow,
-                          XFontStruct* font )
+void
+balloon_help_create (Display* dpy,
+		     Pixel fg, Pixel bg, Pixel shine, Pixel shadow,
+		     XFontStruct* font)
 {
-  if( b_dpy ) balloon_help_destroy();
+  if (b_dpy) balloon_help_destroy ();
 
   b_dpy = dpy;
 
   b_fontStruct = font;
 
-  b_win = create_window( dpy, bg );
-  b_gc  = create_gc( dpy, b_win, fg, bg, b_fontStruct );
+  b_win = create_window (dpy, bg);
+  b_gc  = create_gc (dpy, b_win, fg, bg, b_fontStruct);
 
-  b_shineGC  = create_gc( dpy, b_win, shine, bg, b_fontStruct );
-  b_shadowGC = create_gc( dpy, b_win, shadow, bg, b_fontStruct );
+  b_shineGC  = create_gc (dpy, b_win, shine, bg, b_fontStruct);
+  b_shadowGC = create_gc (dpy, b_win, shadow, bg, b_fontStruct);
 
-  create_pixmap_mask( 1, 1 );
-  b_maskGC = create_gc( dpy, b_mask, bg, fg, b_fontStruct );
+  create_pixmap_mask (1, 1);
+  b_maskGC = create_gc (dpy, b_mask, bg, fg, b_fontStruct);
 
   b_winMapped = False;
   b_timer     = None;
   b_delay     = 500;
 
-  b_screenWidth  = DisplayWidth( b_dpy, DefaultScreen(b_dpy) );
-  b_screenHeight = DisplayHeight( b_dpy, DefaultScreen(b_dpy) );
+  b_screenWidth  = DisplayWidth (b_dpy, DefaultScreen(b_dpy));
+  b_screenHeight = DisplayHeight (b_dpy, DefaultScreen(b_dpy));
 
   b_lastShape = SHAPE_CONE_FREE;
 }
 
-void balloon_help_destroy( void )
+void
+balloon_help_destroy (void)
 {
-  assert( b_dpy != NULL );
+  assert (b_dpy != NULL);
   b_dpy = NULL;
 
-  destroy_window( b_dpy, b_win );
-  destroy_gc( b_dpy, b_gc );
+  destroy_window (b_dpy, b_win);
+  destroy_gc (b_dpy, b_gc);
 
-  destroy_gc( b_dpy, b_shineGC );
-  destroy_gc( b_dpy, b_shadowGC );
+  destroy_gc (b_dpy, b_shineGC);
+  destroy_gc (b_dpy, b_shadowGC);
 
-  destroy_pixmap_mask();
-  destroy_gc( b_dpy, b_maskGC );
+  destroy_pixmap_mask ();
+  destroy_gc (b_dpy, b_maskGC);
 
-  if( b_timer ) XtRemoveTimeOut( b_timer );
+  if (b_timer) XtRemoveTimeOut (b_timer);
 }
 
-void balloon_help_set_delay( unsigned long milliseconds )
+void
+balloon_help_set_delay (unsigned long milliseconds)
 {
   b_delay = milliseconds;
 }
 
-void balloon_help_show( const char* text )
+void
+balloon_help_show (const char* text)
 {
-  assert( b_dpy != NULL );
+  assert (b_dpy != NULL);
 
   /* We don't copy the text */
   b_text = text;
   b_lastShape = SHAPE_CONE_FREE;
 
-  if( b_winMapped )
-  {
-    /* If help is already being shown, don't delay just update */
-    show_help( NULL, NULL );
-  }
+  if (b_winMapped)
+    {
+      /* If help is already being shown, don't delay just update */
+      show_help (NULL, NULL);
+    }
   else
-  {
-    b_timer =
-      XtAppAddTimeOut( XtDisplayToApplicationContext(b_dpy),
-                       b_delay, show_help, NULL );
-  }
+    {
+      b_timer =
+	XtAppAddTimeOut (XtDisplayToApplicationContext(b_dpy),
+			 b_delay, show_help, NULL);
+    }
 }
 
-void balloon_help_hide( void )
+void
+balloon_help_hide (void)
 {
-  assert( b_dpy != NULL );
+  assert (b_dpy != NULL);
 
   b_text = NULL;
-  XUnmapWindow( b_dpy, b_win );
+  XUnmapWindow (b_dpy, b_win);
   b_winMapped = False;
-  if( b_timer )
-  {
-    XtRemoveTimeOut( b_timer );
-    b_timer = None;
-  }
+  if (b_timer)
+    {
+      XtRemoveTimeOut (b_timer);
+      b_timer = None;
+    }
 }
 
-void balloon_help_move_to_pointer( void )
+void
+balloon_help_move_to_pointer (void)
 {
-  assert( b_dpy != NULL );
+  assert (b_dpy != NULL);
 
-  if( b_winMapped )
-  {
-    int x, y;
-    int shape = b_lastShape;
+  if (b_winMapped)
+    {
+      int x, y;
+      int shape = b_lastShape;
 
-    get_pointer_xy( b_dpy, &x, &y );
+      get_pointer_xy (b_dpy, &x, &y);
 
-    x += (shape & SHAPE_CONE_LEFT) ? POINTER_OFFSET : -POINTER_OFFSET;
-    y += (shape & SHAPE_CONE_TOP)  ? POINTER_OFFSET : -POINTER_OFFSET;
+      x += (shape & SHAPE_CONE_LEFT) ? POINTER_OFFSET : -POINTER_OFFSET;
+      y += (shape & SHAPE_CONE_TOP)  ? POINTER_OFFSET : -POINTER_OFFSET;
 
-    shape = get_shape( shape, x, y, b_width, b_height, b_screenWidth, b_screenHeight );
+      shape = get_shape (shape, x, y, b_width, b_height, b_screenWidth, b_screenHeight);
 
-    if( shape == b_lastShape )
-    {
-      b_lastX = x;
-      b_lastY = y;
+      if (shape == b_lastShape)
+	{
+	  b_lastX = x;
+	  b_lastY = y;
 
-      XMoveWindow( b_dpy, b_win,
-                   shape & SHAPE_CONE_LEFT ? x : x - b_width,
-                   shape & SHAPE_CONE_TOP  ? y : y - b_height );
+	  XMoveWindow (b_dpy, b_win,
+		       shape & SHAPE_CONE_LEFT ? x : x - b_width,
+		       shape & SHAPE_CONE_TOP  ? y : y - b_height);
+	}
+      else
+	{
+	  /* text would be off screen, rebuild with new shape */
+	  b_lastShape = SHAPE_CONE_FREE;
+	  show_help (NULL, NULL);
+	}
     }
-    else
-    {
-      /* text would be off screen, rebuild with new shape */
-      b_lastShape = SHAPE_CONE_FREE;
-      show_help( NULL, NULL );
-    }
-  }
 }