view src/scrollbar-gtk.h @ 5070:b0f4adffca7d

fix so that CL docstrings (with &key, etc.) handled properly -------------------- ChangeLog entries follow: -------------------- lisp/ChangeLog addition: 2010-02-23 Ben Wing <ben@xemacs.org> * autoload.el: * autoload.el (make-autoload): * cl-macs.el (cl-function-arglist): * cl-macs.el (cl-transform-lambda): Don't add argument list with the tag "Common Lisp lambda list:"; instead add in "standard" form using "arguments:" and omitting the function name. Add an arg to `cl-function-arglist' to omit the name and use it in autoload.el instead of just hacking it off. * help.el: * help.el (function-arglist): * help.el (function-documentation-1): New. Extract out common code to recognize and/or strip the arglist from documentation into `function-documentation-1'. Use in `function-arglist' and `function-documentation'. Modify `function-arglist' so it looks for the `arguments: ' stuff in all doc strings, not just subrs/autoloads, so that CL functions get recognized properly. Change the regexp used to match "arguments: " specs to allow nested parens inside the arg list (happens when you have a default value specified in a CL arglist).
author Ben Wing <ben@xemacs.org>
date Tue, 23 Feb 2010 01:12:13 -0600
parents fdefd0186b75
children 308d34e9f07d
line wrap: on
line source

/* Define Gtk-specific scrollbar instance.
   Copyright (C) 1994, 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, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */

/* Synched up with: Not in FSF. */

#ifndef _XEMACS_SCROLLBAR_GTK_H_
#define _XEMACS_SCROLLBAR_GTK_H_

#if defined (HAVE_GTK) && defined (HAVE_SCROLLBARS)

#include "scrollbar.h"

typedef struct _scrollbar_values
{
  int line_increment;
  int page_increment;

  int minimum;
  int maximum;

  int slider_size;
  int slider_position;

  int scrollbar_width, scrollbar_height;
  int scrollbar_x, scrollbar_y;
} scrollbar_values;

struct gtk_scrollbar_data
{
  /* Unique scrollbar identifier and name. */
  unsigned int id;

  /* Is set if we have already set the backing_store attribute correctly */
  char backing_store_initialized;

  /* Positioning and sizing information for scrollbar and slider. */
  scrollbar_values pos_data;

  /* Pointer to the scrollbar widget this structure describes. */
  GtkWidget *widget;

  gfloat last_value;

  /* Recorded starting position for Motif-like scrollbar drags. */
  int vdrag_orig_value;
  Charbpos vdrag_orig_window_start;
};

#define SCROLLBAR_GTK_DATA(i) ((struct gtk_scrollbar_data *) ((i)->scrollbar_data))

#define SCROLLBAR_GTK_ID(i) (SCROLLBAR_GTK_DATA (i)->id)
#define SCROLLBAR_GTK_BACKING_STORE_INITIALIZED(i) \
  (SCROLLBAR_GTK_DATA (i)->backing_store_initialized)
#define SCROLLBAR_GTK_POS_DATA(i) (SCROLLBAR_GTK_DATA (i)->pos_data)
#define SCROLLBAR_GTK_WIDGET(i) (SCROLLBAR_GTK_DATA (i)->widget)
#define SCROLLBAR_GTK_LAST_VALUE(i) SCROLLBAR_GTK_DATA (i)->last_value

#define SCROLLBAR_GTK_VDRAG_ORIG_VALUE(i) \
  (SCROLLBAR_GTK_DATA (i)->vdrag_orig_value)
#define SCROLLBAR_GTK_VDRAG_ORIG_WINDOW_START(i) \
  (SCROLLBAR_GTK_DATA (i)->vdrag_orig_window_start)

void gtk_update_frame_scrollbars (struct frame *f);
void gtk_set_scrollbar_pointer (struct frame *f, Lisp_Object cursor);

#endif /* HAVE_GDK and HAVE_SCROLLBARS */
#endif /* _XEMACS_SCROLLBAR_GTK_H_ */