157 lines
5.8 KiB
C
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__ */
|