aboutsummaryrefslogtreecommitdiff
path: root/vendor/x11iraf/obm/ObmW/Group.c
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/x11iraf/obm/ObmW/Group.c')
-rw-r--r--vendor/x11iraf/obm/ObmW/Group.c383
1 files changed, 383 insertions, 0 deletions
diff --git a/vendor/x11iraf/obm/ObmW/Group.c b/vendor/x11iraf/obm/ObmW/Group.c
new file mode 100644
index 00000000..f34005ea
--- /dev/null
+++ b/vendor/x11iraf/obm/ObmW/Group.c
@@ -0,0 +1,383 @@
+/* Generated by wbuild from "Group.w"
+** (generator version $Revision: 2.0 $ of $Date: 93/07/06 16:08:04 $)
+*/
+#include <X11/IntrinsicP.h>
+#include <X11/StringDefs.h>
+#include "Toggle.h"
+#include <stdio.h>
+#include <X11/Xmu/Converters.h>
+#include "Converters.h"
+#include "GroupP.h"
+static void _resolve_inheritance(
+#if NeedFunctionPrototypes
+WidgetClass
+#endif
+);
+static void class_initialize(
+#if NeedFunctionPrototypes
+void
+#endif
+);
+static void initialize(
+#if NeedFunctionPrototypes
+Widget ,Widget,ArgList ,Cardinal *
+#endif
+);
+static Boolean set_values(
+#if NeedFunctionPrototypes
+Widget ,Widget ,Widget,ArgList ,Cardinal *
+#endif
+);
+static void expose(
+#if NeedFunctionPrototypes
+Widget,XEvent *,Region
+#endif
+);
+static void insert_child(
+#if NeedFunctionPrototypes
+Widget
+#endif
+);
+static void make_textgc(
+#if NeedFunctionPrototypes
+Widget
+#endif
+);
+static void on_cb(
+#if NeedFunctionPrototypes
+Widget ,XtPointer ,XtPointer
+#endif
+);
+static void off_cb(
+#if NeedFunctionPrototypes
+Widget ,XtPointer ,XtPointer
+#endif
+);
+static void set_toggles(
+#if NeedFunctionPrototypes
+Widget
+#endif
+);
+#define done(type, value) do {\
+ if (to->addr != NULL) {\
+ if (to->size < sizeof(type)) {\
+ to->size = sizeof(type);\
+ return False;\
+ }\
+ *(type*)(to->addr) = (value);\
+ } else {\
+ static type static_val;\
+ static_val = (value);\
+ to->addr = (XtPointer)&static_val;\
+ }\
+ to->size = sizeof(type);\
+ return True;\
+ }while (0 )
+
+
+static Boolean cvtStringToSelectionType(
+#if NeedFunctionPrototypes
+Display *,XrmValuePtr ,Cardinal *,XrmValuePtr ,XrmValuePtr ,XtPointer *
+#endif
+);
+static Boolean cvtSelectionTypeToString(
+#if NeedFunctionPrototypes
+Display *,XrmValuePtr ,Cardinal *,XrmValuePtr ,XrmValuePtr ,XtPointer *
+#endif
+);
+/*ARGSUSED*/static void make_textgc(self)Widget self;
+{
+ XtGCMask mask;
+ XGCValues values;
+
+ if (((XfwfGroupWidget)self)->xfwfGroup.textgc != NULL) XtReleaseGC(self, ((XfwfGroupWidget)self)->xfwfGroup.textgc);
+ values.background = ((XfwfGroupWidget)self)->core.background_pixel;
+ values.foreground = ((XfwfGroupWidget)self)->xfwfGroup.foreground;
+ values.font = ((XfwfGroupWidget)self)->xfwfGroup.font->fid;
+ mask = GCFont | GCBackground | GCForeground;
+ ((XfwfGroupWidget)self)->xfwfGroup.textgc = XtGetGC(self, mask, &values);
+}
+/*ARGSUSED*/static void on_cb(toggle,client_data,call_data)Widget toggle;XtPointer client_data;XtPointer call_data;
+{
+ Widget self = XtParent(toggle);
+ Cardinal toggle_ord = (Cardinal) client_data;
+ Cardinal t, i, bits = sizeof(((XfwfGroupWidget)self)->xfwfGroup.selection) * 8;
+
+ switch (((XfwfGroupWidget)self)->xfwfGroup.selectionStyle) {
+ case XfwfMultipleSelection:
+ if (toggle_ord < bits) ((XfwfGroupWidget)self)->xfwfGroup.selection |= 1L << toggle_ord;
+ break;
+ case XfwfSingleSelection:
+ case XfwfOneSelection:
+ if (((XfwfGroupWidget)self)->xfwfGroup.selection != -1L)
+ for (t = 0, i = 0; i < ((XfwfGroupWidget)self)->composite.num_children; i++)
+ if (XtIsSubclass(((XfwfGroupWidget)self)->composite.children[i], xfwfToggleWidgetClass)) {
+ if (((XfwfGroupWidget)self)->xfwfGroup.selection == t) {
+ XtVaSetValues(((XfwfGroupWidget)self)->composite.children[i], XtNon, False, NULL);
+ break;
+ }
+ t++;
+ }
+ ((XfwfGroupWidget)self)->xfwfGroup.selection = toggle_ord;
+ break;
+ default: ;
+ }
+ XtCallCallbackList(self, ((XfwfGroupWidget)self)->xfwfGroup.activate, (XtPointer) ((XfwfGroupWidget)self)->xfwfGroup.selection);
+}
+/*ARGSUSED*/static void off_cb(toggle,client_data,call_data)Widget toggle;XtPointer client_data;XtPointer call_data;
+{
+ Widget self = XtParent(toggle);
+ Cardinal toggle_ord = (Cardinal) client_data;
+ Cardinal t, i, bits = sizeof(((XfwfGroupWidget)self)->xfwfGroup.selection) * 8;
+
+ switch (((XfwfGroupWidget)self)->xfwfGroup.selectionStyle) {
+ case XfwfOneSelection:
+ XtVaSetValues(toggle, XtNon, True, NULL); /* Undo */
+ break;
+ case XfwfSingleSelection:
+ ((XfwfGroupWidget)self)->xfwfGroup.selection = -1L; /* Nothing selected */
+ break;
+ case XfwfMultipleSelection:
+ if (toggle_ord < bits) ((XfwfGroupWidget)self)->xfwfGroup.selection &= ~(1L << toggle_ord);
+ break;
+ default: ;
+ }
+ XtCallCallbackList(self, ((XfwfGroupWidget)self)->xfwfGroup.activate, (XtPointer) ((XfwfGroupWidget)self)->xfwfGroup.selection);
+}
+/*ARGSUSED*/static void set_toggles(self)Widget self;
+{
+ Cardinal i, t;
+
+ for (t = 0, i = 0; i < ((XfwfGroupWidget)self)->composite.num_children; i++)
+ if (XtIsSubclass(((XfwfGroupWidget)self)->composite.children[i], xfwfToggleWidgetClass)) {
+ switch (((XfwfGroupWidget)self)->xfwfGroup.selectionStyle) {
+ case XfwfNoSelection:
+ break;
+ case XfwfSingleSelection:
+ case XfwfOneSelection:
+ XtVaSetValues(((XfwfGroupWidget)self)->composite.children[i], XtNon, t == ((XfwfGroupWidget)self)->xfwfGroup.selection, NULL);
+ break;
+ case XfwfMultipleSelection:
+ XtVaSetValues(((XfwfGroupWidget)self)->composite.children[i],
+ XtNon, (((XfwfGroupWidget)self)->xfwfGroup.selection & (1L<<t)) != 0, NULL);
+ break;
+ }
+ t++;
+ }
+}
+/*ARGSUSED*/static Boolean cvtStringToSelectionType(display,args,num_args,from,to,converter_data)Display * display;XrmValuePtr args;Cardinal * num_args;XrmValuePtr from;XrmValuePtr to;XtPointer * converter_data;
+{
+ String s = (String) from->addr;
+
+ if (*num_args != 0)
+ XtAppErrorMsg(XtDisplayToApplicationContext(display),
+ "cvtStringToSelectionType", "wrongParameters",
+ "XtToolkitError",
+ "String to SelectionType conversion needs no arguments",
+ (String*) NULL, (Cardinal*) NULL);
+
+ if (XmuCompareISOLatin1(s, "no") == 0)
+ done(SelectionType, XfwfNoSelection);
+ if (XmuCompareISOLatin1(s, "none") == 0)
+ done(SelectionType, XfwfNoSelection);
+ if (XmuCompareISOLatin1(s, "single") == 0)
+ done(SelectionType, XfwfSingleSelection);
+ if (XmuCompareISOLatin1(s, "one") == 0)
+ done(SelectionType, XfwfOneSelection);
+ if (XmuCompareISOLatin1(s, "multi") == 0)
+ done(SelectionType, XfwfMultipleSelection);
+ if (XmuCompareISOLatin1(s, "multiple") == 0)
+ done(SelectionType, XfwfMultipleSelection);
+
+ XtDisplayStringConversionWarning(display, s, XtRSelectionType);
+ done(SelectionType, XfwfSingleSelection);
+}
+/*ARGSUSED*/static Boolean cvtSelectionTypeToString(display,args,num_args,from,to,converter_data)Display * display;XrmValuePtr args;Cardinal * num_args;XrmValuePtr from;XrmValuePtr to;XtPointer * converter_data;
+{
+ char s[30];
+
+ if (*num_args != 0)
+ XtAppErrorMsg(XtDisplayToApplicationContext(display),
+ "cvtStringToSelectionStyle", "wrongParameters",
+ "XtToolkitError",
+ "String to SelectionStyle conversion needs no arguments",
+ (String*) NULL, (Cardinal*) NULL);
+ switch (*((SelectionType*) from->addr)) {
+ case XfwfNoSelection: done(String, "none");
+ case XfwfSingleSelection: done(String, "single");
+ case XfwfOneSelection: done(String, "one");
+ case XfwfMultipleSelection: done(String, "multiple");
+ }
+ XtDisplayStringConversionWarning(display, s, XtRSelectionType);
+ done(String, "none");
+}
+
+static XtResource resources[] = {
+{XtNlabel,XtCLabel,XtRString,sizeof(((XfwfGroupRec*)NULL)->xfwfGroup.label),XtOffsetOf(XfwfGroupRec,xfwfGroup.label),XtRImmediate,(XtPointer)NULL },
+{XtNfont,XtCFont,XtRFontStruct,sizeof(((XfwfGroupRec*)NULL)->xfwfGroup.font),XtOffsetOf(XfwfGroupRec,xfwfGroup.font),XtRString,(XtPointer)XtDefaultFont },
+{XtNforeground,XtCForeground,XtRPixel,sizeof(((XfwfGroupRec*)NULL)->xfwfGroup.foreground),XtOffsetOf(XfwfGroupRec,xfwfGroup.foreground),XtRString,(XtPointer)XtDefaultForeground },
+{XtNselectionStyle,XtCSelectionStyle,XtRSelectionType,sizeof(((XfwfGroupRec*)NULL)->xfwfGroup.selectionStyle),XtOffsetOf(XfwfGroupRec,xfwfGroup.selectionStyle),XtRImmediate,(XtPointer)XfwfSingleSelection },
+{XtNselection,XtCSelection,XtRLong,sizeof(((XfwfGroupRec*)NULL)->xfwfGroup.selection),XtOffsetOf(XfwfGroupRec,xfwfGroup.selection),XtRImmediate,(XtPointer)0 },
+{XtNactivate,XtCActivate,XtRCallback,sizeof(((XfwfGroupRec*)NULL)->xfwfGroup.activate),XtOffsetOf(XfwfGroupRec,xfwfGroup.activate),XtRImmediate,(XtPointer)NULL },
+{XtNframeType,XtCFrameType,XtRFrameType,sizeof(((XfwfGroupRec*)NULL)->xfwfFrame.frameType),XtOffsetOf(XfwfGroupRec,xfwfFrame.frameType),XtRImmediate,(XtPointer)XfwfChiseled },
+{XtNinnerOffset,XtCInnerOffset,XtRDimension,sizeof(((XfwfGroupRec*)NULL)->xfwfFrame.innerOffset),XtOffsetOf(XfwfGroupRec,xfwfFrame.innerOffset),XtRImmediate,(XtPointer)3 },
+};
+
+XfwfGroupClassRec xfwfGroupClassRec = {
+{ /* core_class part */
+(WidgetClass) &xfwfRowColClassRec,
+"Group",
+sizeof(XfwfGroupRec),
+class_initialize,
+_resolve_inheritance,
+FALSE,
+initialize,
+NULL,
+XtInheritRealize,
+NULL,
+0,
+resources,
+8,
+NULLQUARK,
+False ,
+FALSE ,
+False ,
+False ,
+NULL,
+XtInheritResize,
+expose,
+set_values,
+NULL,
+XtInheritSetValuesAlmost,
+NULL,
+XtInheritAcceptFocus,
+XtVersion,
+NULL,
+NULL,
+XtInheritQueryGeometry,
+XtInheritDisplayAccelerator,
+NULL
+},
+{ /* composite_class part */
+XtInheritGeometryManager,
+XtInheritChangeManaged,
+insert_child,
+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,
+},
+{ /* XfwfRowCol_class part */
+XtInherit_layout,
+},
+{ /* XfwfGroup_class part */
+0
+},
+};
+WidgetClass xfwfGroupWidgetClass = (WidgetClass) &xfwfGroupClassRec;
+static void _resolve_inheritance(class)
+WidgetClass class;
+{
+ XfwfGroupWidgetClass c = (XfwfGroupWidgetClass) class;
+ XfwfGroupWidgetClass 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 == xfwfGroupWidgetClass) return;
+ super = (XfwfGroupWidgetClass)class->core_class.superclass;
+}
+/*ARGSUSED*/static void class_initialize()
+{
+ XtAddConverter(XtRString, XtRLong, XmuCvtStringToLong, NULL, 0);
+ XtSetTypeConverter(XtRLong, XtRString, XfwfCvtLongToString,
+ NULL, 0, XtCacheNone, NULL);
+ XtSetTypeConverter(XtRString, XtRSelectionType, cvtStringToSelectionType,
+ NULL, 0, XtCacheNone, NULL);
+ XtSetTypeConverter(XtRSelectionType, XtRString, cvtSelectionTypeToString,
+ NULL, 0, XtCacheNone, NULL);
+}
+/*ARGSUSED*/static void initialize(request,self,args,num_args)Widget request;Widget self;ArgList args;Cardinal * num_args;
+{
+ ((XfwfGroupWidget)self)->xfwfGroup.toggle_ord = 0;
+ ((XfwfGroupWidget)self)->xfwfGroup.textgc = NULL;
+ make_textgc(self);
+ if (((XfwfGroupWidget)self)->xfwfGroup.selectionStyle == XfwfOneSelection && ((XfwfGroupWidget)self)->xfwfGroup.selection == -1L) {
+ XtWarning
+ ("Illegal combination of selectionStyle and selection resources");
+ ((XfwfGroupWidget)self)->xfwfGroup.selection = 0;
+ }
+}
+/*ARGSUSED*/static Boolean set_values(old,request,self,args,num_args)Widget old;Widget request;Widget self;ArgList args;Cardinal * num_args;
+{
+ Boolean need_redraw = False;
+
+ if (((XfwfGroupWidget)old)->xfwfGroup.label != ((XfwfGroupWidget)self)->xfwfGroup.label) {
+ XtFree(((XfwfGroupWidget)old)->xfwfGroup.label);
+ ((XfwfGroupWidget)self)->xfwfGroup.label = XtNewString(((XfwfGroupWidget)self)->xfwfGroup.label);
+ need_redraw = True;
+ }
+ if (((XfwfGroupWidget)self)->xfwfGroup.font != ((XfwfGroupWidget)old)->xfwfGroup.font) {
+ make_textgc(self);
+ if (((XfwfGroupWidget)self)->xfwfGroup.label != NULL) need_redraw = True;
+ }
+ if (((XfwfGroupWidget)old)->xfwfGroup.selection != ((XfwfGroupWidget)self)->xfwfGroup.selection
+ || ((XfwfGroupWidget)old)->xfwfGroup.selectionStyle != ((XfwfGroupWidget)self)->xfwfGroup.selectionStyle) {
+ if (((XfwfGroupWidget)self)->xfwfGroup.selectionStyle == XfwfOneSelection && ((XfwfGroupWidget)self)->xfwfGroup.selection == -1L)
+ ((XfwfGroupWidget)self)->xfwfGroup.selection = 0;
+ set_toggles(self);
+ }
+ return need_redraw;
+}
+/*ARGSUSED*/static void expose(self,event,region)Widget self;XEvent * event;Region region;
+{
+ Dimension w, h;
+ Position x, y;
+
+ if (! XtIsRealized(self)) return;
+ xfwfRowColClassRec.core_class.expose(self, event, region);
+ ((XfwfGroupWidgetClass)self->core.widget_class)->xfwfCommon_class.compute_inside(self, &x, &y, &w, &h);
+ XDrawImageString(XtDisplay(self), XtWindow(self), ((XfwfGroupWidget)self)->xfwfGroup.textgc, x + 3,
+ y - ((XfwfGroupWidget)self)->xfwfFrame.innerOffset, ((XfwfGroupWidget)self)->xfwfGroup.label, strlen(((XfwfGroupWidget)self)->xfwfGroup.label));
+}
+/*ARGSUSED*/static void insert_child(child)Widget child;
+{ Widget self = XtParent(child); {
+ xfwfRowColClassRec.composite_class.insert_child(child);
+ if (((XfwfGroupWidget)self)->xfwfGroup.selectionStyle != XfwfNoSelection
+ && XtIsSubclass(child, xfwfToggleWidgetClass)) {
+ XtAddCallback(child, XtNonCallback, on_cb, (XtPointer) ((XfwfGroupWidget)self)->xfwfGroup.toggle_ord);
+ XtAddCallback(child, XtNoffCallback, off_cb, (XtPointer) ((XfwfGroupWidget)self)->xfwfGroup.toggle_ord);
+ switch (((XfwfGroupWidget)self)->xfwfGroup.selectionStyle) {
+ case XfwfOneSelection:
+ case XfwfSingleSelection:
+ XtVaSetValues(child, XtNon, ((XfwfGroupWidget)self)->xfwfGroup.toggle_ord == ((XfwfGroupWidget)self)->xfwfGroup.selection, NULL);
+ break;
+ case XfwfMultipleSelection:
+ XtVaSetValues(child, XtNon,
+ (((XfwfGroupWidget)self)->xfwfGroup.selection & (1L<<((XfwfGroupWidget)self)->xfwfGroup.toggle_ord)) != 0, NULL);
+ break;
+ default: ;
+ }
+ ((XfwfGroupWidget)self)->xfwfGroup.toggle_ord++;
+ }
+}
+}