/* Synched up with: Not in FSF. */
+/* This file Mule-ized (more like Mule-verified) by Ben Wing, 7-8-00. */
+
#include <config.h>
#include "lisp.h"
#include "console-x.h"
#include "glyphs-x.h"
#include "objects-x.h"
-#include "xgccache.h"
#include "EmacsFrame.h"
#include "EmacsFrameP.h"
-#include "EmacsManager.h"
#include "faces.h"
#include "frame.h"
/* Draw the outline. */
x_output_shadows (f, sx, sy, swidth, sheight, top_shadow_gc,
- bottom_shadow_gc, background_gc, shadow_thickness);
+ bottom_shadow_gc, background_gc, shadow_thickness,
+ EDGE_ALL);
/* Blank the middle. */
XFillRectangle (dpy, x_win, background_gc, sx + shadow_thickness,
GC top_shadow_gc, bottom_shadow_gc, background_gc;
Lisp_Object instance, frame, window, glyph;
struct toolbar_button *tb = XTOOLBAR_BUTTON (button);
- struct Lisp_Image_Instance *p;
+ Lisp_Image_Instance *p;
struct window *w;
int vertical = tb->vertical;
int border_width = tb->border_width;
x_output_shadows (f, tb->x + x_adj, tb->y + y_adj,
tb->width + width_adj, tb->height + height_adj,
top_shadow_gc,
- bottom_shadow_gc, background_gc, shadow_thickness);
+ bottom_shadow_gc, background_gc, shadow_thickness,
+ EDGE_ALL);
/* Clear the pixmap area. */
XFillRectangle (dpy, x_win, background_gc, tb->x + x_adj + shadow_thickness,
}
x_output_x_pixmap (f, XIMAGE_INSTANCE (instance), tb->x + x_offset,
- tb->y + y_offset, 0, 0, 0, 0, width, height,
- 0, 0, 0, background_gc);
+ tb->y + y_offset, 0, 0, width, height,
+ 0, 0, background_gc);
}
else if (IMAGE_INSTANCE_TYPE (p) == IMAGE_TEXT)
{
return XINT (f->toolbar_size[pos]);
if (vert)
- size = glyph_height (glyph, Vdefault_face, 0, window);
+ size = glyph_height (glyph, window);
else
- size = glyph_width (glyph, Vdefault_face, 0, window);
+ size = glyph_width (glyph, window);
}
if (!size)
|| tb->y != y \
|| tb->width != width \
|| tb->height != height \
- || tb->dirty) \
+ || tb->dirty \
+ || f->clear) /* This is clearly necessary. */ \
{ \
if (width && height) \
{ \
(frame)->right_toolbar_was_visible = flag; \
break; \
default: \
- abort (); \
+ ABORT (); \
} \
} while (0)
Lisp_Object frame;
XSETFRAME (frame, f);
- DEVMETH (d, clear_region, (frame,
- DEFAULT_INDEX, FRAME_PIXWIDTH (f) - 1, y, 1,
- bar_height));
+ redisplay_clear_region (frame,
+ DEFAULT_INDEX, FRAME_PIXWIDTH (f) - 1, y, 1,
+ bar_height);
}
SET_TOOLBAR_WAS_VISIBLE_FLAG (f, pos, 1);
SET_TOOLBAR_WAS_VISIBLE_FLAG (f, pos, 0);
- DEVMETH (d, clear_region, (frame, DEFAULT_INDEX, x, y, width, height));
+ redisplay_clear_region (frame, DEFAULT_INDEX, x, y, width, height);
XFlush (DEVICE_X_DISPLAY (d));
}
if (FRAME_REAL_TOP_TOOLBAR_VISIBLE (f))
x_output_toolbar (f, TOP_TOOLBAR);
- else if (f->top_toolbar_was_visible)
- x_clear_toolbar (f, TOP_TOOLBAR, 0);
-
if (FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f))
x_output_toolbar (f, BOTTOM_TOOLBAR);
- else if (f->bottom_toolbar_was_visible)
- x_clear_toolbar (f, BOTTOM_TOOLBAR, 0);
-
if (FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f))
x_output_toolbar (f, LEFT_TOOLBAR);
- else if (f->left_toolbar_was_visible)
- x_clear_toolbar (f, LEFT_TOOLBAR, 0);
-
if (FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f))
x_output_toolbar (f, RIGHT_TOOLBAR);
- else if (f->right_toolbar_was_visible)
+}
+
+static void
+x_clear_frame_toolbars (struct frame *f)
+{
+ assert (FRAME_X_P (f));
+
+ if (f->top_toolbar_was_visible
+ && !FRAME_REAL_TOP_TOOLBAR_VISIBLE (f))
+ x_clear_toolbar (f, TOP_TOOLBAR, 0);
+ if (f->bottom_toolbar_was_visible
+ && !FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f))
+ x_clear_toolbar (f, BOTTOM_TOOLBAR, 0);
+ if (f->left_toolbar_was_visible
+ && !FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f))
+ x_clear_toolbar (f, LEFT_TOOLBAR, 0);
+ if (f->right_toolbar_was_visible
+ && !FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f))
x_clear_toolbar (f, RIGHT_TOOLBAR, 0);
}
console_type_create_toolbar_x (void)
{
CONSOLE_HAS_METHOD (x, output_frame_toolbars);
+ CONSOLE_HAS_METHOD (x, clear_frame_toolbars);
CONSOLE_HAS_METHOD (x, initialize_frame_toolbars);
CONSOLE_HAS_METHOD (x, free_frame_toolbars);
CONSOLE_HAS_METHOD (x, output_toolbar_button);