gizmo.h
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:8k
源码类别:

GIS编程

开发平台:

Visual C++

  1. /*
  2.  * Copyright (c) 1993-1997, Silicon Graphics, Inc.
  3.  * ALL RIGHTS RESERVED 
  4.  * Permission to use, copy, modify, and distribute this software for 
  5.  * any purpose and without fee is hereby granted, provided that the above
  6.  * copyright notice appear in all copies and that both the copyright notice
  7.  * and this permission notice appear in supporting documentation, and that 
  8.  * the name of Silicon Graphics, Inc. not be used in advertising
  9.  * or publicity pertaining to distribution of the software without specific,
  10.  * written prior permission. 
  11.  *
  12.  * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
  13.  * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
  14.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
  15.  * FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT SHALL SILICON
  16.  * GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
  17.  * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
  18.  * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
  19.  * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
  20.  * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC.  HAS BEEN
  21.  * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
  22.  * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
  23.  * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
  24.  * 
  25.  * US Government Users Restricted Rights 
  26.  * Use, duplication, or disclosure by the Government is subject to
  27.  * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
  28.  * (c)(1)(ii) of the Rights in Technical Data and Computer Software
  29.  * clause at DFARS 252.227-7013 and/or in similar or successor
  30.  * clauses in the FAR or the DOD or NASA FAR Supplement.
  31.  * Unpublished-- rights reserved under the copyright laws of the
  32.  * United States.  Contractor/manufacturer is Silicon Graphics,
  33.  * Inc., 2011 N.  Shoreline Blvd., Mountain View, CA 94039-7311.
  34.  *
  35.  * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
  36.  */
  37.  /* jot text editor source code. */
  38.  /*     Tom Davis  */
  39.  /*  February 7, 1992  */
  40. /* defines for gizmos */
  41. #include <mui/mui.h>
  42. #define BUTSTRLEN 60
  43. #define LABELSTRLEN 150
  44. #define FONTWIDTH 9 /* for fixed font */
  45. #define BASELINE 9
  46. /* BUTTON STUFF */
  47. #define PUSHBUTTON 3
  48. #define RADIOBUTTON 6
  49. #define INDICATOR 9
  50. #define BED 10
  51. #define BUTTON 11
  52. #define BUTHEIGHT 28
  53. #define BUTWIDTH 75
  54. #define RADIOWIDTH 24
  55. #define RADIOHEIGHT 24
  56. #define TINYRADIOHEIGHT 16
  57. #define TINYRADIOWIDTH  16
  58. typedef struct butn {
  59.     char str[BUTSTRLEN+1];
  60.     int type;
  61.     void (*butcolor)();
  62.     struct butn *link;     /* for linking radio buttons, e.g. */
  63.     muiObject *object;
  64. } Button;
  65. /* TEXT BOX STUFF */
  66. #define TBSTRLEN  200 
  67. #define TEXTHEIGHT 17
  68. #define TEXTBOXHEIGHT   28
  69. typedef struct {
  70.     char str[TBSTRLEN+1];
  71.     char label[LABELSTRLEN+1];
  72.     int tp1, tp2;
  73.     int charWidth;
  74.     int type;
  75. } TextBox;
  76. TextBox *newtb(int xmin, int xmax);
  77. /* LABEL STUFF */
  78. #define LBLSTRLEN   200     /* max length of a label string */
  79. typedef struct {
  80.     char str[LBLSTRLEN+1];
  81. } Label;
  82. Label *newlabel(char *s);
  83. /* SLIDER STUFF */
  84. #define SLIDERWIDTH 20
  85. #define MINSHALF 13
  86. #define ARROWHEIGHT 20
  87. #define SCROLLDOWN -1
  88. #define SCROLLUP 1
  89. #define THUMB 2
  90. typedef struct {
  91.     int        scenter;                /* the center of the thumb */
  92.     int        shalf;                  /* half of the thumb length */
  93.     int        oldpos;                 /* old scenter  */
  94.     int        arrowdelta;             /* arrow delta  */
  95.     int        thumb;                  /* whether the thumb should show */
  96. } Slider;
  97. typedef Slider VSlider;
  98. typedef Slider HSlider;
  99. /* TEXTLIST STUFF */
  100. typedef struct {
  101.     int listheight;      /* in lines of text */
  102.     char        **strs; /* text */
  103.     int top;     /* index into strs */
  104.     int count;   /* total number of strings */
  105.     int selecteditem; /* index into selecteditem or -1 */
  106.     int locateditem; /* index into locateditem or -1 */
  107. } TextList;
  108. /* PULLDOWN STUFF */
  109. #define PULLDOWN_HEIGHT 25
  110. typedef struct {
  111.     char    title[40];
  112.     int     menu;
  113.     int     xoffset;
  114. } menuentry;
  115. typedef struct {
  116.     int count;
  117.     int ishelp;
  118.     menuentry menus[30];
  119.     menuentry helpmenu;
  120. } Pulldown;
  121. /* Define for the settbtype() and gettypein() flag */
  122. #define TYPEIN_STRING 0
  123. #define TYPEIN_INT 1
  124. #define TYPEIN_FILE 2
  125. #define TYPEIN_FLOAT 3
  126. /* Color Stuff */
  127. extern Button *newbed(void);
  128. extern Button *newbut(void);
  129. extern Button *newradiobut(void);
  130. extern Pulldown *newpd(void);
  131. extern void drawbut(muiObject *);
  132. extern void drawvs(muiObject *obj);
  133. extern void drawhs(muiObject *obj);
  134. extern void drawtl(muiObject *obj);
  135. extern void drawradiobutton(muiObject *obj);
  136. extern void drawtinyradio(muiObject *obj);
  137. extern void drawpulldown(muiObject *obj);
  138. extern int getcurrentcolor(void);
  139. extern void setcurrentcolor(int c);
  140. extern void drawedges(int, int, int, int, void (*)(void), void (*)(void));
  141. extern void loadbut(Button *,  char *);
  142. extern void drawbut(muiObject *);
  143. extern int pressbut(muiObject *);
  144. extern void drawlabel(muiObject *);
  145. extern void drawboldlabel(muiObject *);
  146. extern void loadtb(TextBox *, char *);
  147. extern int handletb(muiObject *, int, int);
  148. extern void drawtb(muiObject *);
  149. extern int inbut(Button *, int, int);
  150. extern int intb(muiObject *, int, int);
  151. extern void activatetb(TextBox *);
  152. extern void deactivatetb(TextBox *);
  153. extern char *gettbstr(TextBox *);
  154. extern VSlider *newvs(muiObject *obj, int ymin, int ymax, int scenter, int shalf);
  155. extern VSlider *newhs(muiObject *obj, int xmin, int xmax, int scenter, int shalf);
  156. extern void drawsetup(void);
  157. extern void drawrestore(void);
  158. extern void backgrounddraw(int xmin, int ymin, int xmax, int ymax);
  159. extern TextList *newtl(muiObject *obj, int listheight);
  160. extern enum muiReturnValue  buttonhandler(muiObject *obj, int  event, int  value, int  x, int  y);
  161. extern enum muiReturnValue  nullhandler(muiObject *obj, int  event, int  value, int  x, int  y);
  162. extern enum muiReturnValue  textboxhandler(muiObject *obj, int  event, int  value, int  x, int  y);
  163. extern enum muiReturnValue  vshandler(muiObject *obj, int event, int value, int x, int y);
  164. extern enum muiReturnValue  hshandler(muiObject *obj, int event, int value, int x, int y);
  165. extern enum muiReturnValue  tlhandler(muiObject *obj, int event, int value, int x, int y);
  166. extern enum muiReturnValue  pdhandler(muiObject *obj, int event, int value, int x, int y);
  167. /* mui events */
  168. #define MUI_DEVICE_DOWN     1
  169. #define MUI_DEVICE_UP     2
  170. #define MUI_DEVICE_PRESS     3
  171. #define MUI_DEVICE_RELEASE     4
  172. #define MUI_DEVICE_CLICK     5
  173. #define MUI_DEVICE_DOUBLE_CLICK     6
  174. #define MUI_KEYSTROKE     7
  175. #define MUI_BUTTONFONT     0
  176. #define MUI_BUTTONFONT_BOLD     0
  177. typedef struct muicons {
  178.     struct muicons  *next;
  179.     muiObject     *object;
  180. } muiCons;
  181. void     muiBackgroundClear(void);
  182. void     muiFreeObject(muiObject *obj);
  183. int     muiInObject(muiObject *obj, int x, int y);
  184. int     muiGetLocate(muiObject *obj);
  185. void     muiSetLocate(muiObject *obj, int state);
  186. int     muiGetSelect(muiObject *obj);
  187. void     muiSetSelect(muiObject *obj, int state);
  188. muiCons     *muiGetListCons(int uilist);
  189. muiObject   *muiGetActiveTB(void);
  190. void     muiSetUIList(muiObject *obj, int list);
  191. int     muiGetUIList(muiObject *obj);
  192. void     muiDrawObject(muiObject *obj);
  193. void     muiError(char *s);
  194. muiObject   *muiHitInList(int  uilist, int  x, int  y);
  195. void     muiDrawUIList(int  uilist);
  196. void     muiHandleEvent(int  event, int  value, int  x, int  y);