sync code with last improvements from OpenBSD
This commit is contained in:
commit
88965415ff
26235 changed files with 29195616 additions and 0 deletions
212
app/bitmap/BitmapP.h
Normal file
212
app/bitmap/BitmapP.h
Normal file
|
@ -0,0 +1,212 @@
|
|||
/*
|
||||
|
||||
Copyright 1989, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall
|
||||
not be used in advertising or otherwise to promote the sale, use or
|
||||
other dealings in this Software without prior written authorization
|
||||
from The Open Group.
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
* Author: Davor Matic, MIT X Consortium
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#ifndef _BitmapP_h
|
||||
#define _BitmapP_h
|
||||
|
||||
#define bit int
|
||||
|
||||
#include "Bitmap.h"
|
||||
#include "Requests.h"
|
||||
#include <X11/Xaw/SimpleP.h>
|
||||
|
||||
typedef struct {
|
||||
Atom *targets;
|
||||
Cardinal num_targets;
|
||||
BWRequestRec *requests;
|
||||
Cardinal num_requests;
|
||||
BWRequestRec *request[100];
|
||||
|
||||
} BitmapClassPart;
|
||||
|
||||
/* Full class record declaration */
|
||||
typedef struct _BitmapClassRec {
|
||||
CoreClassPart core_class;
|
||||
SimpleClassPart simple_class;
|
||||
BitmapClassPart bitmap_class;
|
||||
} BitmapClassRec;
|
||||
|
||||
extern BitmapClassRec bitmapClassRec;
|
||||
|
||||
typedef void (*EngageProc)(Widget, BWStatus *, XtPointer, int *);
|
||||
typedef void (*TerminateProc)( Widget, BWStatus *, XtPointer);
|
||||
typedef void (*RemoveProc)(Widget w, BWStatus *, XtPointer);
|
||||
|
||||
/**********/
|
||||
struct _BWRequestRec {
|
||||
char *name;
|
||||
int status_size;
|
||||
EngageProc engage;
|
||||
XtPointer engage_client_data;
|
||||
TerminateProc terminate;
|
||||
XtPointer terminate_client_data;
|
||||
RemoveProc remove;
|
||||
XtPointer remove_client_data;
|
||||
} ;
|
||||
|
||||
typedef struct {
|
||||
Position from_x, from_y,
|
||||
to_x, to_y;
|
||||
} BWArea;
|
||||
|
||||
typedef struct {
|
||||
BWRequestRec *request;
|
||||
XtPointer status;
|
||||
Boolean trap;
|
||||
XtPointer call_data;
|
||||
} BWRequestStack;
|
||||
|
||||
typedef struct {
|
||||
XImage *image, *buffer;
|
||||
XPoint hot;
|
||||
Position at_x, at_y;
|
||||
Boolean fold;
|
||||
Boolean grid;
|
||||
Boolean changed;
|
||||
} BWZoom;
|
||||
|
||||
typedef struct {
|
||||
Boolean own;
|
||||
Boolean limbo;
|
||||
} BWSelection;
|
||||
|
||||
/* New fields for the Bitmap widget record */
|
||||
typedef struct {
|
||||
/* resources */
|
||||
Pixel foreground_pixel;
|
||||
Pixel highlight_pixel;
|
||||
Pixel frame_pixel;
|
||||
Pixmap stipple;
|
||||
Boolean stippled;
|
||||
Boolean proportional;
|
||||
Boolean grid;
|
||||
Dimension grid_tolerance;
|
||||
Pixmap dashes;
|
||||
Boolean dashed;
|
||||
Boolean axes;
|
||||
Boolean resize;
|
||||
Dimension margin, squareW, squareH, width, height;
|
||||
XPoint hot;
|
||||
int button_function[5];
|
||||
_XtString filename;
|
||||
_XtString basename;
|
||||
/* private state */
|
||||
String size;
|
||||
Position horizOffset, vertOffset;
|
||||
XtActionProc notify;
|
||||
BWRequestStack *request_stack;
|
||||
Cardinal cardinal, current;
|
||||
/*Boolean trapping;*/
|
||||
XImage *image, *buffer, *storage;
|
||||
XPoint buffer_hot;
|
||||
BWArea mark, buffer_mark;
|
||||
GC drawing_gc;
|
||||
GC highlighting_gc;
|
||||
GC frame_gc;
|
||||
GC axes_gc;
|
||||
Boolean changed;
|
||||
Boolean fold;
|
||||
Boolean zooming;
|
||||
BWZoom zoom;
|
||||
XtPointer *value;
|
||||
char status[80];
|
||||
BWSelection selection;
|
||||
Boolean stipple_change_expose_event;
|
||||
} BitmapPart;
|
||||
|
||||
/* Full instance record declaration */
|
||||
typedef struct _BitmapRec {
|
||||
CorePart core;
|
||||
SimplePart simple;
|
||||
BitmapPart bitmap;
|
||||
} BitmapRec;
|
||||
|
||||
/* Private functions */
|
||||
|
||||
#define Length(width, height)\
|
||||
(((int)(width) + 7) / 8 * (height))
|
||||
|
||||
#define InBitmapX(BW, x)\
|
||||
(Position)(min((Position)((Dimension)(max(BW->bitmap.horizOffset,x) -\
|
||||
BW->bitmap.horizOffset) /\
|
||||
BW->bitmap.squareW), BW->bitmap.width - 1))
|
||||
|
||||
#define InBitmapY(BW, y)\
|
||||
(Position)(min((Position)((Dimension)(max(BW->bitmap.vertOffset, y) -\
|
||||
BW->bitmap.vertOffset) /\
|
||||
BW->bitmap.squareH), BW->bitmap.height - 1))
|
||||
|
||||
#define InWindowX(BW, x)\
|
||||
(Position) (BW->bitmap.horizOffset + ((x) * BW->bitmap.squareW))
|
||||
|
||||
#define InWindowY(BW, y)\
|
||||
(Position) (BW->bitmap.vertOffset + ((y) * BW->bitmap.squareH))
|
||||
|
||||
#define GetPixmap(BW, image)\
|
||||
XCreateBitmapFromData(XtDisplay(BW), XtWindow(BW),\
|
||||
image->data, image->width, image->height)
|
||||
|
||||
|
||||
#define QuerySet(x, y) (((x) != NotSet) && ((y) != NotSet))
|
||||
|
||||
#define bit int
|
||||
|
||||
#define QueryZero(x, y) (((x) == 0) || ((y) == 0))
|
||||
|
||||
#define Swap(x, y) {Position t; t = x; x = y; y = t;}
|
||||
|
||||
#define QuerySwap(x, y) if(x > y) Swap(x, y)
|
||||
|
||||
#define QueryInBitmap(BW, x, y)\
|
||||
(((x) >= 0) && ((x) < BW->bitmap.image->width) &&\
|
||||
((y) >= 0) && ((y) < BW->bitmap.image->height))
|
||||
|
||||
#define Value(BW, button) (BW->bitmap.button_function[button - 1])
|
||||
|
||||
#define CreateCleanData(length) XtCalloc(length, sizeof(char))
|
||||
XImage *CreateBitmapImage(BitmapWidget BW, char *data, Dimension width, Dimension height);
|
||||
void DestroyBitmapImage(XImage **image);
|
||||
void TransferImageData(XImage *source, XImage *destination);
|
||||
void CopyImageData(XImage *source, XImage *destination,
|
||||
Position from_x, Position from_y,
|
||||
Position to_x, Position to_y,
|
||||
Position at_x, Position at_y);
|
||||
XImage *GetImage(BitmapWidget BW, Pixmap pixmap);
|
||||
XImage *ConvertToBitmapImage(BitmapWidget BW, XImage *image);
|
||||
XImage *ScaleBitmapImage(BitmapWidget BW, XImage *src,
|
||||
double scale_x, double scale_y);
|
||||
|
||||
extern Boolean DEBUG;
|
||||
|
||||
#endif /* _BitmapP_h */
|
Loading…
Add table
Add a link
Reference in a new issue