home *** CD-ROM | disk | FTP | other *** search
- /* vi:set ts=8 sts=4 sw=4: */
- /* MODIFIED ATHENA SCROLLBAR (USING ARROWHEADS AT ENDS OF TRAVEL) */
- /* Modifications Copyright 1992 by Mitch Trachtenberg */
- /* Rights, permissions, and disclaimer of warranty are as in the */
- /* DEC and MIT notice below. See usage warning in .c file. */
- /*
- * $XConsortium: ScrollbarP.h,v 1.3 94/04/17 20:12:42 jim Exp $
- */
-
-
- /***********************************************************
-
- Copyright (c) 1987, 1988 X Consortium
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- Except as contained in this notice, the name of the X Consortium shall not be
- used in advertising or otherwise to promote the sale, use or other dealings
- in this Software without prior written authorization from the X Consortium.
-
-
- Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
- Permission to use, copy, modify, and distribute this software and its
- documentation for any purpose and without fee is hereby granted,
- provided that the above copyright notice appear in all copies and that
- both that copyright notice and this permission notice appear in
- supporting documentation, and that the name of Digital not be
- used in advertising or publicity pertaining to distribution of the
- software without specific, written prior permission.
-
- DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- SOFTWARE.
-
- ******************************************************************/
-
- #ifndef _Scrollbar_h
- #define _Scrollbar_h
-
- /****************************************************************
- *
- * Scrollbar Widget
- *
- ****************************************************************/
-
- #include <X11/IntrinsicP.h>
- #include <X11/Xaw/SimpleP.h>
- #include <X11/Xmu/Converters.h>
-
- /*
- * Most things we need are in StringDefs.h
- */
- #define XtCMinimumThumb "MinimumThumb"
- #define XtCShown "Shown"
- #define XtCTopOfThumb "TopOfThumb"
- #define XtCMaxOfThumb "MaxOfThumb"
- #define XtCShadowWidth "ShadowWidth"
- #define XtCTopShadowPixel "TopShadowPixel"
- #define XtCBottomShadowPixel "BottomShadowPixel"
- #define XtCLimitThumb "LimitThumb"
-
- #define XtNminimumThumb "minimumThumb"
- #define XtNtopOfThumb "topOfThumb"
- #define XtNmaxOfThumb "maxOfThumb"
- #define XtNshadowWidth "shadowWidth"
- #define XtNtopShadowPixel "topShadowPixel"
- #define XtNbottomShadowPixel "bottomShadowPixel"
- #define XtNlimitThumb "limitThumb"
-
- typedef struct _ScrollbarRec *ScrollbarWidget;
- typedef struct _ScrollbarClassRec *ScrollbarWidgetClass;
-
- extern WidgetClass vim_scrollbarWidgetClass;
-
- extern void vim_XawScrollbarSetThumb __ARGS((Widget, double, double, double));
-
- typedef struct
- {
- /* public */
- Pixel foreground; /* thumb foreground color */
- XtOrientation orientation; /* horizontal or vertical */
- XtCallbackList scrollProc; /* proportional scroll */
- XtCallbackList thumbProc; /* jump (to position) scroll */
- XtCallbackList jumpProc; /* same as thumbProc but pass data by ref */
- Pixmap thumb; /* thumb color */
- float top; /* What percent is above the win's top */
- float shown; /* What percent is shown in the win */
- float max; /* Maximum value for top */
- Dimension length; /* either height or width */
- Dimension thickness; /* either width or height */
- Dimension min_thumb; /* minium size for the thumb. */
-
- /* private */
- XtIntervalId timer_id; /* autorepeat timer; remove on destruction */
- char scroll_mode; /* see below */
- float scroll_off; /* offset from event to top of thumb */
- GC gc; /* a (shared) gc */
- Position topLoc; /* Pixel that corresponds to top */
- Dimension shownLength; /* Num pixels corresponding to shown */
-
- /* From 3d widget */
- Dimension shadow_width;
- Pixel top_shadow_pixel;
- Pixel bot_shadow_pixel;
- Bool limit_thumb; /* limit thumb to inside scrollbar */
- int top_shadow_contrast;
- int bot_shadow_contrast;
- GC top_shadow_GC;
- GC bot_shadow_GC;
- } ScrollbarPart;
-
- #define SMODE_NONE 0
- #define SMODE_CONT 1
- #define SMODE_PAGE_UP 2
- #define SMODE_PAGE_DOWN 3
- #define SMODE_LINE_UP 4
- #define SMODE_LINE_DOWN 5
-
- #define ONE_LINE_DATA 1
- #define ONE_PAGE_DATA 10
- #define END_PAGE_DATA 9999
-
- typedef struct _ScrollbarRec {
- CorePart core;
- SimplePart simple;
- ScrollbarPart scrollbar;
- } ScrollbarRec;
-
- typedef struct {int empty;} ScrollbarClassPart;
-
- typedef struct _ScrollbarClassRec {
- CoreClassPart core_class;
- SimpleClassPart simple_class;
- ScrollbarClassPart scrollbar_class;
- } ScrollbarClassRec;
-
- extern ScrollbarClassRec vim_scrollbarClassRec;
-
- #endif /* _Scrollbar_h */
-