diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
commit | fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch) | |
tree | bdda434976bc09c864f2e4fa6f16ba1952b1e555 /vendor/x11iraf/obm/ObmW/Icon.c | |
download | iraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz |
Initial commit
Diffstat (limited to 'vendor/x11iraf/obm/ObmW/Icon.c')
-rw-r--r-- | vendor/x11iraf/obm/ObmW/Icon.c | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/vendor/x11iraf/obm/ObmW/Icon.c b/vendor/x11iraf/obm/ObmW/Icon.c new file mode 100644 index 00000000..b4696665 --- /dev/null +++ b/vendor/x11iraf/obm/ObmW/Icon.c @@ -0,0 +1,224 @@ +/* Generated by wbuild from "Icon.w" +** (generator version $Revision: 2.0 $ of $Date: 93/07/06 16:08:04 $) +*/ +#include <X11/IntrinsicP.h> +#include <X11/StringDefs.h> +#include <X11/extensions/shape.h> +#include <stdio.h> +#include "IconP.h" +static void activate( +#if NeedFunctionPrototypes +Widget,XEvent*,String*,Cardinal* +#endif +); + +static XtActionsRec actionsList[] = { +{"activate", activate}, +}; + +static char defaultTranslations[] = "\ +<Btn1Down>,<Btn1Up>: activate() \n\ +<Key>Return: activate() \n\ +"; +static void _resolve_inheritance( +#if NeedFunctionPrototypes +WidgetClass +#endif +); +static void initialize( +#if NeedFunctionPrototypes +Widget ,Widget,ArgList ,Cardinal * +#endif +); +static void expose( +#if NeedFunctionPrototypes +Widget,XEvent *,Region +#endif +); +static Boolean set_values( +#if NeedFunctionPrototypes +Widget ,Widget ,Widget,ArgList ,Cardinal * +#endif +); +static void realize( +#if NeedFunctionPrototypes +Widget,XtValueMask *,XSetWindowAttributes * +#endif +); +static void create_image_gc( +#if NeedFunctionPrototypes +Widget +#endif +); +/*ARGSUSED*/static void create_image_gc(self)Widget self; +{ + Dimension wd, ht; + Position x, y; + XtGCMask mask = GCFillStyle | GCTileStipXOrigin | GCTileStipYOrigin; + XGCValues values; + + if (((XfwfIconWidget)self)->xfwfIcon.image_gc != NULL) XtReleaseGC(self, ((XfwfIconWidget)self)->xfwfIcon.image_gc); + ((XfwfIconWidgetClass)self->core.widget_class)->xfwfCommon_class.compute_inside(self, &x, &y, &wd, &ht); + if (((XfwfIconWidget)self)->xfwfIcon.image && ((XfwfIconWidget)self)->xfwfIcon.image->pixmap != None) { + values.tile = ((XfwfIconWidget)self)->xfwfIcon.image->pixmap; + mask |= GCTile; + } + values.fill_style = FillTiled; + values.ts_x_origin = x; + values.ts_y_origin = y; + ((XfwfIconWidget)self)->xfwfIcon.image_gc = XtGetGC(self, mask, &values); +} + +static XtResource resources[] = { +{XtNimage,XtCImage,XtRIcon,sizeof(((XfwfIconRec*)NULL)->xfwfIcon.image),XtOffsetOf(XfwfIconRec,xfwfIcon.image),XtRImmediate,(XtPointer)NULL }, +{XtNactivate,XtCActivate,XtRCallback,sizeof(((XfwfIconRec*)NULL)->xfwfIcon.activate),XtOffsetOf(XfwfIconRec,xfwfIcon.activate),XtRImmediate,(XtPointer)NULL }, +{XtNframeWidth,XtCFrameWidth,XtRDimension,sizeof(((XfwfIconRec*)NULL)->xfwfFrame.frameWidth),XtOffsetOf(XfwfIconRec,xfwfFrame.frameWidth),XtRImmediate,(XtPointer)0 }, +}; + +XfwfIconClassRec xfwfIconClassRec = { +{ /* core_class part */ +(WidgetClass) &xfwfBoardClassRec, +"Icon", +sizeof(XfwfIconRec), +NULL, +_resolve_inheritance, +FALSE, +initialize, +NULL, +realize, +actionsList, +1, +resources, +3, +NULLQUARK, +False , +FALSE , +False , +False , +NULL, +XtInheritResize, +expose, +set_values, +NULL, +XtInheritSetValuesAlmost, +NULL, +XtInheritAcceptFocus, +XtVersion, +NULL, +defaultTranslations, +XtInheritQueryGeometry, +XtInheritDisplayAccelerator, +NULL +}, +{ /* composite_class part */ +XtInheritGeometryManager, +XtInheritChangeManaged, +XtInheritInsertChild, +XtInheritDeleteChild, +NULL +}, +{ /* XfwfCommon_class part */ +XtInherit_compute_inside, +XtInherit_highlight_border, +XtInherit_unhighlight_border, +XtInherit_would_accept_focus, +XtInherit_traverse, +XtInherit_choose_color, +XtInherit_lighter_color, +XtInherit_darker_color, +NULL , +}, +{ /* XfwfFrame_class part */ +0 +}, +{ /* XfwfBoard_class part */ +XtInherit_set_abs_location, +}, +{ /* XfwfIcon_class part */ +0 +}, +}; +WidgetClass xfwfIconWidgetClass = (WidgetClass) &xfwfIconClassRec; +/*ARGSUSED*/ +static void activate(self,event,params,num_params)Widget self;XEvent*event;String*params;Cardinal*num_params; +{ + XtCallCallbackList(self, ((XfwfIconWidget)self)->xfwfIcon.activate, event); +} + +static void _resolve_inheritance(class) +WidgetClass class; +{ + XfwfIconWidgetClass c = (XfwfIconWidgetClass) class; + XfwfIconWidgetClass super; + static CompositeClassExtensionRec extension_rec = { + NULL, NULLQUARK, XtCompositeExtensionVersion, + sizeof(CompositeClassExtensionRec), True}; + CompositeClassExtensionRec *ext; + ext = (XtPointer)XtMalloc(sizeof(*ext)); + *ext = extension_rec; + ext->next_extension = c->composite_class.extension; + c->composite_class.extension = ext; + if (class == xfwfIconWidgetClass) return; + super = (XfwfIconWidgetClass)class->core_class.superclass; +} +/*ARGSUSED*/static void initialize(request,self,args,num_args)Widget request;Widget self;ArgList args;Cardinal * num_args; +{ + Dimension dummy1, dummy2; + Position x, y; + + ((XfwfIconWidget)self)->xfwfIcon.image_gc = NULL; + create_image_gc(self); + if (((XfwfIconWidget)self)->xfwfIcon.image && (((XfwfIconWidget)self)->xfwfIcon.image->attributes.valuemask & XpmSize) != 0) { + ((XfwfIconWidgetClass)self->core.widget_class)->xfwfCommon_class.compute_inside(self, &x, &y, &dummy1, &dummy2); + XtVaSetValues(self, XtNwidth, ((XfwfIconWidget)self)->xfwfIcon.image->attributes.width + 2*x, + XtNheight, ((XfwfIconWidget)self)->xfwfIcon.image->attributes.height + 2*y, NULL); + } +} +/*ARGSUSED*/static void expose(self,event,region)Widget self;XEvent * event;Region region; +{ + Dimension wd, ht; + Position x, y; + + if (! XtIsRealized(self)) return; + if (((XfwfIconWidget)self)->xfwfIcon.image && ((XfwfIconWidget)self)->xfwfIcon.image->pixmap != None) { + ((XfwfIconWidgetClass)self->core.widget_class)->xfwfCommon_class.compute_inside(self, &x, &y, &wd, &ht); + XFillRectangle(XtDisplay(self), XtWindow(self), ((XfwfIconWidget)self)->xfwfIcon.image_gc, x, y, wd, ht); + } + xfwfBoardClassRec.core_class.expose(self, event, region); +} +/*ARGSUSED*/static Boolean set_values(old,request,self,args,num_args)Widget old;Widget request;Widget self;ArgList args;Cardinal * num_args; +{ + Dimension dummy1, dummy2; + Position x, y; + Boolean need_redraw = False; + + if (((XfwfIconWidget)old)->xfwfFrame.frameWidth != ((XfwfIconWidget)self)->xfwfFrame.frameWidth + || ((XfwfIconWidget)old)->xfwfFrame.outerOffset != ((XfwfIconWidget)self)->xfwfFrame.outerOffset + || ((XfwfIconWidget)old)->xfwfIcon.image != ((XfwfIconWidget)self)->xfwfIcon.image) { + create_image_gc(self); + need_redraw = True; + } + if (((XfwfIconWidget)old)->xfwfIcon.image != ((XfwfIconWidget)self)->xfwfIcon.image && ((XfwfIconWidget)self)->xfwfIcon.image) { + ((XfwfIconWidgetClass)self->core.widget_class)->xfwfCommon_class.compute_inside(self, &x, &y, &dummy1, &dummy2); + if ((((XfwfIconWidget)self)->xfwfIcon.image->attributes.valuemask & XpmSize) != 0) + ((XfwfIconWidgetClass)self->core.widget_class)->xfwfBoard_class.set_abs_location(self, CWWidth | CWHeight, 0, 0, + ((XfwfIconWidget)self)->xfwfIcon.image->attributes.width + 2*x, + ((XfwfIconWidget)self)->xfwfIcon.image->attributes.height + 2*y); + if (((XfwfIconWidget)self)->xfwfIcon.image->mask != None && XtIsRealized(self)) + XShapeCombineMask(XtDisplay(self), XtWindow(self), ShapeBounding, + x, y, ((XfwfIconWidget)self)->xfwfIcon.image->mask, ShapeSet); + need_redraw = True; + } + return need_redraw; +} +/*ARGSUSED*/static void realize(self,mask,attributes)Widget self;XtValueMask * mask;XSetWindowAttributes * attributes; +{ + Dimension wd, ht; + Position x, y; + + xfwfBoardClassRec.core_class.realize(self, mask, attributes); + ((XfwfIconWidgetClass)self->core.widget_class)->xfwfCommon_class.compute_inside(self, &x, &y, &wd, &ht); + if (((XfwfIconWidget)self)->xfwfIcon.image && ((XfwfIconWidget)self)->xfwfIcon.image->mask != None) + XShapeCombineMask(XtDisplay(self), XtWindow(self), ShapeBounding, + x, y, ((XfwfIconWidget)self)->xfwfIcon.image->mask, ShapeSet); +} |