428
+ − 1 /* Define scrollbar instance.
+ − 2 Copyright (C) 1994, 1995 Board of Trustees, University of Illinois.
+ − 3
+ − 4 This file is part of XEmacs.
+ − 5
+ − 6 XEmacs is free software; you can redistribute it and/or modify it
+ − 7 under the terms of the GNU General Public License as published by the
+ − 8 Free Software Foundation; either version 2, or (at your option) any
+ − 9 later version.
+ − 10
+ − 11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
+ − 12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ − 13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ − 14 for more details.
+ − 15
+ − 16 You should have received a copy of the GNU General Public License
+ − 17 along with XEmacs; see the file COPYING. If not, write to
+ − 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ − 19 Boston, MA 02111-1307, USA. */
+ − 20
+ − 21 /* Synched up with: Not in FSF. */
+ − 22
440
+ − 23 #ifndef INCLUDED_scrollbar_h_
+ − 24 #define INCLUDED_scrollbar_h_
428
+ − 25
+ − 26 #ifdef HAVE_SCROLLBARS
+ − 27
+ − 28 struct scrollbar_instance
+ − 29 {
3017
+ − 30 struct LCRECORD_HEADER header;
617
+ − 31
428
+ − 32 /* Used by the frame caches. */
+ − 33 struct scrollbar_instance *next;
+ − 34
+ − 35 /* Pointer back to the mirror structure attached to. */
+ − 36 struct window_mirror *mirror;
+ − 37
+ − 38 /* This flag indicates if the scrollbar is currently in use. */
+ − 39 char scrollbar_is_active;
+ − 40
+ − 41 /* This flag indicates if a data parameter has changed. */
+ − 42 char scrollbar_instance_changed;
+ − 43
+ − 44 /* A structure of auxiliary data specific to the device type.
+ − 45 struct x_scrollbar_data is used for X window frames; defined in
+ − 46 scrollbar-x.h */
+ − 47 void *scrollbar_data;
+ − 48 };
+ − 49
617
+ − 50 DECLARE_LRECORD (scrollbar_instance, struct scrollbar_instance);
+ − 51 #define XSCROLLBAR_INSTANCE(x) XRECORD (x, scrollbar_instance, struct scrollbar_instance)
+ − 52 #define wrap_scrollbar_instance(p) wrap_record (p, scrollbar_instance)
+ − 53 #define SCROLLBAR_INSTANCEP(x) RECORDP (x, scrollbar_instance)
+ − 54 #define CHECK_SCROLLBAR_INSTANCE(x) CHECK_RECORD (x, scrollbar_instance)
+ − 55 #define CONCHECK_SCROLLBAR_INSTANCE(x) CONCHECK_RECORD (x, scrollbar_instance)
+ − 56
428
+ − 57 #define SCROLLBAR_INSTANCE_FRAME(inst) (inst->mirror->frame)
+ − 58
+ − 59 void init_frame_scrollbars (struct frame *f);
+ − 60 void init_device_scrollbars (struct device *d);
+ − 61 void init_global_scrollbars (struct device *d);
+ − 62 void free_frame_scrollbars (struct frame *f);
+ − 63 void release_window_mirror_scrollbars (struct window_mirror *mir);
+ − 64 void update_window_scrollbars (struct window *w,
+ − 65 struct window_mirror *mirror,
+ − 66 int active, int horiz_only);
+ − 67 #ifdef MEMORY_USAGE_STATS
+ − 68 int compute_scrollbar_instance_usage (struct device *d,
+ − 69 struct scrollbar_instance *inst,
+ − 70 struct overhead_stats *ovstats);
+ − 71 #endif
+ − 72
+ − 73 extern Lisp_Object Vscrollbar_width, Vscrollbar_height;
+ − 74
+ − 75 extern Lisp_Object Qscrollbar_line_up;
+ − 76 extern Lisp_Object Qscrollbar_line_down;
+ − 77 extern Lisp_Object Qscrollbar_page_up;
+ − 78 extern Lisp_Object Qscrollbar_page_down;
+ − 79 extern Lisp_Object Qscrollbar_to_top;
+ − 80 extern Lisp_Object Qscrollbar_to_bottom;
+ − 81 extern Lisp_Object Qscrollbar_vertical_drag;
+ − 82
+ − 83 extern Lisp_Object Qscrollbar_char_left;
+ − 84 extern Lisp_Object Qscrollbar_char_right;
+ − 85 extern Lisp_Object Qscrollbar_page_left;
+ − 86 extern Lisp_Object Qscrollbar_page_right;
+ − 87 extern Lisp_Object Qscrollbar_to_left;
+ − 88 extern Lisp_Object Qscrollbar_to_right;
+ − 89 extern Lisp_Object Qscrollbar_horizontal_drag;
+ − 90
+ − 91 #endif /* HAVE_SCROLLBARS */
+ − 92
440
+ − 93 #endif /* INCLUDED_scrollbar_h_ */