Home | History | Annotate | Line # | Download | only in dist
      1 /*
      2 
      3 Copyright 1989, 1998  The Open Group
      4 
      5 Permission to use, copy, modify, distribute, and sell this software and its
      6 documentation for any purpose is hereby granted without fee, provided that
      7 the above copyright notice appear in all copies and that both that
      8 copyright notice and this permission notice appear in supporting
      9 documentation.
     10 
     11 The above copyright notice and this permission notice shall be included
     12 in all copies or substantial portions of the Software.
     13 
     14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
     15 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     16 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
     17 IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
     18 OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     19 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     20 OTHER DEALINGS IN THE SOFTWARE.
     21 
     22 Except as contained in this notice, the name of The Open Group shall
     23 not be used in advertising or otherwise to promote the sale, use or
     24 other dealings in this Software without prior written authorization
     25 from The Open Group.
     26 
     27 */
     28 
     29 /*
     30  * Author:  Davor Matic, MIT X Consortium
     31  */
     32 
     33 
     34 #ifndef _Bitmap_h
     35 #define _Bitmap_h
     36 
     37 /****************************************************************
     38  *
     39  * Bitmap widget
     40  *
     41  ****************************************************************/
     42 
     43 #include <X11/Xaw/Simple.h>
     44 
     45 /* Resources:
     46 
     47  Name		     Class		RepType		Default Value
     48  ----		     -----		-------		-------------
     49  background	     Background		Pixel		XtDefaultBackground
     50  foreground          Foredround         Pixel           XtDefaultForeground
     51  highlight           Highlight          Pixel           XtDefaultForeground
     52  frame               Frame              Pixel           XtDefaultForeground
     53  border		     BorderColor	Pixel		XtDefaultForeground
     54  borderWidth	     BorderWidth	Dimension	1
     55  mappedWhenManaged   MappedWhenManaged	Boolean		True
     56  resize              Resize             Boolean         True
     57  sensitive	     Sensitive		Boolean		True
     58  width		     Width		Dimension	0
     59  height		     Height		Dimension	0
     60  size                Size               String          32x32
     61  squareWidht         SquareWidht        Dimension       16
     62  squareHeight        SquareHeight       Dimension       16
     63  x		     Position		Position	320
     64  y		     Position		Position	320
     65  xHot                XHot               Position        NotSet
     66  yHot                YHot               Position        NotSet
     67  margin              Margin             Dimension       16
     68  grid                Grid               Boolean         True
     69  gridTolerance       GridTolerance      Dimension       8
     70  dashed              Dashed             Boolean         True
     71  dashes              Dashes             Bitmap          XtUnspecifiedPixmap
     72  stippled            Stippled           Boolean         True
     73  stipple             Stipple            Bitmap          XtUnspecifiedPixmap
     74  proportional        Proportional       Boolean         True
     75  axes                Axes               Boolean         True
     76  button1Function     Button1Function    ButtonFunction  Set
     77  button2Function     Button2Function    ButtonFunction  Invert
     78  button3Function     Button3Function    ButtonFunction  Clear
     79  button4Function     Button4Function    ButtonFunction  Invert
     80  button5Function     Button5Function    ButtonFunction  Invert
     81  filename            Filename           String          None
     82  basename            Basename           String          None
     83 */
     84 
     85 /* define any special resource names here that are not in <X11/StringDefs.h> */
     86 
     87 #define XtNbitmapResource "bitmapResource"
     88 #define XtNstipple "stipple"
     89 #define XtNstippled "stippled"
     90 #define XtNdashes "dashes"
     91 #define XtNdashed "dashed"
     92 #define XtNgrid "grid"
     93 #define XtNgridTolerance "gridTolerance"
     94 #define XtNaxes "axes"
     95 #define XtNbitmapSize "bitmapSize"
     96 #define XtNsize "size"
     97 #define XtNsquareWidth "squareWidth"
     98 #define XtNsquareHeight "squareHeight"
     99 #define XtNxHot "xHot"
    100 #define XtNyHot "yHot"
    101 #define XtNbutton1Function "button1Function"
    102 #define XtNbutton2Function "button2Function"
    103 #define XtNbutton3Function "button3Function"
    104 #define XtNbutton4Function "button4Function"
    105 #define XtNbutton5Function "button5Function"
    106 #define XtNfilename "filename"
    107 #define XtNbasename "basename"
    108 #define XtNmouseForeground "mouseForeground"
    109 #define XtNmouseBackground "mouseBackground"
    110 #define XtNframe "frame"
    111 #define XtNmargin "margin"
    112 #define XtNproportional "proportional"
    113 
    114 #define XtCBitmapResource "BitmapResource"
    115 #define XtCHighlight "Highlight"
    116 #define XtCStipple "Stipple"
    117 #define XtCStippled "Stippled"
    118 #define XtCDashes "Dashes"
    119 #define XtCDashed "Dashed"
    120 #define XtCGrid "Grid"
    121 #define XtCGridTolerance "GridTolerance"
    122 #define XtCAxes "Axes"
    123 #define XtBitmapSize "BitmapSize"
    124 #define XtCSize "Size"
    125 #define XtCSquareWidth "SquareWidth"
    126 #define XtCSquareHeight "SquareHeight"
    127 #define XtCXHot "XHot"
    128 #define XtCYHot "YHot"
    129 #define XtCButton1Function "Button1Function"
    130 #define XtCButton2Function "Button2Function"
    131 #define XtCButton3Function "Button3Function"
    132 #define XtCButton4Function "Button4Function"
    133 #define XtCButton5Function "Button5Function"
    134 #define XtCFilename "Filename"
    135 #define XtCBasename "Basename"
    136 #define XtCFrame "Frame"
    137 #ifndef XtCMargin
    138 #define XtCMargin "Margin"
    139 #endif
    140 #define XtCProportional "Proportional"
    141 
    142 #define XtRButtonFunction "ButtonFunction"
    143 
    144 /* bitmap defines */
    145 
    146 #define NotSet   -1
    147 #define Clear     0
    148 #define Set       1
    149 #define Invert    2
    150 #define Highlight 3
    151 #define On        True
    152 #define Off       False
    153 
    154 #define XtClear "clear"
    155 #define XtSet "set"
    156 #define XtInvert "invert"
    157 
    158 #define MarkRequest "MarkRequest"
    159 #define StoreRequest "StoreRequest"
    160 #define RestoreRequest "RestoreRequest"
    161 #define CopyRequest "CopyRequest"
    162 #define MoveRequest "MoveRequest"
    163 #define PointRequest "PointRequest"
    164 #define LineRequest "LineRequest"
    165 #define CurveRequest "CurveRequest"
    166 #define RectangleRequest "RectangleRequest"
    167 #define FilledRectangleRequest "FilledRectangleRequest"
    168 #define CircleRequest "CircleRequest"
    169 #define FilledCircleRequest "FilledCircleRequest"
    170 #define FloodFillRequest "FloodFillRequest"
    171 #define HotSpotRequest "HotSpotRequest"
    172 #define ZoomInRequest "ZoomInRequest"
    173 #define PasteRequest "PasteRequest"
    174 #define ImmediateCopyRequest "ImmediateCopyRequest"
    175 #define ImmediateMoveRequest "ImmediateMoveRequest"
    176 
    177 /* bitmap exports */
    178 
    179 typedef struct _BWRequestRec BWRequestRec;
    180 typedef const char *BWRequest;
    181 
    182 /* declare specific BitmapWidget class and instance datatypes */
    183 
    184 typedef struct _BitmapClassRec *BitmapWidgetClass;
    185 typedef struct _BitmapRec      *BitmapWidget;
    186 /* declare the class constant */
    187 
    188 extern WidgetClass bitmapWidgetClass;
    189 
    190 extern Boolean BWEngageRequest(Widget w, BWRequest name, Boolean trap,
    191 			       XtPointer call_data, Cardinal call_data_size);
    192 extern Boolean BWTerminateRequest(Widget w, Boolean cont);
    193 
    194 extern void BWUp ( Widget w );
    195 extern void BWDown ( Widget w );
    196 extern void BWLeft ( Widget w );
    197 extern void BWRight ( Widget w );
    198 extern void BWRotateRight ( Widget w );
    199 extern void BWRotateLeft ( Widget w );
    200 extern void BWSwitchGrid ( Widget w );
    201 extern void BWGrid ( Widget w, Boolean _switch );
    202 extern void BWSwitchDashed ( Widget w );
    203 extern void BWDashed ( Widget w, Boolean _switch );
    204 extern void BWSwitchAxes ( Widget w );
    205 extern void BWAxes ( Widget w, Boolean _switch );
    206 extern void BWRedrawAxes( Widget w );
    207 extern void BWDrawLine ( Widget w, Position from_x, Position from_y, Position to_x, Position to_y, int value );
    208 extern void BWDrawRectangle ( Widget w, Position from_x, Position from_y, Position to_x, Position to_y, int value );
    209 extern void BWDrawFilledRectangle ( Widget w, Position from_x, Position from_y, Position to_x, Position to_y, int value );
    210 extern void BWDrawCircle ( Widget w, Position origin_x, Position origin_y, Position point_x, Position point_y, int value );
    211 extern void BWDrawFilledCircle ( Widget w, Position origin_x, Position origin_y, Position point_x, Position point_y, int value );
    212 extern void BWFloodFill ( Widget w, Position x, Position y, int value );
    213 extern void BWMark ( Widget w, Position from_x, Position from_y, Position to_x, Position to_y );
    214 extern void BWMarkAll ( Widget w );
    215 extern void BWUnmark ( Widget w );
    216 extern void BWSelect ( Widget w, Position from_x, Position from_y, Position to_x, Position to_y, Time btime );
    217 extern void BWStore ( Widget w );
    218 extern void BWStoreToBuffer ( Widget w );
    219 extern void BWUndo ( Widget w );
    220 extern void BWResize ( Widget w, Dimension width, Dimension height );
    221 extern void BWClip ( Widget w, Position x, Position y, Dimension width, Dimension height );
    222 extern void BWUnclip ( Widget w );
    223 extern void BWGrabSelection ( Widget w, Time btime );
    224 extern void BWRequestSelection ( Widget w, Time btime, Boolean wait );
    225 extern void BWSetChanged ( Widget w );
    226 extern Boolean BWQueryChanged ( Widget w );
    227 extern int BWReadFile ( Widget w, _Xconst _XtString filename, _Xconst _XtString basename );
    228 extern int BWWriteFile ( Widget w, _Xconst _XtString filename, _Xconst _XtString basename );
    229 extern String BWUnparseStatus ( Widget w );
    230 extern _XtString BWGetFilename ( Widget w, _XtString *str );
    231 extern _XtString BWGetBasename ( Widget w, _XtString *str );
    232 extern void BWChangeBasename ( Widget w, _Xconst _XtString str );
    233 extern void BWRemoveAllRequests ( Widget w );
    234 extern void BWClearHotSpot ( Widget w );
    235 extern Boolean BWQueryMarked ( Widget w );
    236 extern void BWFold ( Widget w );
    237 extern void BWClear ( Widget w );
    238 extern void BWSet ( Widget w );
    239 extern void BWInvert ( Widget w );
    240 extern void BWFlipHoriz ( Widget w );
    241 extern void BWFlipVert ( Widget w );
    242 extern void BWClearMarked ( Widget w );
    243 extern Boolean BWAddRequest ( Widget w, BWRequest name, Boolean trap, XtPointer call_data, Cardinal call_data_size );
    244 extern void BWChangeNotify ( Widget w );
    245 extern Pixmap BWGetUnzoomedPixmap ( Widget w );
    246 extern void BWClearChanged ( Widget w );
    247 extern Boolean BWQueryStored ( Widget w );
    248 extern Boolean BWQueryStippled ( Widget w );
    249 extern void BWSwitchStippled ( Widget w );
    250 extern void BWRedrawMark ( Widget w );
    251 extern Boolean BWQueryAxes ( Widget w );
    252 extern void BWHighlightAxes ( Widget w );
    253 extern _XtString BWGetFilepath ( Widget w, _XtString *str );
    254 extern void BWZoomOut ( Widget w );
    255 extern void BWZoomMarked ( Widget w );
    256 extern void BWRescale ( Widget w, Dimension width, Dimension height );
    257 extern Boolean BWQueryZooming ( Widget w );
    258 extern void BWRedrawGrid ( Widget w, Position x, Position y, Dimension width, Dimension height );
    259 extern void BWRedrawSquares ( Widget w, Position x, Position y, Dimension width, Dimension height );
    260 extern void BWRedrawHotSpot ( Widget w );
    261 extern void BWSetHotSpot(Widget w, Position x, Position y);
    262 extern Boolean BWQueryGrid ( Widget w );
    263 extern Boolean BWQueryDashed ( Widget w );
    264 extern Boolean BWQueryProportional ( Widget w );
    265 extern void BWSwitchProportional ( Widget w );
    266 extern void BWDrawGrid ( Widget w, Position from_x, Position from_y, Position to_x, Position to_y );
    267 extern void BWChangeFilename ( Widget w, _Xconst _XtString str );
    268 extern Boolean BWParseSize ( String size, Dimension *width, Dimension *height );
    269 extern Boolean BWQuerySelection ( Widget w, Time btime );
    270 extern int BWStoreFile ( Widget w, _Xconst _XtString filename, _Xconst _XtString *basename );
    271 extern void BWNotify ( Widget w, XtActionProc proc );
    272 extern void BWTMark ( Widget w, XEvent *event, String *params, Cardinal *num_params  );
    273 extern void BWTMarkAll ( Widget w, XEvent *event, String *params, Cardinal *num_params );
    274 extern void BWTUnmark ( Widget w, XEvent *event, String *params, Cardinal *num_params );
    275 extern void BWTPaste ( Widget w, XEvent *event, String *params, Cardinal *num_params );
    276 extern void BWDebug ( Widget w, XEvent *event, String *params, Cardinal *num_params );
    277 extern void BWAbort ( Widget w );
    278 extern Boolean BWRemoveRequest ( Widget w );
    279 extern void BWRedraw ( Widget w );
    280 extern Pixmap BWGetPixmap( Widget w );
    281 
    282 #endif /* _Bitmap_h */
    283 
    284 
    285