view lwlib/xlwgcs.h @ 4917:fce43cb76a1c

xlike cleanup, documentation -------------------- ChangeLog entries follow: -------------------- man/ChangeLog addition: 2010-02-03 Ben Wing <ben@xemacs.org> * internals/internals.texi (Top): * internals/internals.texi (Evaluation; Stack Frames; Bindings): * internals/internals.texi (Ben's README): * internals/internals.texi (Consoles; Devices; Frames; Windows): * internals/internals.texi (Window Hierarchy): * internals/internals.texi (The Window Object): * internals/internals.texi (Modules for the Basic Displayable Lisp Objects): * internals/internals.texi (Window-System Support): * internals/internals.texi (Creating a Window-System Type): * internals/internals.texi (Discussion -- Garbage Collection): Update the part at the top about how to maintain the file with more tips. Add a chapter on "window-system support" describing in a general way how the support for different window systems/device types works, including the separation between device-independent and device-dependent parts, device methods, the specific device types and the "xlike" pseudo-type. src/ChangeLog addition: 2010-02-03 Ben Wing <ben@xemacs.org> * Makefile.in.in: * Makefile.in.in (x_objs): * Makefile.in.in (gtk_gui_objs): * console-xlike-inc.h: * depend: * device-x.c: * emacs.c: * gccache-gtk.h: * gccache-gtk.h (gc_cache_lookup): * gccache-x.c: * gccache-x.c (GCCACHE_HASH): * gccache-x.h: * toolbar-gtk.c: * toolbar-gtk.c (gtk_initialize_frame_toolbars): * toolbar-x.c: * toolbar-x.c (x_initialize_frame_toolbars): * toolbar-xlike.c: * toolbar-xlike.c (xlike_draw_blank_toolbar_button): * toolbar-xlike.c (xlike_output_toolbar_button): * toolbar-xlike.c (xlike_get_button_size): * toolbar-xlike.c (XLIKE_OUTPUT_BUTTONS_LOOP): * toolbar-xlike.c (xlike_output_toolbar): * toolbar-xlike.c (xlike_clear_toolbar): * toolbar-xlike.c (xlike_output_frame_toolbars): * toolbar-xlike.c (xlike_clear_frame_toolbars): * toolbar-xlike.c (xlike_redraw_exposed_toolbar): * toolbar-xlike.c (xlike_redraw_exposed_toolbars): * toolbar-xlike.c (xlike_redraw_frame_toolbars): * toolbar-xlike.h: * toolbar-xlike.h (xlike_clear_frame_toolbars): Rename some files to make them consistent with general naming rules: xgccache.c -> gccache-x.c xgccache.h -> gccache-x.h toolbar-common.c -> toolbar-xlike.c toolbar-common.h -> toolbar-xlike.h Fix include-file references. Also change the names of functions in now-named toolbar-xlike.c to be xlike_foo() instead of common_foo(). Add a longish comment in console-xlike-inc.h describing the "xlike" system, how it works and what the various files are used for.
author Ben Wing <ben@xemacs.org>
date Wed, 03 Feb 2010 02:46:50 -0600
parents 5460287a3327
children 308d34e9f07d
line wrap: on
line source

 /* Tabs Widget for XEmacs.
    Copyright (C) 1999 Edward A. Falk

 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: Gcs 1.7 */


#ifndef	GCS_H
#define	GCS_H

/* Overview of functions provided here:
 *
 * AllocFgGC()
 *	Given a foreground pixel & a font, return an appropriate GC
 *
 * AllocBackgroundGC()
 *	Given a widget, return a GC for painting the background color
 *
 * AllocShadeGC()
 *	Given foreground, background, a contrast value & be_nice_to_colormap
 *	flag, return a GC suitable for rendering in an intermediate color,
 *	as determined by contrast.  May return a dither pattern or a
 *	solid color, as appropriate.
 *
 *	Contrast 0 = background color, 100 = foreground color.  It is legal
 *	for contrast to be more than 100 or less than 0.
 *
 * AllocGreyGC()
 *	Given widget, foreground, font, contrast & be_nice_to_colormap,
 *	return a shade GC (see above) based on foreground and widget
 *	background.
 *
 * AllocTopShadowGC()
 *	Given widget, contrast & be_nice_to_colormap, return a GC suitable
 *	for rendering the top shadow.
 *
 *	Contrast 0 = use background pixel.  Contrast > 0 = use brighter
 *	colors.
 *
 * AllocBotShadowGC()
 *	Given widget, contrast & be_nice_to_colormap, return a GC suitable
 *	for rendering the bottom shadow.
 *
 *	Contrast 0 = use background pixel.  Contrast > 0 = use darker
 *	colors.
 *
 * AllocArmShadowGC()
 *	Given widget, contrast & be_nice_to_colormap, return a GC suitable
 *	for rendering the "armed" shadow.
 *
 *	Contrast 0 = use background pixel.  Contrast > 0 = use darker
 *	colors.
 *
 * AllocShadowPixel()
 *	Given a widget & scale factor, allocate & return a color darker
 *	or lighter than the background pixel, as determined by scale.
 *
 *	Scale 100 = use background pixel.  Scale > 100 = brighter color,
 *	Scale < 100 = darker color.
 *
 * AllocGreyPixel()
 *	Given two pixel values and scale factor, allocate & return a
 *	pixel value between them, according to scale.
 *
 *	Scale == 0:	background color
 *	Scale == 100:	foreground color
 *	0<Scale<100:	intermediate color
 *	Scale > 100:	more foreground
 *	Scale < 0:	more background
 *
 *
 * AllocGreyPixelC()
 *	Given two color values and scale factor, allocate & return a
 *	pixel value between them, according to scale.
 *
 *	Scale == 0:	background color
 *	Scale == 100:	foreground color
 *	0<Scale<100:	intermediate color
 *	Scale > 100:	more foreground
 *	Scale < 0:	more background
 *
 * Draw3dBox()
 *	Given box dimensions, shadow width, top shadow GC & bottom shadow GC,
 *	draw a 3-d box.
 */

#if	NeedFunctionPrototypes

extern	GC	AllocFgGC( Widget w, Pixel fg, Font font) ;
extern	GC	AllocBackgroundGC( Widget w, Font font) ;
extern	GC	AllocShadeGC( Widget w, Pixel fg, Pixel bg, Font,
			int contrast, Bool ) ;
extern	GC	AllocGreyGC( Widget w, Pixel fg, Font, int, Bool ) ;
extern	GC	AllocTopShadowGC( Widget w, int contrast, int ) ;
extern	GC	AllocBotShadowGC( Widget w, int contrast, int ) ;
extern	GC	AllocArmGC( Widget w, int contrast, int) ;
extern	Pixel	AllocShadowPixel(Widget, int scale) ;
extern	Pixel	AllocGreyPixel(Widget, Pixel fg, Pixel bg, int scale) ;
extern	Pixel	AllocGreyPixelC(Widget, XColor *fg, XColor *bg, int scale) ;
extern	void	Draw3dBox(Widget w, int  x, int y, int wid, int hgt, int s,
			GC topgc, GC botgc) ;

#else

extern	GC	AllocFgGC() ;
extern	GC	AllocBackgroundGC() ;
extern	GC	AllocShadeGC() ;
extern	GC	AllocGreyGC() ;
extern	GC	AllocTopShadowGC() ;
extern	GC	AllocBotShadowGC() ;
extern	GC	AllocArmGC() ;
extern	Pixel	AllocShadowPixel() ;
extern	Pixel	AllocGreyPixel() ;
extern	Pixel	AllocGreyPixelC() ;
extern	void	Draw3dBox() ;

#endif

#endif	/* GCS_H */