annotate lwlib/xlwmenuP.h @ 5167:e374ea766cc1

clean up, rearrange allocation statistics code -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-03-21 Ben Wing <ben@xemacs.org> * alloc.c: * alloc.c (assert_proper_sizing): * alloc.c (c_readonly): * alloc.c (malloced_storage_size): * alloc.c (fixed_type_block_overhead): * alloc.c (lisp_object_storage_size): * alloc.c (inc_lrecord_stats): * alloc.c (dec_lrecord_stats): * alloc.c (pluralize_word): * alloc.c (object_memory_usage_stats): * alloc.c (Fobject_memory_usage): * alloc.c (compute_memusage_stats_length): * alloc.c (disksave_object_finalization_1): * alloc.c (Fgarbage_collect): * mc-alloc.c: * mc-alloc.c (mc_alloced_storage_size): * mc-alloc.h: No functionality change here. Collect the allocations-statistics code that was scattered throughout alloc.c into one place. Add remaining section headings so that all sections have headings clearly identifying the start of the section and its purpose. Expose mc_alloced_storage_size() even when not MEMORY_USAGE_STATS; this fixes build problems and is related to the export of lisp_object_storage_size() and malloced_storage_size() when non-MEMORY_USAGE_STATS in the previous change set.
author Ben Wing <ben@xemacs.org>
date Sun, 21 Mar 2010 04:41:49 -0500
parents a6c778975d7d
children ade4c7e2c6cb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
1 #ifndef INCLUDED_xlwmenuP_h_
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
2 #define INCLUDED_xlwmenuP_h_
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 #include "xlwmenu.h"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 #include <X11/CoreP.h>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6
4916
a6c778975d7d split USE_XFT into HAVE_XFT/USE_XFT
Ben Wing <ben@xemacs.org>
parents: 3685
diff changeset
7 #ifdef HAVE_XFT_MENUBARS
3094
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 440
diff changeset
8 #include <X11/Xft/Xft.h>
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 440
diff changeset
9 #endif
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 440
diff changeset
10
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 440
diff changeset
11
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 /* Elements in the stack arrays. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 typedef struct _window_state
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 Window window;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 Position x;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 Position y;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 Dimension width;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 Dimension height;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 Dimension label_width;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 Dimension toggle_width;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 } window_state;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 /* New fields for the XlwMenu widget instance record */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 typedef struct _XlwMenu_part
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 /* slots set by the resources */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29
4916
a6c778975d7d split USE_XFT into HAVE_XFT/USE_XFT
Ben Wing <ben@xemacs.org>
parents: 3685
diff changeset
30 #if defined(NEED_MOTIF) && !defined(HAVE_XFT_MENUBARS)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 XmFontList font_list;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 XmFontList font_list_2;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 XmFontList fallback_font_list;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 #else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 XFontStruct * font;
4916
a6c778975d7d split USE_XFT into HAVE_XFT/USE_XFT
Ben Wing <ben@xemacs.org>
parents: 3685
diff changeset
36 #ifdef HAVE_XFT_MENUBARS
3397
6aa26bef0527 [xemacs-hg @ 2006-05-12 19:25:28 by stephent]
stephent
parents: 3094
diff changeset
37 String fcFontName;
3685
382b11fa8866 [xemacs-hg @ 2006-11-17 02:50:22 by stephent]
stephent
parents: 3397
diff changeset
38 String xftFontName;
3094
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 440
diff changeset
39 XftFont *renderFont;
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 440
diff changeset
40 #endif
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 # ifdef USE_XFONTSET
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 XFontSet font_set;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 # endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 Dimension font_ascent, font_descent; /* extracted from font/fontlist */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 Pixel foreground;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 Pixel button_foreground;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 Pixel highlight_foreground;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50 Pixel title_foreground;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 Dimension margin;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52 Dimension horizontal_margin;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53 Dimension vertical_margin;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 Dimension column_spacing;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55 Dimension shadow_thickness;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 Dimension indicator_size;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 Pixel top_shadow_color;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58 Pixel bottom_shadow_color;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 Pixel select_color;
4916
a6c778975d7d split USE_XFT into HAVE_XFT/USE_XFT
Ben Wing <ben@xemacs.org>
parents: 3685
diff changeset
60 #ifdef HAVE_XFT_MENUBARS
3094
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 440
diff changeset
61 #endif
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 Pixmap top_shadow_pixmap;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 Pixmap bottom_shadow_pixmap;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 Cursor cursor_shape;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 XtCallbackList open;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 XtCallbackList select;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 widget_value* contents;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 int horizontal;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 Boolean use_backing_store;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70 Boolean bounce_down;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 Boolean lookup_labels;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73 /* State of the XlwMenu */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 int old_depth;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 widget_value** old_stack;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 int old_stack_length;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 /* New state after the user moved */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 int new_depth;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 widget_value** new_stack;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81 int new_stack_length;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83 /* Window resources */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84 window_state* windows;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85 int windows_length;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 /* Internal part, set by the XlwMenu */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88 GC foreground_gc;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 GC button_gc;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90 GC background_gc;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91 GC inactive_gc;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92 GC inactive_button_gc;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93 GC shadow_top_gc;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94 GC shadow_bottom_gc;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95 GC select_gc;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96 GC highlight_gc;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 GC title_gc;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98 Cursor cursor;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
99 Boolean popped_up;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
100 Pixmap gray_pixmap;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
101
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
102 /* Stay-up stuff */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
103 Boolean pointer_grabbed;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
104 Boolean next_release_must_exit;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
105 Time menu_post_time, menu_bounce_time;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
106 widget_value * last_selected_val;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
107 } XlwMenuPart;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
108
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
109 /* Full instance record declaration */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
110 typedef struct _XlwMenuRec
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
111 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
112 CorePart core;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
113 XlwMenuPart menu;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
114 } XlwMenuRec;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
115
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
116 /* New fields for the XlwMenu widget class record */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
117 typedef struct
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
118 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
119 int dummy;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120 } XlwMenuClassPart;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
121
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
122 /* Full class record declaration. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
123 typedef struct _XlwMenuClassRec
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
124 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
125 CoreClassPart core_class;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126 XlwMenuClassPart menu_class;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
127 } XlwMenuClassRec;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
128
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
129 /* Class pointer. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
130 extern XlwMenuClassRec xlwMenuClassRec;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
132 #endif /* INCLUDED_xlwmenuP_h_ */