00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #include <stdio.h>
00039 #include <X11/IntrinsicP.h>
00040 #include <X11/StringDefs.h>
00041
00042 #include <X11/Xaw3d/XawInit.h>
00043 #include <X11/Xaw3d/SmeP.h>
00044 #include <X11/Xaw3d/Cardinals.h>
00045
00046 #define offset(field) XtOffsetOf(SmeRec, sme.field)
00047 static XtResource resources[] = {
00048 {XtNcallback, XtCCallback, XtRCallback, sizeof(XtPointer),
00049 offset(callbacks), XtRCallback, (XtPointer)NULL},
00050 {XtNinternational, XtCInternational, XtRBoolean, sizeof(Boolean),
00051 offset(international), XtRImmediate, (XtPointer) FALSE},
00052 };
00053 #undef offset
00054
00055
00056
00057
00058
00059 static void Unhighlight(), Highlight(), Notify(), ClassPartInitialize();
00060 static void Initialize();
00061 static XtGeometryResult QueryGeometry();
00062
00063 #define SUPERCLASS (&rectObjClassRec)
00064
00065 SmeClassRec smeClassRec = {
00066 {
00067 (WidgetClass) SUPERCLASS,
00068 "Sme",
00069 sizeof(SmeRec),
00070 XawInitializeWidgetSet,
00071 ClassPartInitialize,
00072 FALSE,
00073 Initialize,
00074 NULL,
00075 NULL,
00076 NULL,
00077 ZERO,
00078 resources,
00079 XtNumber(resources),
00080 NULLQUARK,
00081 FALSE,
00082 FALSE,
00083 FALSE,
00084 FALSE,
00085 NULL,
00086 NULL,
00087 NULL,
00088 NULL,
00089 NULL,
00090 XtInheritSetValuesAlmost,
00091 NULL,
00092 NULL,
00093 XtVersion,
00094 NULL,
00095 NULL,
00096 QueryGeometry,
00097 NULL,
00098 NULL
00099 },{
00100
00101
00102 Highlight,
00103 Unhighlight,
00104 Notify,
00105 NULL
00106 }
00107 };
00108
00109 WidgetClass smeObjectClass = (WidgetClass) &smeClassRec;
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123 static void
00124 ClassPartInitialize(class)
00125 WidgetClass class;
00126 {
00127 SmeObjectClass m_ent, superC;
00128
00129 m_ent = (SmeObjectClass) class;
00130 superC = (SmeObjectClass) m_ent->rect_class.superclass;
00131
00132
00133
00134
00135
00136
00137 if (m_ent->sme_class.highlight == XtInheritHighlight)
00138 m_ent->sme_class.highlight = superC->sme_class.highlight;
00139
00140 if (m_ent->sme_class.unhighlight == XtInheritUnhighlight)
00141 m_ent->sme_class.unhighlight = superC->sme_class.unhighlight;
00142
00143 if (m_ent->sme_class.notify == XtInheritNotify)
00144 m_ent->sme_class.notify = superC->sme_class.notify;
00145 }
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158 static void
00159 Initialize(request, new, args, num_args)
00160 Widget request, new;
00161 ArgList args;
00162 Cardinal *num_args;
00163 {
00164 SmeObject entry = (SmeObject) new;
00165
00166 entry->rectangle.border_width = 0;
00167 }
00168
00169
00170
00171
00172
00173
00174
00175
00176 static void
00177 Highlight(w)
00178 Widget w;
00179 {
00180
00181 }
00182
00183
00184
00185
00186
00187
00188
00189
00190 static void
00191 Unhighlight(w)
00192 Widget w;
00193 {
00194
00195 }
00196
00197
00198
00199
00200
00201
00202
00203 static void
00204 Notify(w)
00205 Widget w;
00206 {
00207 XtCallCallbacks(w, XtNcallback, (XtPointer)NULL);
00208 }
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221 static XtGeometryResult
00222 QueryGeometry(w, intended, return_val)
00223 Widget w;
00224 XtWidgetGeometry *intended, *return_val;
00225 {
00226 SmeObject entry = (SmeObject) w;
00227 Dimension width;
00228 XtGeometryResult ret_val = XtGeometryYes;
00229 XtGeometryMask mode = intended->request_mode;
00230
00231 width = 1;
00232
00233 if ( ((mode & CWWidth) && (intended->width != width)) ||
00234 !(mode & CWWidth) ) {
00235 return_val->request_mode |= CWWidth;
00236 return_val->width = width;
00237 mode = return_val->request_mode;
00238
00239 if ( (mode & CWWidth) && (width == entry->rectangle.width) )
00240 return(XtGeometryNo);
00241 return(XtGeometryAlmost);
00242 }
00243 return(ret_val);
00244 }