Contents in 1999-06-04-13 of release-21-2.
[chise/xemacs-chise.git.1] / src / EmacsFrameP.h
1 /* Private header for the Emacs frame widget.
2    Copyright (C) 1993-1995 Sun Microsystems, Inc.
3    Copyright (C) 1995 Ben Wing.
4
5 This file is part of XEmacs.
6
7 XEmacs is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by the
9 Free Software Foundation; either version 2, or (at your option) any
10 later version.
11
12 XEmacs is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with XEmacs; see the file COPYING.  If not, write to
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 Boston, MA 02111-1307, USA.  */
21
22 /* Synched up with: Not in FSF. */
23
24 #ifndef _EmacsFrameP_h
25 #define _EmacsFrameP_h
26
27 #include "xintrinsicp.h"
28 #include <X11/CoreP.h>
29 #ifdef LWLIB_USES_MOTIF
30 #include "xmprimitivep.h"
31 #endif
32 #include "EmacsFrame.h"
33
34 typedef struct {
35   struct frame* frame;          /* the *emacs* frame object */
36
37   /* Resources that can't be done from lisp.
38    */
39   char*         geometry;               /* geometry spec of this frame */
40   Boolean       iconic;                 /* whether this frame is iconic */
41
42   /* The rest of this is crap and should be deleted.
43    */
44   Boolean       minibuffer;     /* 0: normal frames with minibuffers.
45                                  * 1: frames without minibuffers
46                                  * 2: minibuffer only. */
47   Boolean       unsplittable;   /* frame can only have one window */
48
49   int           internal_border_width;  /* internal borders */
50   int           scrollbar_width;        /* width of frame vertical sb's */
51   int           scrollbar_height;       /* height of frame horizontal sb's */
52   int           top_toolbar_height;     /* height of top toolbar */
53   int           bottom_toolbar_height;  /* height of bottom toolbar */
54   int           left_toolbar_width;     /* width of left toolbar */
55   int           right_toolbar_width;    /* width of right toolbar */
56   int           top_toolbar_border_width;       /* border width */
57   int           bottom_toolbar_border_width;    /* ... of bottom toolbar */
58   int           left_toolbar_border_width;      /* ... of left toolbar */
59   int           right_toolbar_border_width;     /* ... of right toolbar */
60   Pixel         top_toolbar_shadow_pixel;
61   Pixel         bottom_toolbar_shadow_pixel;
62   Pixel         background_toolbar_pixel;
63   Pixel         foreground_toolbar_pixel;
64   Pixmap        top_toolbar_shadow_pixmap;
65   Pixmap        bottom_toolbar_shadow_pixmap;
66   Dimension     toolbar_shadow_thickness;
67   unsigned char scrollbar_placement;
68   int           interline;              /* skips between lines */
69
70   XFontStruct*  font;                   /* font */
71   Pixel         foreground_pixel;       /* foreground */
72   Pixel         background_pixel;       /* background */
73
74   Pixel         cursor_color;           /* text cursor color */
75   Boolean       bar_cursor;             /* 1 if bar, 0 if block */
76
77   Boolean       visual_bell;            /* flash instead of beep */
78   int           bell_volume;            /* how loud is beep */
79
80   Boolean       menubar_p;              /* initially show a menubar? */
81   Boolean       initially_unmapped;     /* inhibit initial window mapping */
82   Boolean       use_backing_store;      /* backing store for menubar & ew? */
83
84   Dimension     preferred_width;        /* if non-zero, preferred size for */
85   Dimension     preferred_height;       /* QueryGeometry() */
86   /* private state */
87
88 } EmacsFramePart;
89
90 typedef struct _EmacsFrameRec { /* full instance record */
91     CorePart            core;
92 #ifdef LWLIB_USES_MOTIF
93     XmPrimitivePart     primitive;
94 #endif
95     EmacsFramePart      emacs_frame;
96 } EmacsFrameRec;
97
98 typedef struct {                        /* new fields for EmacsFrame class */
99     int dummy;
100 } EmacsFrameClassPart;
101
102 typedef struct _EmacsFrameClassRec {    /* full class record declaration */
103     CoreClassPart               core_class;
104 #ifdef LWLIB_USES_MOTIF
105     XmPrimitiveClassPart        primitive_class;
106 #endif
107     EmacsFrameClassPart emacs_frame_class;
108 } EmacsFrameClassRec;
109
110 extern EmacsFrameClassRec emacsFrameClassRec;    /* class pointer */
111
112
113
114 #endif /* _EmacsFrameP_h */