the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-/* This implementation by Andy Piper <andyp@parallax.co.uk>, with bits
+/* This implementation by Andy Piper <andy@xemacs.org>, with bits
borrowed from toolbar-x.c */
/* Synched up with: Not in FSF. */
#define TOOLBAR_ID_BIAS 16
#define TOOLBAR_HANDLE(f,p) \
GetDlgItem(FRAME_MSWINDOWS_HANDLE(f), TOOLBAR_ID_BIAS + p)
-#ifndef TB_SETIMAGELIST
-#define TB_SETIMAGELIST (WM_USER + 48)
-#define TB_GETIMAGELIST (WM_USER + 49)
-#define TB_SETDISABLEDIMAGELIST (WM_USER + 54)
-#define TB_GETDISABLEDIMAGELIST (WM_USER + 55)
-#endif
-#ifndef TB_SETPADDING
-#define TB_SETPADDING (WM_USER + 87)
-#endif
+
#define MSWINDOWS_BUTTON_SHADOW_THICKNESS 2
#define MSWINDOWS_BLANK_SIZE 5
#define MSWINDOWS_MINIMUM_TOOLBAR_SIZE 8
(frame)->right_toolbar_was_visible = flag; \
break; \
default: \
- abort (); \
+ ABORT (); \
} \
} while (0)
ShowWindow(toolbarwnd, SW_HIDE);
}
- FRAME_MSWINDOWS_TOOLBAR_CHECKSUM(f,pos)=0;
+ FRAME_MSWINDOWS_TOOLBAR_CHECKSUM (f, pos) = 0;
SET_TOOLBAR_WAS_VISIBLE_FLAG (f, pos, 0);
}
/* remove the old one */
mswindows_clear_toolbar (f, pos, 0);
- FRAME_MSWINDOWS_TOOLBAR_CHECKSUM(f,pos)=checksum;
+ FRAME_MSWINDOWS_TOOLBAR_CHECKSUM (f, pos)=checksum;
/* build up the data required by win32 fns. */
button_tbl = xnew_array_and_zero (TBBUTTON, nbuttons);
if (IMAGE_INSTANCEP (instance))
{
- struct Lisp_Image_Instance* p = XIMAGE_INSTANCE (instance);
+ Lisp_Image_Instance* p = XIMAGE_INSTANCE (instance);
if (IMAGE_INSTANCE_PIXMAP_TYPE_P (p))
{
CreateWindowEx ( WS_EX_WINDOWEDGE,
TOOLBARCLASSNAME,
NULL,
- WS_CHILD | WS_VISIBLE
+ WS_CHILD
| (style_3d ? WS_DLGFRAME : 0)
- | TBSTYLE_TOOLTIPS | CCS_NORESIZE
- | CCS_NOPARENTALIGN | CCS_NODIVIDER,
+ | TBSTYLE_TOOLTIPS
+ | CCS_NORESIZE
+ | CCS_NOPARENTALIGN | CCS_NODIVIDER
+ | CCS_ADJUSTABLE,
x, y, bar_width, bar_height,
FRAME_MSWINDOWS_HANDLE (f),
(HMENU)(TOOLBAR_ID_BIAS + pos),
if (FRAME_REAL_TOP_TOOLBAR_VISIBLE (f))
mswindows_output_toolbar (f, TOP_TOOLBAR);
- else if (f->top_toolbar_was_visible)
- mswindows_clear_toolbar (f, TOP_TOOLBAR, 0);
-
if (FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f))
mswindows_output_toolbar (f, BOTTOM_TOOLBAR);
- else if (f->bottom_toolbar_was_visible)
- mswindows_clear_toolbar (f, BOTTOM_TOOLBAR, 0);
-
if (FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f))
mswindows_output_toolbar (f, LEFT_TOOLBAR);
- else if (f->left_toolbar_was_visible)
- mswindows_clear_toolbar (f, LEFT_TOOLBAR, 0);
-
if (FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f))
mswindows_output_toolbar (f, RIGHT_TOOLBAR);
- else if (f->right_toolbar_was_visible)
+}
+
+static void
+mswindows_clear_frame_toolbars (struct frame *f)
+{
+ assert (FRAME_MSWINDOWS_P (f));
+
+ if (f->top_toolbar_was_visible
+ && !FRAME_REAL_TOP_TOOLBAR_VISIBLE (f))
+ mswindows_clear_toolbar (f, TOP_TOOLBAR, 0);
+ if (f->bottom_toolbar_was_visible
+ && !FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f))
+ mswindows_clear_toolbar (f, BOTTOM_TOOLBAR, 0);
+ if (f->left_toolbar_was_visible
+ && !FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f))
+ mswindows_clear_toolbar (f, LEFT_TOOLBAR, 0);
+ if (f->right_toolbar_was_visible
+ && !FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f))
mswindows_clear_toolbar (f, RIGHT_TOOLBAR, 0);
}
mswindows_free_frame_toolbars (struct frame *f)
{
HWND twnd=NULL;
-#define DELETE_TOOLBAR(pos) \
- mswindows_clear_toolbar(f, 0, pos); \
- if ((twnd=GetDlgItem(FRAME_MSWINDOWS_HANDLE(f), TOOLBAR_ID_BIAS + pos))) \
+#define DELETE_TOOLBAR(pos) \
+ mswindows_clear_toolbar(f, pos, 0); \
+ if ((twnd=GetDlgItem(FRAME_MSWINDOWS_HANDLE(f), \
+ TOOLBAR_ID_BIAS + pos))) \
DestroyWindow(twnd)
DELETE_TOOLBAR(TOP_TOOLBAR);
}
/* map toolbar hwnd to pos*/
-int mswindows_find_toolbar_pos(struct frame* f, HWND ctrl)
+static int mswindows_find_toolbar_pos(struct frame* f, HWND ctrl)
{
int id = GetDlgCtrlID(ctrl);
return id ? id - TOOLBAR_ID_BIAS : -1;
console_type_create_toolbar_mswindows (void)
{
CONSOLE_HAS_METHOD (mswindows, output_frame_toolbars);
+ CONSOLE_HAS_METHOD (mswindows, clear_frame_toolbars);
CONSOLE_HAS_METHOD (mswindows, initialize_frame_toolbars);
CONSOLE_HAS_METHOD (mswindows, free_frame_toolbars);
CONSOLE_HAS_METHOD (mswindows, redraw_exposed_toolbars);