summaryrefslogtreecommitdiff
path: root/LED.c
diff options
context:
space:
mode:
Diffstat (limited to 'LED.c')
-rw-r--r--LED.c320
1 files changed, 166 insertions, 154 deletions
diff --git a/LED.c b/LED.c
index dd68803..73864f5 100644
--- a/LED.c
+++ b/LED.c
@@ -53,139 +53,148 @@
#define offset(field) XtOffsetOf(LEDRec, field)
static XtResource resources[] = {
{XtNforeground, XtCForeground, XtRPixel, sizeof(Pixel),
- offset(led.foreground), XtRString, XtDefaultForeground},
+ offset(led.foreground), XtRString, XtDefaultForeground},
{XtNon, XtCOn, XtRBoolean, sizeof(Boolean),
- offset(led.on), XtRImmediate, (XtPointer)False},
+ offset(led.on), XtRImmediate, (XtPointer) False},
{XtNtopColor, XtCTopColor, XtRPixel, sizeof(Pixel),
- offset(led.top_color), XtRString, "black"},
+ offset(led.top_color), XtRString, "black"},
{XtNbottomColor, XtCBottomColor, XtRPixel, sizeof(Pixel),
- offset(led.bottom_color), XtRString, "white"},
+ offset(led.bottom_color), XtRString, "white"},
{XtNonColor, XtCOnColor, XtRPixel, sizeof(Pixel),
- offset(led.on_color), XtRString, "green"},
+ offset(led.on_color), XtRString, "green"},
{XtNoffColor, XtCOffColor, XtRPixel, sizeof(Pixel),
- offset(led.off_color), XtRString, "#005000"},
+ offset(led.off_color), XtRString, "#005000"},
{XtNbevel, XtCBevel, XtRDimension, sizeof(Dimension),
- offset(led.bevel), XtRImmediate, (XtPointer)1},
+ offset(led.bevel), XtRImmediate, (XtPointer) 1},
{XtNledWidth, XtCLedWidth, XtRDimension, sizeof(Dimension),
- offset(led.led_width), XtRImmediate, (XtPointer)6},
+ offset(led.led_width), XtRImmediate, (XtPointer) 6},
{XtNledHeight, XtCLedHeight, XtRDimension, sizeof(Dimension),
- offset(led.led_height), XtRImmediate, (XtPointer)12}
+ offset(led.led_height), XtRImmediate, (XtPointer) 12}
};
#undef offset
-static void ClassInitialize ( void );
-static void Initialize ( Widget request, Widget new, ArgList args,
- Cardinal *num_args );
-static void Realize ( Widget w, Mask * mask, XSetWindowAttributes * xswa );
-static void Resize ( Widget w );
-static Boolean SetValues ( Widget current, Widget request, Widget new,
- ArgList args, Cardinal *num_args );
-static void Destroy ( Widget w );
-static XtGeometryResult QueryGeometry ( Widget w, XtWidgetGeometry *intended,
- XtWidgetGeometry *preferred );
+static void ClassInitialize(void);
+static void Initialize(Widget request, Widget new, ArgList args,
+ Cardinal *num_args);
+static void Realize(Widget w, Mask *mask, XSetWindowAttributes *xswa);
+static void Resize(Widget w);
+static Boolean SetValues(Widget current, Widget request, Widget new,
+ ArgList args, Cardinal *num_args);
+static void Destroy(Widget w);
+static XtGeometryResult QueryGeometry(Widget w, XtWidgetGeometry *intended,
+ XtWidgetGeometry *preferred);
LEDClassRec ledClassRec = {
- {
-/* core_class fields */
- /* superclass */ (WidgetClass) &simpleClassRec,
- /* class_name */ "LED",
- /* widget_size */ sizeof(LEDRec),
- /* class_initialize */ ClassInitialize,
- /* class_part_initialize */ NULL,
- /* class_inited */ FALSE,
- /* initialize */ Initialize,
- /* initialize_hook */ NULL,
- /* realize */ Realize,
- /* actions */ NULL,
- /* num_actions */ 0,
- /* resources */ resources,
- /* num_resources */ XtNumber(resources),
- /* xrm_class */ NULLQUARK,
- /* compress_motion */ TRUE,
- /* compress_exposure */ TRUE,
- /* compress_enterleave */ TRUE,
- /* visible_interest */ FALSE,
- /* destroy */ Destroy,
- /* resize */ Resize,
- /* expose */ XtInheritExpose,
- /* set_values */ SetValues,
- /* set_values_hook */ NULL,
- /* set_values_almost */ XtInheritSetValuesAlmost,
- /* get_values_hook */ NULL,
- /* accept_focus */ NULL,
- /* version */ XtVersion,
- /* callback_private */ NULL,
- /* tm_table */ NULL,
- /* query_geometry */ QueryGeometry,
- /* display_accelerator */ XtInheritDisplayAccelerator,
- /* extension */ NULL
- },
+ {
+/* core_class fields */
+ /* superclass */ (WidgetClass) & simpleClassRec,
+ /* class_name */ "LED",
+ /* widget_size */ sizeof(LEDRec),
+ /* class_initialize */ ClassInitialize,
+ /* class_part_initialize */ NULL,
+ /* class_inited */ FALSE,
+ /* initialize */ Initialize,
+ /* initialize_hook */ NULL,
+ /* realize */ Realize,
+ /* actions */ NULL,
+ /* num_actions */ 0,
+ /* resources */ resources,
+ /* num_resources */ XtNumber(resources),
+ /* xrm_class */ NULLQUARK,
+ /* compress_motion */ TRUE,
+ /* compress_exposure */ TRUE,
+ /* compress_enterleave */ TRUE,
+ /* visible_interest */ FALSE,
+ /* destroy */ Destroy,
+ /* resize */ Resize,
+ /* expose */ XtInheritExpose,
+ /* set_values */ SetValues,
+ /* set_values_hook */ NULL,
+ /* set_values_almost */ XtInheritSetValuesAlmost,
+ /* get_values_hook */ NULL,
+ /* accept_focus */ NULL,
+ /* version */ XtVersion,
+ /* callback_private */ NULL,
+ /* tm_table */ NULL,
+ /* query_geometry */ QueryGeometry,
+ /* display_accelerator */ XtInheritDisplayAccelerator,
+ /* extension */ NULL
+ },
/* Simple class fields initialization */
- {
- /* change_sensitive */ XtInheritChangeSensitive
- },
+ {
+ /* change_sensitive */ XtInheritChangeSensitive
+ },
/* LED class fields initialization */
- {
- /* ignore */ 0
- }
+ {
+ /* ignore */ 0
+ }
};
-WidgetClass ledWidgetClass = (WidgetClass)&ledClassRec;
+WidgetClass ledWidgetClass = (WidgetClass) &ledClassRec;
+
/****************************************************************
*
* Private Procedures
*
****************************************************************/
-static void
+static void
ClassInitialize(void)
{
XawInitializeWidgetSet();
}
-static void
+static void
GetPixmaps(LEDWidget lw)
{
- XGCValues values;
- GC gc;
- Display * dpy;
- Window root;
- Pixmap pix,on_pixmap,off_pixmap;
- Dimension bevel,width,height;
+ XGCValues values;
+ GC gc;
+ Display *dpy;
+ Window root;
+ Pixmap pix, on_pixmap, off_pixmap;
+ Dimension bevel, width, height;
- dpy= XtDisplay((Widget)lw);
- root= RootWindowOfScreen(XtScreen((Widget)lw));
- if (lw->led.on_pixmap!=None) {
- XFreePixmap(dpy,lw->led.on_pixmap);
- lw->led.on_pixmap= None;
+ dpy = XtDisplay((Widget) lw);
+ root = RootWindowOfScreen(XtScreen((Widget) lw));
+ if (lw->led.on_pixmap != None) {
+ XFreePixmap(dpy, lw->led.on_pixmap);
+ lw->led.on_pixmap = None;
}
- if (lw->led.off_pixmap!=None) {
- XFreePixmap(dpy,lw->led.off_pixmap);
- lw->led.off_pixmap= None;
+ if (lw->led.off_pixmap != None) {
+ XFreePixmap(dpy, lw->led.off_pixmap);
+ lw->led.off_pixmap = None;
}
- lw->led.on_pixmap= on_pixmap= XCreatePixmap(dpy,root,
- lw->core.width,lw->core.height,lw->core.depth);
- lw->led.off_pixmap= off_pixmap= XCreatePixmap(dpy,root,
- lw->core.width,lw->core.height,lw->core.depth);
+ lw->led.on_pixmap = on_pixmap =
+ XCreatePixmap(dpy, root, lw->core.width, lw->core.height,
+ lw->core.depth);
+ lw->led.off_pixmap = off_pixmap =
+ XCreatePixmap(dpy, root, lw->core.width, lw->core.height,
+ lw->core.depth);
- values.foreground = lw->led.top_color;
- gc= XCreateGC(dpy,lw->led.on_pixmap,(unsigned)GCForeground,&values);
- bevel= lw->led.bevel;
- width= lw->core.width;
- height= lw->core.height;
- XFillRectangle(dpy,on_pixmap,gc,0,0,width,height);
- XFillRectangle(dpy,off_pixmap,gc,0,0,width,height);
- XSetForeground(dpy,gc,lw->led.bottom_color);
- XFillRectangle(dpy,on_pixmap,gc,bevel,bevel,width-bevel,height-bevel);
- XFillRectangle(dpy,off_pixmap,gc,bevel,bevel,width-bevel,height-bevel);
- XSetForeground(dpy,gc,lw->led.on_color);
- XFillRectangle(dpy,on_pixmap,gc,bevel,bevel,width-2*bevel,height-2*bevel);
- XSetForeground(dpy,gc,lw->led.off_color);
- XFillRectangle(dpy,off_pixmap,gc,bevel,bevel,width-2*bevel,height-2*bevel);
- XFreeGC(dpy,gc);
- if (lw->led.on) pix= on_pixmap;
- else pix= off_pixmap;
- if (XtWindow((Widget)lw)!=None)
- XSetWindowBackgroundPixmap(dpy,XtWindow((Widget)lw),pix);
+ values.foreground = lw->led.top_color;
+ gc = XCreateGC(dpy, lw->led.on_pixmap, (unsigned) GCForeground, &values);
+ bevel = lw->led.bevel;
+ width = lw->core.width;
+ height = lw->core.height;
+ XFillRectangle(dpy, on_pixmap, gc, 0, 0, width, height);
+ XFillRectangle(dpy, off_pixmap, gc, 0, 0, width, height);
+ XSetForeground(dpy, gc, lw->led.bottom_color);
+ XFillRectangle(dpy, on_pixmap, gc, bevel, bevel, width - bevel,
+ height - bevel);
+ XFillRectangle(dpy, off_pixmap, gc, bevel, bevel, width - bevel,
+ height - bevel);
+ XSetForeground(dpy, gc, lw->led.on_color);
+ XFillRectangle(dpy, on_pixmap, gc, bevel, bevel, width - 2 * bevel,
+ height - 2 * bevel);
+ XSetForeground(dpy, gc, lw->led.off_color);
+ XFillRectangle(dpy, off_pixmap, gc, bevel, bevel, width - 2 * bevel,
+ height - 2 * bevel);
+ XFreeGC(dpy, gc);
+ if (lw->led.on)
+ pix = on_pixmap;
+ else
+ pix = off_pixmap;
+ if (XtWindow((Widget) lw) != None)
+ XSetWindowBackgroundPixmap(dpy, XtWindow((Widget) lw), pix);
return;
}
@@ -199,32 +208,34 @@ Initialize(Widget request, Widget new, ArgList args, Cardinal *num_args)
lw->core.height = lw->led.led_height;
if (lw->core.width == 0)
lw->core.width = lw->led.led_width;
- lw->core.border_width= 0;
- if (lw->led.bevel==0)
- lw->led.bevel= 1;
- lw->led.on_pixmap= lw->led.off_pixmap= None;
- (*XtClass(new)->core_class.resize) ((Widget)lw);
+ lw->core.border_width = 0;
+ if (lw->led.bevel == 0)
+ lw->led.bevel = 1;
+ lw->led.on_pixmap = lw->led.off_pixmap = None;
+ (*XtClass(new)->core_class.resize) ((Widget) lw);
GetPixmaps(lw);
-} /* Initialize */
+} /* Initialize */
static void
Realize(Widget w, Mask *mask, XSetWindowAttributes *xswa)
{
- LEDWidget lw = (LEDWidget)w;
+ LEDWidget lw = (LEDWidget) w;
WidgetClass super = simpleWidgetClass;
- Pixmap pix;
+ Pixmap pix;
- (*super->core_class.realize)(w,mask,xswa);
- if (lw->led.on) pix= lw->led.on_pixmap;
- else pix= lw->led.off_pixmap;
- XSetWindowBackgroundPixmap(XtDisplay(w),XtWindow(w),pix);
+ (*super->core_class.realize) (w, mask, xswa);
+ if (lw->led.on)
+ pix = lw->led.on_pixmap;
+ else
+ pix = lw->led.off_pixmap;
+ XSetWindowBackgroundPixmap(XtDisplay(w), XtWindow(w), pix);
return;
}
-static void
+static void
Resize(Widget w)
{
- GetPixmaps((LEDWidget)w);
+ GetPixmaps((LEDWidget) w);
return;
}
@@ -232,71 +243,72 @@ Resize(Widget w)
* Set specified arguments into widget
*/
-static Boolean
-SetValues(Widget current, Widget request, Widget new,
- ArgList args, Cardinal *num_args)
+static Boolean
+SetValues(Widget current, Widget request, Widget new,
+ ArgList args, Cardinal *num_args)
{
LEDWidget curlw = (LEDWidget) current;
LEDWidget newlw = (LEDWidget) new;
Boolean changed;
- changed= FALSE;
- if (curlw->led.foreground != newlw->led.foreground
- || curlw->core.background_pixel != newlw->core.background_pixel
- || curlw->led.on_color != newlw->led.on_color
- || curlw->led.off_color != newlw->led.off_color
- || curlw->core.width != newlw->core.width
- || curlw->core.height != newlw->core.height) {
- GetPixmaps(newlw);
- changed= TRUE;
+ changed = FALSE;
+ if (curlw->led.foreground != newlw->led.foreground
+ || curlw->core.background_pixel != newlw->core.background_pixel
+ || curlw->led.on_color != newlw->led.on_color
+ || curlw->led.off_color != newlw->led.off_color
+ || curlw->core.width != newlw->core.width
+ || curlw->core.height != newlw->core.height) {
+ GetPixmaps(newlw);
+ changed = TRUE;
}
- if (curlw->led.on!=newlw->led.on) {
- Pixmap pix;
+ if (curlw->led.on != newlw->led.on) {
+ Pixmap pix;
- if (newlw->led.on) pix= newlw->led.on_pixmap;
- else pix= newlw->led.off_pixmap;
+ if (newlw->led.on)
+ pix = newlw->led.on_pixmap;
+ else
+ pix = newlw->led.off_pixmap;
- if (XtWindow(newlw)!=None)
- XSetWindowBackgroundPixmap(XtDisplay(newlw),XtWindow(newlw),pix);
- changed= TRUE;
+ if (XtWindow(newlw) != None)
+ XSetWindowBackgroundPixmap(XtDisplay(newlw), XtWindow(newlw), pix);
+ changed = TRUE;
}
return changed;
}
-static void
+static void
Destroy(Widget w)
{
- LEDWidget lw = (LEDWidget)w;
+ LEDWidget lw = (LEDWidget) w;
- if (lw->led.on_pixmap!=None) {
- XFreePixmap(XtDisplay(w),lw->led.on_pixmap);
- lw->led.on_pixmap= None;
+ if (lw->led.on_pixmap != None) {
+ XFreePixmap(XtDisplay(w), lw->led.on_pixmap);
+ lw->led.on_pixmap = None;
}
- if (lw->led.off_pixmap!=None) {
- XFreePixmap(XtDisplay(w),lw->led.off_pixmap);
- lw->led.off_pixmap= None;
+ if (lw->led.off_pixmap != None) {
+ XFreePixmap(XtDisplay(w), lw->led.off_pixmap);
+ lw->led.off_pixmap = None;
}
return;
}
-
-static XtGeometryResult
-QueryGeometry(Widget w, XtWidgetGeometry *intended,
- XtWidgetGeometry *preferred)
+static XtGeometryResult
+QueryGeometry(Widget w, XtWidgetGeometry *intended,
+ XtWidgetGeometry *preferred)
{
- LEDWidget lw = (LEDWidget)w;
+ LEDWidget lw = (LEDWidget) w;
preferred->request_mode = CWWidth | CWHeight;
preferred->width = lw->led.led_height;
preferred->height = lw->led.led_width;
- if ( ((intended->request_mode & (CWWidth | CWHeight))
- == (CWWidth | CWHeight)) &&
- intended->width == preferred->width &&
- intended->height == preferred->height)
- return XtGeometryYes;
+ if (((intended->request_mode & (CWWidth | CWHeight))
+ == (CWWidth | CWHeight)) &&
+ intended->width == preferred->width &&
+ intended->height == preferred->height)
+ return XtGeometryYes;
else if (preferred->width == w->core.width &&
- preferred->height == w->core.height)
- return XtGeometryNo;
+ preferred->height == w->core.height)
+ return XtGeometryNo;
else
- return XtGeometryAlmost;
+ return XtGeometryAlmost;
}