|
|
1.1 ! root 1: #include <X11/copyright.h> ! 2: ! 3: /* $Header: ChgPane.c,v 1.3 87/12/20 12:04:05 rws Exp $ */ ! 4: /* Copyright Massachusetts Institute of Technology 1985 */ ! 5: ! 6: /* ! 7: * XMenu: MIT Project Athena, X Window system menu package ! 8: * ! 9: * XMenuChangePane - Change the label of a menu pane. ! 10: * ! 11: * Author: Tony Della Fera, DEC ! 12: * December 19, 1985 ! 13: * ! 14: */ ! 15: ! 16: #include "XMenuInt.h" ! 17: ! 18: int ! 19: XMenuChangePane(menu, p_num, label) ! 20: register XMenu *menu; /* Menu object to be modified. */ ! 21: register int p_num; /* Pane number to be modified. */ ! 22: char *label; /* Selection label. */ ! 23: { ! 24: register XMPane *p_ptr; /* XMPane pointer. */ ! 25: ! 26: int label_length; /* Label lenght in characters. */ ! 27: int label_width; /* Label width in pixels. */ ! 28: ! 29: /* ! 30: * Check for NULL pointers! ! 31: */ ! 32: if (label == NULL) { ! 33: _XMErrorCode = XME_ARG_BOUNDS; ! 34: return(XM_FAILURE); ! 35: } ! 36: ! 37: /* ! 38: * Find the right pane. ! 39: */ ! 40: p_ptr = _XMGetPanePtr(menu, p_num); ! 41: if (p_ptr == NULL) return(XM_FAILURE); ! 42: ! 43: /* ! 44: * Determine label size. ! 45: */ ! 46: label_length = strlen(label); ! 47: label_width = XTextWidth(menu->p_fnt_info, label, label_length); ! 48: ! 49: /* ! 50: * Change the pane data. ! 51: */ ! 52: p_ptr->label = label; ! 53: p_ptr->label_width = label_width; ! 54: p_ptr->label_length = label_length; ! 55: ! 56: /* ! 57: * Schedule a recompute. ! 58: */ ! 59: menu->recompute = 1; ! 60: ! 61: /* ! 62: * Return the pane number just changed. ! 63: */ ! 64: _XMErrorCode = XME_NO_ERROR; ! 65: return(p_num); ! 66: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.