gizmo.h
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:8k
- /*
- * 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.
- */
- /* jot text editor source code. */
- /* Tom Davis */
- /* February 7, 1992 */
- /* defines for gizmos */
- #include <mui/mui.h>
- #define BUTSTRLEN 60
- #define LABELSTRLEN 150
- #define FONTWIDTH 9 /* for fixed font */
- #define BASELINE 9
- /* BUTTON STUFF */
- #define PUSHBUTTON 3
- #define RADIOBUTTON 6
- #define INDICATOR 9
- #define BED 10
- #define BUTTON 11
- #define BUTHEIGHT 28
- #define BUTWIDTH 75
- #define RADIOWIDTH 24
- #define RADIOHEIGHT 24
- #define TINYRADIOHEIGHT 16
- #define TINYRADIOWIDTH 16
- typedef struct butn {
- char str[BUTSTRLEN+1];
- int type;
- void (*butcolor)();
- struct butn *link; /* for linking radio buttons, e.g. */
- muiObject *object;
- } Button;
- /* TEXT BOX STUFF */
- #define TBSTRLEN 200
- #define TEXTHEIGHT 17
- #define TEXTBOXHEIGHT 28
- typedef struct {
- char str[TBSTRLEN+1];
- char label[LABELSTRLEN+1];
- int tp1, tp2;
- int charWidth;
- int type;
- } TextBox;
- TextBox *newtb(int xmin, int xmax);
- /* LABEL STUFF */
- #define LBLSTRLEN 200 /* max length of a label string */
- typedef struct {
- char str[LBLSTRLEN+1];
- } Label;
- Label *newlabel(char *s);
- /* SLIDER STUFF */
- #define SLIDERWIDTH 20
- #define MINSHALF 13
- #define ARROWHEIGHT 20
- #define SCROLLDOWN -1
- #define SCROLLUP 1
- #define THUMB 2
- typedef struct {
- int scenter; /* the center of the thumb */
- int shalf; /* half of the thumb length */
- int oldpos; /* old scenter */
- int arrowdelta; /* arrow delta */
- int thumb; /* whether the thumb should show */
- } Slider;
- typedef Slider VSlider;
- typedef Slider HSlider;
- /* TEXTLIST STUFF */
- typedef struct {
- int listheight; /* in lines of text */
- char **strs; /* text */
- int top; /* index into strs */
- int count; /* total number of strings */
- int selecteditem; /* index into selecteditem or -1 */
- int locateditem; /* index into locateditem or -1 */
- } TextList;
- /* PULLDOWN STUFF */
- #define PULLDOWN_HEIGHT 25
- typedef struct {
- char title[40];
- int menu;
- int xoffset;
- } menuentry;
- typedef struct {
- int count;
- int ishelp;
- menuentry menus[30];
- menuentry helpmenu;
- } Pulldown;
- /* Define for the settbtype() and gettypein() flag */
- #define TYPEIN_STRING 0
- #define TYPEIN_INT 1
- #define TYPEIN_FILE 2
- #define TYPEIN_FLOAT 3
- /* Color Stuff */
- extern Button *newbed(void);
- extern Button *newbut(void);
- extern Button *newradiobut(void);
- extern Pulldown *newpd(void);
- extern void drawbut(muiObject *);
- extern void drawvs(muiObject *obj);
- extern void drawhs(muiObject *obj);
- extern void drawtl(muiObject *obj);
- extern void drawradiobutton(muiObject *obj);
- extern void drawtinyradio(muiObject *obj);
- extern void drawpulldown(muiObject *obj);
- extern int getcurrentcolor(void);
- extern void setcurrentcolor(int c);
- extern void drawedges(int, int, int, int, void (*)(void), void (*)(void));
- extern void loadbut(Button *, char *);
- extern void drawbut(muiObject *);
- extern int pressbut(muiObject *);
- extern void drawlabel(muiObject *);
- extern void drawboldlabel(muiObject *);
- extern void loadtb(TextBox *, char *);
- extern int handletb(muiObject *, int, int);
- extern void drawtb(muiObject *);
- extern int inbut(Button *, int, int);
- extern int intb(muiObject *, int, int);
- extern void activatetb(TextBox *);
- extern void deactivatetb(TextBox *);
- extern char *gettbstr(TextBox *);
- extern VSlider *newvs(muiObject *obj, int ymin, int ymax, int scenter, int shalf);
- extern VSlider *newhs(muiObject *obj, int xmin, int xmax, int scenter, int shalf);
- extern void drawsetup(void);
- extern void drawrestore(void);
- extern void backgrounddraw(int xmin, int ymin, int xmax, int ymax);
- extern TextList *newtl(muiObject *obj, int listheight);
- extern enum muiReturnValue buttonhandler(muiObject *obj, int event, int value, int x, int y);
- extern enum muiReturnValue nullhandler(muiObject *obj, int event, int value, int x, int y);
- extern enum muiReturnValue textboxhandler(muiObject *obj, int event, int value, int x, int y);
- extern enum muiReturnValue vshandler(muiObject *obj, int event, int value, int x, int y);
- extern enum muiReturnValue hshandler(muiObject *obj, int event, int value, int x, int y);
- extern enum muiReturnValue tlhandler(muiObject *obj, int event, int value, int x, int y);
- extern enum muiReturnValue pdhandler(muiObject *obj, int event, int value, int x, int y);
- /* mui events */
- #define MUI_DEVICE_DOWN 1
- #define MUI_DEVICE_UP 2
- #define MUI_DEVICE_PRESS 3
- #define MUI_DEVICE_RELEASE 4
- #define MUI_DEVICE_CLICK 5
- #define MUI_DEVICE_DOUBLE_CLICK 6
- #define MUI_KEYSTROKE 7
- #define MUI_BUTTONFONT 0
- #define MUI_BUTTONFONT_BOLD 0
- typedef struct muicons {
- struct muicons *next;
- muiObject *object;
- } muiCons;
- void muiBackgroundClear(void);
- void muiFreeObject(muiObject *obj);
- int muiInObject(muiObject *obj, int x, int y);
- int muiGetLocate(muiObject *obj);
- void muiSetLocate(muiObject *obj, int state);
- int muiGetSelect(muiObject *obj);
- void muiSetSelect(muiObject *obj, int state);
- muiCons *muiGetListCons(int uilist);
- muiObject *muiGetActiveTB(void);
- void muiSetUIList(muiObject *obj, int list);
- int muiGetUIList(muiObject *obj);
- void muiDrawObject(muiObject *obj);
- void muiError(char *s);
- muiObject *muiHitInList(int uilist, int x, int y);
- void muiDrawUIList(int uilist);
- void muiHandleEvent(int event, int value, int x, int y);