mui.h
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:6k
- #ifndef __mui_h__
- #define __mui_h__
- /*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
- * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
- * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
- * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
- #ifdef __cplusplus
- extern "C" {
- #endif
- enum muiObjType { MUI_BUTTON, MUI_LABEL, MUI_BOLDLABEL, MUI_TEXTBOX,
- MUI_VSLIDER, MUI_TEXTLIST, MUI_RADIOBUTTON,
- MUI_TINYRADIOBUTTON, MUI_PULLDOWN, MUI_HSLIDER };
- /* MUI Return Values: */
- enum muiReturnValue { MUI_NO_ACTION,
- MUI_SLIDER_MOVE,
- MUI_SLIDER_RETURN,
- MUI_SLIDER_SCROLLDOWN,
- MUI_SLIDER_SCROLLUP,
- MUI_SLIDER_THUMB,
- MUI_BUTTON_PRESS,
- MUI_TEXTBOX_RETURN,
- MUI_TEXTLIST_RETURN,
- MUI_TEXTLIST_RETURN_CONFIRM
- };
- typedef struct muiobj {
- enum muiObjType type;
- int xmin, xmax, ymin, ymax; /* bounding box */
- short active; /* 1 = toggled on, or pressed radio button, or can
- be typed in (textbox), etc */
- short enable; /* 1 = can be accessed; drawn with solid text */
- short select; /* 1 = pressed (must be located at the time */
- short locate; /* 1 = located; usually the cursor is over it */
- short visible; /* 1 = drawn. not visible => not enabled */
- enum muiReturnValue (*handler)(struct muiobj *obj, int event, int value, int x, int y);
- int id; /* available for users */
- int uilist;
- void * object;
- void (*callback)(struct muiobj *, enum muiReturnValue);
- } muiObject;
- /* General MUI Routines */
- void muiInit(void);
- void muiAttachUIList(int uilist);
- void muiNewUIList(int listid);
- void muiAddToUIList(int uilist, muiObject *obj);
- void muiSetCallback(muiObject *obj, void (*callback)(muiObject *, enum muiReturnValue));
- void muiGetObjectSize(muiObject *obj, int *xmin, int *ymin, int *xmax, int *ymax);
- void muiSetID(muiObject *obj, int id);
- int muiGetID(muiObject *obj);
- /* for a click that doesn't hit anything: */
- void muiSetNonMUIcallback(void (*nc)(int, int));
- int muiGetVisible(muiObject *obj);
- void muiSetVisible(muiObject *obj, int state);
- int muiGetActive(muiObject *obj);
- void muiSetActive(muiObject *obj, int state);
- int muiGetEnable(muiObject *obj);
- void muiSetEnable(muiObject *obj, int state);
- void muiSetActiveUIList(int i);
- int muiGetActiveUIList(void);
- /* Button Routines */
- muiObject *muiNewButton(int xmin, int xmax, int ymin, int ymax);
- void muiLoadButton(muiObject *but, char *str);
- muiObject *muiNewRadioButton(int xmin, int ymin);
- muiObject *muiNewTinyRadioButton(int xmin, int ymin);
- void muiLinkButtons(muiObject *obj1, muiObject *obj2);
- void muiClearRadio(muiObject *rad);
- /* Label Routines */
- muiObject *muiNewLabel(int xmin, int ymin, char *label);
- muiObject *muiNewBoldLabel(int xmin, int ymin, char *label);
- void muiChangeLabel(muiObject *obj, char *s);
- /* Text Box Routines */
- muiObject *muiNewTextbox(int xmin, int xmax, int ymin);
- char *muiGetTBString(muiObject *obj);
- void muiClearTBString(muiObject *obj);
- void muiSetTBString(muiObject *obj, char *s);
- /* Vertical Slider Routines */
- muiObject *muiNewVSlider(int xmin, int ymin, int ymax, int scenter, int shalf);
- float muiGetVSVal(muiObject *obj);
- void muiSetVSValue(muiObject *obj, float val);
- void muiSetVSArrowDelta(muiObject *obj, int newd);
- /* Horizontal Slider Routines */
- muiObject *muiNewHSlider(int xmin, int ymin, int xmax, int scenter, int shalf);
- float muiGetHSVal(muiObject *obj);
- void muiSetHSValue(muiObject *obj, float val);
- void muiSetHSArrowDelta(muiObject *obj, int newd);
- /* Text List Routines */
- muiObject *muiNewTextList(int xmin, int ymin, int xmax, int listheight);
- void muiSetTLTop(muiObject *obj, float p);
- int muiGetTLSelectedItem(muiObject *obj);
- void muiSetTLStrings(muiObject *obj, char **s);
- void muiSetTLTopInt(muiObject *obj, int top);
- /* Pulldown Menu Routines */
- muiObject *muiNewPulldown(void);
- void muiAddPulldownEntry(muiObject *obj, char *title, int menu, int ishelp);
- #ifdef __cplusplus
- }
- #endif
- #endif /* __mui_h__ */