749N/A/*
749N/A * $XConsortium: SimpleMenP.h,v 1.12 89/12/11 15:01:39 kit Exp $
749N/A *
749N/A * Copyright 1989 Massachusetts Institute of Technology
749N/A *
749N/A * Permission to use, copy, modify, distribute, and sell this software and its
749N/A * documentation for any purpose is hereby granted without fee, provided that
749N/A * the above copyright notice appear in all copies and that both that
749N/A * copyright notice and this permission notice appear in supporting
749N/A * documentation, and that the name of M.I.T. not be used in advertising or
749N/A * publicity pertaining to distribution of the software without specific,
749N/A * written prior permission. M.I.T. makes no representations about the
749N/A * suitability of this software for any purpose. It is provided "as is"
749N/A * without express or implied warranty.
749N/A *
749N/A * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
749N/A * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
749N/A * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
749N/A * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
749N/A * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
749N/A * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
749N/A *
749N/A */
749N/A
749N/A/*
749N/A * SimpleMenuP.h - Private Header file for SimpleMenu widget.
749N/A *
749N/A * Date: April 3, 1989
749N/A *
749N/A * By: Chris D. Peterson
749N/A * MIT X Consortium
749N/A * kit@expo.lcs.mit.edu
749N/A */
749N/A
749N/A#ifndef _SimpleMenuP_h
749N/A#define _SimpleMenuP_h
749N/A
749N/A#include <./Xaw3_1SimpleMenu.h>
749N/A#include <./Xaw3_1SmeP.h>
749N/A#include <X11/ShellP.h>
749N/A
749N/A#define ForAllChildren(smw, childP) \
749N/A for ( (childP) = (SmeObject *) (smw)->composite.children ; \
749N/A (childP) < (SmeObject *) ( (smw)->composite.children + \
749N/A (smw)->composite.num_children ) ; \
749N/A (childP)++ )
749N/A
749N/Atypedef struct {
749N/A XtPointer extension; /* For future needs. */
749N/A} SimpleMenuClassPart;
749N/A
749N/Atypedef struct _SimpleMenuClassRec {
749N/A CoreClassPart core_class;
749N/A CompositeClassPart composite_class;
749N/A ShellClassPart shell_class;
749N/A OverrideShellClassPart override_shell_class;
749N/A SimpleMenuClassPart simpleMenu_class;
749N/A} SimpleMenuClassRec;
749N/A
749N/Aextern SimpleMenuClassRec simpleMenuClassRec;
749N/A
749N/Atypedef struct _SimpleMenuPart {
749N/A
749N/A /* resources */
749N/A
749N/A String label_string; /* The string for the label or NULL. */
749N/A SmeObject label; /* If label_string is non-NULL then this is
749N/A the label widget. */
749N/A WidgetClass label_class; /* Widget Class of the menu label object. */
749N/A
749N/A Dimension top_margin; /* Top and bottom margins. */
749N/A Dimension bottom_margin;
749N/A Dimension row_height; /* height of each row (menu entry) */
749N/A
749N/A Cursor cursor; /* The menu's cursor. */
749N/A SmeObject popup_entry; /* The entry to position the cursor on for
749N/A when using XawPositionSimpleMenu. */
749N/A Boolean menu_on_screen; /* Force the menus to be fully on the screen.*/
749N/A int backing_store; /* What type of backing store to use. */
749N/A
749N/A /* private state */
749N/A
749N/A Boolean recursive_set_values; /* contain a possible infinite loop. */
749N/A
749N/A Boolean menu_width; /* If true then force width to remain
749N/A core.width */
749N/A Boolean menu_height; /* Just like menu_width, but for height. */
749N/A
749N/A SmeObject entry_set; /* The entry that is currently set or
749N/A highlighted. */
749N/A} SimpleMenuPart;
749N/A
749N/Atypedef struct _SimpleMenuRec {
749N/A CorePart core;
749N/A CompositePart composite;
749N/A ShellPart shell;
749N/A OverrideShellPart override;
749N/A SimpleMenuPart simple_menu;
749N/A} SimpleMenuRec;
749N/A
749N/A#endif /* _SimpleMenuP_h */