Mercurial > hg > xemacs-beta
annotate lwlib/xlwmenuP.h @ 5670:baab2e3a4141
Prepare for release.
author | Stephen J. Turnbull <stephen@xemacs.org> |
---|---|
date | Fri, 03 Aug 2012 02:00:29 +0900 |
parents | ade4c7e2c6cb |
children |
rev | line source |
---|---|
5422
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
1 /* Implements a lightweight menubar widget. |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
2 Copyright (C) 1992, 1993, 1994 Lucid, Inc. |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
3 Copyright (C) 1995 Tinker Systems and INS Engineering Corp. |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
4 |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
5 This file is part of the Lucid Widget Library. |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
6 |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
7 The Lucid Widget Library is free software: you can redistribute it |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
8 and/or modify it under the terms of the GNU General Public License as |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
9 published by the Free Software Foundation, either version 3 of the |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
10 License, or (at your option) any later version. |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
11 |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
12 The Lucid Widget Library is distributed in the hope that it will be |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
13 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
15 General Public License for more details. |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
16 |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
17 You should have received a copy of the GNU General Public License |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
18 along with the Lucid Widget Library. If not, see |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
19 <http://www.gnu.org/licenses/>. */ |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
4916
diff
changeset
|
20 |
440 | 21 #ifndef INCLUDED_xlwmenuP_h_ |
22 #define INCLUDED_xlwmenuP_h_ | |
428 | 23 |
24 #include "xlwmenu.h" | |
25 #include <X11/CoreP.h> | |
26 | |
4916
a6c778975d7d
split USE_XFT into HAVE_XFT/USE_XFT
Ben Wing <ben@xemacs.org>
parents:
3685
diff
changeset
|
27 #ifdef HAVE_XFT_MENUBARS |
3094 | 28 #include <X11/Xft/Xft.h> |
29 #endif | |
30 | |
31 | |
428 | 32 /* Elements in the stack arrays. */ |
33 typedef struct _window_state | |
34 { | |
35 Window window; | |
36 Position x; | |
37 Position y; | |
38 Dimension width; | |
39 Dimension height; | |
40 Dimension label_width; | |
41 Dimension toggle_width; | |
42 } window_state; | |
43 | |
44 | |
45 /* New fields for the XlwMenu widget instance record */ | |
46 typedef struct _XlwMenu_part | |
47 { | |
48 /* slots set by the resources */ | |
49 | |
4916
a6c778975d7d
split USE_XFT into HAVE_XFT/USE_XFT
Ben Wing <ben@xemacs.org>
parents:
3685
diff
changeset
|
50 #if defined(NEED_MOTIF) && !defined(HAVE_XFT_MENUBARS) |
428 | 51 XmFontList font_list; |
52 XmFontList font_list_2; | |
53 XmFontList fallback_font_list; | |
54 #else | |
55 XFontStruct * font; | |
4916
a6c778975d7d
split USE_XFT into HAVE_XFT/USE_XFT
Ben Wing <ben@xemacs.org>
parents:
3685
diff
changeset
|
56 #ifdef HAVE_XFT_MENUBARS |
3397 | 57 String fcFontName; |
3685 | 58 String xftFontName; |
3094 | 59 XftFont *renderFont; |
60 #endif | |
428 | 61 # ifdef USE_XFONTSET |
62 XFontSet font_set; | |
63 # endif | |
64 #endif | |
65 Dimension font_ascent, font_descent; /* extracted from font/fontlist */ | |
66 | |
67 Pixel foreground; | |
68 Pixel button_foreground; | |
69 Pixel highlight_foreground; | |
70 Pixel title_foreground; | |
71 Dimension margin; | |
72 Dimension horizontal_margin; | |
73 Dimension vertical_margin; | |
74 Dimension column_spacing; | |
75 Dimension shadow_thickness; | |
76 Dimension indicator_size; | |
77 Pixel top_shadow_color; | |
78 Pixel bottom_shadow_color; | |
79 Pixel select_color; | |
4916
a6c778975d7d
split USE_XFT into HAVE_XFT/USE_XFT
Ben Wing <ben@xemacs.org>
parents:
3685
diff
changeset
|
80 #ifdef HAVE_XFT_MENUBARS |
3094 | 81 #endif |
428 | 82 Pixmap top_shadow_pixmap; |
83 Pixmap bottom_shadow_pixmap; | |
84 Cursor cursor_shape; | |
85 XtCallbackList open; | |
86 XtCallbackList select; | |
87 widget_value* contents; | |
88 int horizontal; | |
89 Boolean use_backing_store; | |
90 Boolean bounce_down; | |
91 Boolean lookup_labels; | |
92 | |
93 /* State of the XlwMenu */ | |
94 int old_depth; | |
95 widget_value** old_stack; | |
96 int old_stack_length; | |
97 | |
98 /* New state after the user moved */ | |
99 int new_depth; | |
100 widget_value** new_stack; | |
101 int new_stack_length; | |
102 | |
103 /* Window resources */ | |
104 window_state* windows; | |
105 int windows_length; | |
106 | |
107 /* Internal part, set by the XlwMenu */ | |
108 GC foreground_gc; | |
109 GC button_gc; | |
110 GC background_gc; | |
111 GC inactive_gc; | |
112 GC inactive_button_gc; | |
113 GC shadow_top_gc; | |
114 GC shadow_bottom_gc; | |
115 GC select_gc; | |
116 GC highlight_gc; | |
117 GC title_gc; | |
118 Cursor cursor; | |
119 Boolean popped_up; | |
120 Pixmap gray_pixmap; | |
121 | |
122 /* Stay-up stuff */ | |
123 Boolean pointer_grabbed; | |
124 Boolean next_release_must_exit; | |
125 Time menu_post_time, menu_bounce_time; | |
126 widget_value * last_selected_val; | |
127 } XlwMenuPart; | |
128 | |
129 /* Full instance record declaration */ | |
130 typedef struct _XlwMenuRec | |
131 { | |
132 CorePart core; | |
133 XlwMenuPart menu; | |
134 } XlwMenuRec; | |
135 | |
136 /* New fields for the XlwMenu widget class record */ | |
137 typedef struct | |
138 { | |
139 int dummy; | |
140 } XlwMenuClassPart; | |
141 | |
142 /* Full class record declaration. */ | |
143 typedef struct _XlwMenuClassRec | |
144 { | |
145 CoreClassPart core_class; | |
146 XlwMenuClassPart menu_class; | |
147 } XlwMenuClassRec; | |
148 | |
149 /* Class pointer. */ | |
150 extern XlwMenuClassRec xlwMenuClassRec; | |
151 | |
440 | 152 #endif /* INCLUDED_xlwmenuP_h_ */ |