DYT/Tool/3rdParty_x64/include/mui/mui.h
2024-11-22 23:19:31 +08:00

157 lines
5.8 KiB
C

#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__ */