view lwlib/xlwscrollbarP.h @ 5653:3df910176b6a

Support predefined character classes in #'skip-chars-{forward,backward}, too src/ChangeLog addition: 2012-05-04 Aidan Kehoe <kehoea@parhasard.net> * regex.c: Move various #defines and enums to regex.h, since we need them when implementing #'skip-chars-{backward,forward}. * regex.c (re_wctype): * regex.c (re_iswctype): Be more robust about case insensitivity here. * regex.c (regex_compile): * regex.h: * regex.h (RE_ISWCTYPE_ARG_DECL): * regex.h (CHAR_CLASS_MAX_LENGTH): * search.c (skip_chars): Implement support for the predefined character classes in this function. tests/ChangeLog addition: 2012-05-04 Aidan Kehoe <kehoea@parhasard.net> * automated/regexp-tests.el (equal): * automated/regexp-tests.el (Assert-char-class): Correct a stray parenthesis; add tests for the predefined character classes with #'skip-chars-{forward,backward}; update the tests to reflect some changed design decisions on my part. man/ChangeLog addition: 2012-05-04 Aidan Kehoe <kehoea@parhasard.net> * lispref/searching.texi (Regular Expressions): * lispref/searching.texi (Syntax of Regexps): * lispref/searching.texi (Char Classes): * lispref/searching.texi (Regexp Example): Document the predefined character classes in this file.
author Aidan Kehoe <kehoea@parhasard.net>
date Fri, 04 May 2012 21:12:02 +0100
parents ade4c7e2c6cb
children
line wrap: on
line source

/* Implements a lightweight scrollbar widget.  
   Copyright (C) 1992, 1993, 1994 Lucid, Inc.

This file is part of the Lucid Widget Library.

The Lucid Widget Library 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 3 of the
License, or (at your option) any later version.

The Lucid Widget Library 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 the Lucid Widget Library.  If not, see
<http://www.gnu.org/licenses/>. */

/* Created by Douglas Keller <dkeller@vnet.ibm.com> */

#ifndef _XlwScrollBarP_h
#define _XlwScrollBarP_h


/*
** Widget class
*/
typedef struct
{
  int dummy_field;	/* keep compiler happy */
} XlwScrollBarClassPart;

typedef struct _XlwScrollbarClassRec
{
  CoreClassPart	core_class;
  XlwScrollBarClassPart scrollbar_class;
} XlwScrollBarClassRec;

enum XlwScrollbarArm
{
  ARM_NONE,
  ARM_SLIDER,
  ARM_UP,
  ARM_DOWN,
  ARM_PAGEUP,
  ARM_PAGEDOWN
};

enum XlwScrollbarForcedScroll
{
  FORCED_SCROLL_NONE,
  FORCED_SCROLL_DOWNRIGHT,
  FORCED_SCROLL_UPLEFT
};

/*
** Widget instance
*/
typedef struct
{
  /* resources */
  XtCallbackList valueChangedCBL;
  XtCallbackList incrementCBL;
  XtCallbackList decrementCBL;
  XtCallbackList pageIncrementCBL;
  XtCallbackList pageDecrementCBL;
  XtCallbackList toTopCBL;
  XtCallbackList toBottomCBL;
  XtCallbackList dragCBL;

  Pixel		foreground;

  Pixel		topShadowColor;
  Pixel		bottomShadowColor;

  Pixel		troughColor;

  Pixel		armColor;
  Pixel		armTopShadowColor;
  Pixel		armBottomShadowColor;

  Pixmap	topShadowPixmap;
  Pixmap	bottomShadowPixmap;

  int		shadowThickness;

  Boolean	showArrows;

  int		minimum;
  int		maximum;
  int		sliderSize;
  int		value;
  int		pageIncrement;
  int		increment;

  int		initialDelay;
  int		repeatDelay;

  unsigned char	orientation;

  char		*sliderStyle;
  char		*knobStyle;
  char		*arrowPosition;

  /* private */
  Pixmap	grayPixmap;

  GC		backgroundGC;
  GC		topShadowGC;
  GC		bottomShadowGC;

  int		above, ss, below;
  int		lastY;

  enum XlwScrollbarArm armed;

  enum XlwScrollbarForcedScroll forced_scroll;

  int		savedValue;

  Boolean	fullRedrawNext;

  Boolean	timerActive;
  XtIntervalId	timerId;

} XlwScrollBarPart;

typedef struct _XlwScrollBarRec
{
  CorePart          core;
  XlwScrollBarPart  sb;
} XlwScrollBarRec;

#endif /* _XlwScrollBarP_h */