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 String BWGetFilename ( Widget w, String *str ); 231 extern String BWGetBasename ( Widget w, String *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 String BWGetFilepath ( Widget w, String *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