file: cursor.c
/*
* cursor.c - This file contains all functions relating to manipulating
* the cursor.
*/
#include <X11/cursorfont.h>
#include "crosshair_cursor.h"
#include "crosshair_mask.h"
#include "XmdvTool.h"
Cursor crosshair_cursor;
Cursor arrow_cursor;
Cursor right_arrow_cursor;
Cursor circle_cursor;
/*
* CrosshairCursor() - Changes the cursor to a crosshair.
*/
void CrosshairCursor(Widget w)
{
XDefineCursor(XtDisplay(w), XtWindow(w), crosshair_cursor);
}
/*
* ArrowCursor() - Restores the cursor to the standard arrow pointer.
*/
void ArrowCursor(Widget w)
{
XDefineCursor(XtDisplay(w), XtWindow(w), arrow_cursor);
}
/*
* RightArrowCursor() - Changes the cursor to a right arrow
*/
void RightArrowCursor(Widget w)
{
XDefineCursor(XtDisplay(w), XtWindow(w), right_arrow_cursor);
}
/*
* CircleCursor() - Changes the cursor to a circular target
*/
void CircleCursor(Widget w)
{
XDefineCursor(XtDisplay(w), XtWindow(w), circle_cursor);
}
/*
* InitCursors() - Initializes and creates the cursor data structures
*/
void InitCursors(Widget w)
{
Pixmap cursor_p;
Pixmap mask_p;
XColor fore_g,back_g;
cursor_p = XCreateBitmapFromData(XtDisplay(w), XtWindow(w),
crosshair_cursor_bits,
crosshair_cursor_width,
crosshair_cursor_height);
mask_p = XCreateBitmapFromData(XtDisplay(w), XtWindow(w),
crosshair_mask_bits,
crosshair_mask_width,
crosshair_mask_height);
fore_g.pixel = WhitePixel(XtDisplay(w), DefaultScreen(XtDisplay(w)));
back_g.pixel = BlackPixel(XtDisplay(w), DefaultScreen(XtDisplay(w)));
fore_g.red = fore_g.blue = fore_g.green = 65535;
back_g.red = back_g.blue = back_g.green = 0;
fore_g.flags = back_g.flags = DoRed|DoBlue|DoGreen;
crosshair_cursor = XCreatePixmapCursor(XtDisplay(w), cursor_p, mask_p,
&fore_g, &back_g,
crosshair_cursor_x_hot,
crosshair_cursor_y_hot);
XFreePixmap(XtDisplay(w),cursor_p);
XFreePixmap(XtDisplay(w),mask_p);
/* create the standard arrow cursor */
arrow_cursor = XCreateFontCursor(XtDisplay(w), XC_top_left_arrow);
/* create a circular target cursor */
circle_cursor = XCreateFontCursor(XtDisplay(w), XC_target);
/* create a right arrow cursor */
right_arrow_cursor = XCreateFontCursor(XtDisplay(w), XC_arrow);
}
C++ to HTML Conversion by ctoohtml