Mercurial > emacs
annotate oldXMenu/Recomp.c @ 55338:3fe6300a67bf
*** empty log message ***
| author | Jason Rumney <jasonr@gnu.org> |
|---|---|
| date | Mon, 03 May 2004 13:51:59 +0000 |
| parents | e8824c4f5f7e |
| children | 3861ff8f4bf1 8e5779acd195 |
| rev | line source |
|---|---|
| 25858 | 1 #include "copyright.h" |
| 2 | |
| 3 /* Copyright Massachusetts Institute of Technology 1985 */ | |
| 4 | |
| 5 /* | |
| 6 * XMenu: MIT Project Athena, X Window system menu package | |
| 7 * | |
| 8 * XMenuRecompute - Recompute XMenu object dependencies. | |
| 9 * | |
| 10 * Author: Tony Della Fera, DEC | |
| 11 * September, 1985 | |
| 12 * | |
| 13 */ | |
| 14 | |
| 15 #include "XMenuInt.h" | |
| 16 | |
| 17 int | |
| 18 XMenuRecompute(display, menu) | |
| 19 Display *display; | |
| 20 register XMenu *menu; /* Menu object to be recomputed. */ | |
| 21 { | |
| 22 register XMPane *p_ptr; /* Pane pointer. */ | |
| 23 register XMSelect *s_ptr; /* Selection pointer. */ | |
| 24 | |
| 25 register int p_num; /* Pane serial number. */ | |
| 26 register int s_num; /* Selection serial number. */ | |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
25858
diff
changeset
|
27 |
| 25858 | 28 /* |
| 29 * If there are no panes in the menu then return failure | |
| 30 * because the menu is not initialized. | |
| 31 */ | |
| 32 if (menu->p_count == 0) { | |
| 33 _XMErrorCode = XME_NOT_INIT; | |
| 34 return(XM_FAILURE); | |
| 35 } | |
| 36 | |
| 37 /* | |
| 38 * Recompute menu wide global values: pane window size, | |
| 39 * selection size and maximum selection count. | |
| 40 */ | |
| 41 _XMRecomputeGlobals(display, menu); | |
| 42 | |
| 43 /* | |
| 44 * For each pane in the menu... | |
| 45 */ | |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
25858
diff
changeset
|
46 |
| 25858 | 47 p_num = 0; |
| 48 for ( | |
| 49 p_ptr = menu->p_list->next; | |
| 50 p_ptr != menu->p_list; | |
| 51 p_ptr = p_ptr->next | |
| 52 ){ | |
| 53 /* | |
| 54 * Recompute pane dependencies. | |
| 55 */ | |
| 56 if (_XMRecomputePane(display, menu, p_ptr, p_num) == _FAILURE) { | |
| 57 return(XM_FAILURE); | |
| 58 } | |
| 59 p_num++; | |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
25858
diff
changeset
|
60 |
| 25858 | 61 /* |
| 62 * For each selection in the pane... | |
| 63 */ | |
| 64 s_num = 0; | |
| 65 for ( | |
| 66 s_ptr = p_ptr->s_list->next; | |
| 67 s_ptr != p_ptr->s_list; | |
| 68 s_ptr = s_ptr->next | |
| 69 ) { | |
| 70 /* | |
| 71 * Recompute selection dependencies. | |
| 72 */ | |
| 73 if (_XMRecomputeSelection(display, menu, s_ptr, s_num) == _FAILURE) { | |
| 74 return(XM_FAILURE); | |
| 75 } | |
| 76 s_num++; | |
| 77 } | |
| 78 } | |
| 79 | |
| 80 /* | |
| 81 * Recompute menu size. | |
| 82 */ | |
| 83 if (menu->menu_style == CENTER) { | |
| 84 menu->width = menu->p_width + (menu->p_bdr_width << 1); | |
| 85 } | |
| 86 else { | |
| 87 menu->width = menu->p_width + (menu->p_bdr_width << 1) + | |
| 88 ((menu->p_count - 1) * menu->p_x_off); | |
| 89 } | |
| 90 menu->height = menu->p_height + (menu->p_bdr_width << 1) + | |
| 91 ((menu->p_count - 1) * menu->p_y_off); | |
| 92 | |
| 93 /* | |
| 94 * Reset the recompute flag. | |
| 95 */ | |
| 96 menu->recompute = 0; | |
| 97 | |
| 98 /* | |
| 99 * Return successfully. | |
| 100 */ | |
| 101 _XMErrorCode = XME_NO_ERROR; | |
| 102 return(XM_SUCCESS); | |
| 103 } | |
| 52401 | 104 |
| 105 /* arch-tag: 1fe99b82-3873-4aab-b2b3-f277c93e00d9 | |
| 106 (do not change this comment) */ |
