StrToGrav.c File Reference

#include <X11/Intrinsic.h>
#include <X11/Xmu/Converters.h>
#include <X11/Xmu/CharSet.h>

Include dependency graph for StrToGrav.c:

Go to the source code of this file.

Data Structures

struct  _namepair

Defines

#define done(address, type)   { (*toVal).size = sizeof(type); (*toVal).addr = (XPointer) address; }

Functions

void XmuCvtStringToGravity (XrmValuePtr args, Cardinal *num_args, XrmValuePtr fromVal, XrmValuePtr toVal)
Boolean XmuCvtGravityToString (Display *dpy, XrmValue *args, Cardinal *num_args, XrmValue *fromVal, XrmValue *toVal, XtPointer *data)

Variables

static struct _namepair names []


Define Documentation

#define done ( address,
type   )     { (*toVal).size = sizeof(type); (*toVal).addr = (XPointer) address; }

Definition at line 34 of file StrToGrav.c.


Function Documentation

Boolean XmuCvtGravityToString ( Display *  dpy,
XrmValue *  args,
Cardinal *  num_args,
XrmValue *  fromVal,
XrmValue *  toVal,
XtPointer *  data 
)

Definition at line 106 of file StrToGrav.c.

References buffer, _namepair::gravity, _namepair::name, names, NULL, and size.

00108 {
00109   static char *buffer;
00110   Cardinal size;
00111   struct _namepair *np;
00112   XtGravity gravity;
00113 
00114   gravity = *(XtGravity *)fromVal->addr;
00115   buffer = NULL;
00116   for (np = names; np->name; np++)
00117     if (np->gravity == gravity)
00118       {
00119         buffer = np->name;
00120         break;
00121       }
00122 
00123   if (!buffer)
00124     {
00125       XtAppWarning(XtDisplayToApplicationContext(dpy),
00126                    "Cannot convert Gravity to String");
00127       toVal->addr = NULL;
00128       toVal->size = 0;
00129 
00130       return (False);
00131     }
00132 
00133   size = strlen(buffer) + 1;
00134   if (toVal->addr != NULL)
00135     {
00136       if (toVal->size <= size)
00137         {
00138           toVal->size = size;
00139           return (False);
00140         }
00141       strcpy((char *)toVal->addr, buffer);
00142     }
00143   else
00144     toVal->addr = (XPointer)buffer;
00145   toVal->size = size;
00146 
00147   return (True);
00148 }

void XmuCvtStringToGravity ( XrmValuePtr  args,
Cardinal *  num_args,
XrmValuePtr  fromVal,
XrmValuePtr  toVal 
)

Definition at line 69 of file StrToGrav.c.

References done, _namepair::gravity, haveQuarks, _namepair::name, name, names, NULL, _namepair::quark, and XmuNCopyISOLatin1Lowered().

00071 {
00072   static Boolean haveQuarks = False;
00073   char name[10];
00074     XrmQuark q;
00075     struct _namepair *np;
00076 
00077     if (*num_args != 0)
00078         XtWarningMsg("wrongParameters","cvtStringToGravity","XtToolkitError",
00079                   "String to Gravity conversion needs no extra arguments",
00080                  (String *)NULL, (Cardinal *)NULL);
00081 
00082   if (!haveQuarks)
00083     {
00084       for (np = names; np->name; np++)
00085         np->quark = XrmPermStringToQuark(np->name);
00086       haveQuarks = True;
00087     }
00088 
00089   XmuNCopyISOLatin1Lowered(name, (char *)fromVal->addr, sizeof(name));
00090   q = XrmStringToQuark(name);
00091 
00092   for (np = names; np->name; np++)
00093     {
00094       if (np->quark == q)
00095         {
00096           done(&np->gravity, XtGravity);
00097                 return;
00098             }
00099         }
00100 
00101   XtStringConversionWarning((char *)fromVal->addr, XtRGravity);
00102 }

Here is the call graph for this function:


Variable Documentation

struct _namepair names[] [static]

Referenced by _XEditResCheckMessages(), addinter(), XmuCvtGravityToString(), and XmuCvtStringToGravity().


Generated on Sun Mar 4 16:04:24 2007 for Scilab [trunk] by  doxygen 1.5.1