amc@wlv.imsd.contel.com (Allen M. Cohen) (06/19/91)
Here's a simple rountine to toggle between a watch cursor and an arrow
cursor.
/*
* Change cursor to either a watch or an arrow.
* Allen M. Cohen
* 06/18/91
*/
#include <X11/Intrinsic.h>
#include <X11/cursorfont.h>
extern Widget toplevel;
void
ToggleCursor(w)
Widget w;
{
static Display *Dsp; /* Main display */
static Cursor WaitCursor; /* Watch cursor for "in-work" */
static Cursor ArrowCursor; /* Arrow cursor for normal mode */
static Bool Tog = 1;
if (Dsp == NULL)
{
/*
* Get main display
*/
Dsp = XtDisplay(toplevel);
/*
* Create cursors
*/
WaitCursor = XCreateFontCursor (Dsp, XC_watch);
ArrowCursor = XCreateFontCursor (Dsp, XC_arrow);
}
if ((Tog++) % 2)
{
/*
* Change to "watch" cursor
*/
XDefineCursor (Dsp,
XtWindow(w),
WaitCursor);
/*
* Force expose event before callbacks
*/
XmUpdateDisplay(toplevel);
}
else
{
/*
* Revert to "arrow" cursor
*/
XDefineCursor (Dsp,
XtWindow(w),
ArrowCursor);
}
}
<> Allen M. Cohen Internet: amc@wlv.imsd.contel.com <>
<> 1853 Stonesgate St. UUCP: elroy.Jpl.Nasa.Gov!agi0!allen <>
<> Westlake Village, Ca. 91361 Telephone: (805) 498-9611 ext. 195 <>
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>