This is toolbar.h in view mode; [Download] [Up]
/* Define toolbar instance. Copyright (C) 1995 Board of Trustees, University of Illinois 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Synched up with: Not in FSF. */ #ifndef _XEMACS_TOOLBAR_H_ #define _XEMACS_TOOLBAR_H_ #include "specifier.h" enum toolbar_pos { TOP_TOOLBAR, BOTTOM_TOOLBAR, LEFT_TOOLBAR, RIGHT_TOOLBAR }; /* There are 4 of these per frame. They don't really need to be an lrecord (they're not lisp-accessible) but it makes marking slightly more modular. */ struct toolbar_data { struct lcrecord_header header; /* The last buffer for which the toolbars were displayed. */ Lisp_Object last_toolbar_buffer; /* The actual buttons are chained through this. */ Lisp_Object toolbar_buttons; }; DECLARE_LRECORD (toolbar_data, struct toolbar_data); #define XTOOLBAR_DATA(x) XRECORD (x, toolbar_data, struct toolbar_data) #define XSETTOOLBAR_DATA(x, p) XSETRECORD (x, p, toolbar_data) #define TOOLBAR_DATAP(x) RECORDP (x, toolbar_data) #define CHECK_TOOLBAR_DATA(x, i) CHECK_RECORD (x, toolbar_data) #define FRAME_TOOLBAR_DATA(frame, position) \ (XTOOLBAR_DATA ((frame)->toolbar_data[position])) #define FRAME_TOOLBAR_BUFFER(frame, position) \ (XTOOLBAR_DATA ((frame)->toolbar_data[position])->last_toolbar_buffer) /* These are chained together through toolbar_buttons in struct toolbar_data. These don't need to be an lrecord either, but again, it makes marking easier. */ struct toolbar_button { struct lcrecord_header header; Lisp_Object next; Lisp_Object frame; Lisp_Object up_glyph; Lisp_Object down_glyph; Lisp_Object disabled_glyph; Lisp_Object cap_up_glyph; Lisp_Object cap_down_glyph; Lisp_Object cap_disabled_glyph; Lisp_Object callback; Lisp_Object enabled_p; Lisp_Object help_string; char enabled; char down; char pushright; char blank; int x, y; int width, height; int dirty; }; DECLARE_LRECORD (toolbar_button, struct toolbar_button); #define XTOOLBAR_BUTTON(x) XRECORD (x, toolbar_button, struct toolbar_button) #define XSETTOOLBAR_BUTTON(x, p) XSETRECORD (x, p, toolbar_button) #define TOOLBAR_BUTTONP(x) RECORDP (x, toolbar_button) #define CHECK_TOOLBAR_BUTTON(x, i) CHECK_RECORD (x, toolbar_button) extern void get_toolbar_coords (struct frame *f, enum toolbar_pos pos, int *x, int *y, int *width, int *height, int *vert, int for_layout); extern Lisp_Object toolbar_button_at_pixpos (struct frame *f, int x_coord, int y_coord); DECLARE_SPECIFIER_TYPE (toolbar); extern Lisp_Object Qtoolbar; #define XTOOLBAR_SPECIFIER(x) XSPECIFIER_TYPE (x, toolbar) #define XSETTOOLBAR_SPECIFIER(x, p) XSETSPECIFIER_TYPE (x, p, toolbar) #define TOOLBAR_SPECIFIERP(x) SPECIFIER_TYPEP (x, toolbar) #define CHECK_TOOLBAR_SPECIFIER(x, i) CHECK_SPECIFIER_TYPE (x, i, toolbar) #define DEFAULT_TOP_TOOLBAR_HEIGHT 37 #define DEFAULT_BOTTOM_TOOLBAR_HEIGHT 0 #define DEFAULT_LEFT_TOOLBAR_WIDTH 0 #define DEFAULT_RIGHT_TOOLBAR_WIDTH 0 #define DEFAULT_TOOLBAR_BLANK_SIZE 8 #define MINIMUM_SHADOW_THICKNESS 2 extern Lisp_Object Vtop_toolbar_height, Vbottom_toolbar_height; extern Lisp_Object Vleft_toolbar_width, Vright_toolbar_width; extern void update_frame_toolbars (struct frame *f); extern void init_frame_toolbars (struct frame *f); extern void init_device_toolbars (struct device *d); extern void init_global_toolbars (struct device *d); extern void free_frame_toolbars (struct frame *f); #ifdef HAVE_X_WINDOWS extern void x_redraw_exposed_toolbars (struct frame *f, int x, int y, int width, int height); #endif /* HAVE_X_WINDOWS */ #endif /* _XEMACS_TOOLBAR_H_ */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.