1 /* Copyright Massachusetts Institute of Technology 1985 */
7 * XMenu: MIT Project Athena, X Window system menu package
9 * XMenuDeleteSelection - Deletes a selection from an XMenu object.
11 * Author: Tony Della Fera, DEC
19 XMenuDeleteSelection(register Display
*display
, register XMenu
*menu
, register int p_num
, register int s_num
)
20 /* Previously opened display. */
21 /* Menu object to be modified. */
22 /* Pane number to be deleted. */
23 /* Selection number to be deleted. */
25 register XMPane
*p_ptr
; /* Pointer to pane being deleted. */
26 register XMSelect
*s_ptr
; /* Pointer to selections being deleted. */
29 * Find the right pane.
31 p_ptr
= _XMGetPanePtr(menu
, p_num
);
32 if (p_ptr
== NULL
) return(XM_FAILURE
);
35 * Find the right selection.
37 s_ptr
= _XMGetSelectionPtr(p_ptr
, s_num
);
38 if (s_ptr
== NULL
) return(XM_FAILURE
);
41 * Remove the selection from the association table.
43 XDeleteAssoc(display
, menu
->assoc_tab
, s_ptr
->window
);
46 * Remove the selection from the parent pane's selection
47 * list and update the selection count.
53 * Destroy the selection transparency.
55 if (s_ptr
->window
) XDestroyWindow(display
, s_ptr
->window
);
58 * Free the selection's XMSelect structure.
63 * Schedule a recompute.
68 * Return the selection number just deleted.
70 _XMErrorCode
= XME_NO_ERROR
;