diff options
Diffstat (limited to 'src/xlibi18n/mbWMProps.c')
-rw-r--r-- | src/xlibi18n/mbWMProps.c | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/src/xlibi18n/mbWMProps.c b/src/xlibi18n/mbWMProps.c new file mode 100644 index 0000000..be25657 --- /dev/null +++ b/src/xlibi18n/mbWMProps.c @@ -0,0 +1,84 @@ +/* $Xorg: mbWMProps.c,v 1.4 2001/02/09 02:03:40 xorgcvs Exp $ */ +/* + +Copyright 1991, 1998 The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from The Open Group. + +*/ + +#include <X11/Xlibint.h> +#include <X11/Xutil.h> +#include <X11/Xatom.h> +#include <X11/Xlocale.h> + +#if NeedFunctionPrototypes +void XmbSetWMProperties ( + Display *dpy, + Window w, + _Xconst char *windowName, + _Xconst char *iconName, + char **argv, + int argc, + XSizeHints *sizeHints, + XWMHints *wmHints, + XClassHint *classHints) +#else +void XmbSetWMProperties (dpy, w, windowName, iconName, argv, argc, sizeHints, + wmHints, classHints) + Display *dpy; + Window w; /* window to decorate */ + char *windowName; /* name of application */ + char *iconName; /* name string for icon */ + char **argv; /* command line */ + int argc; /* size of command line */ + XSizeHints *sizeHints; /* size hints for window in its normal state */ + XWMHints *wmHints; /* miscelaneous window manager hints */ + XClassHint *classHints; /* resource name and class */ +#endif +{ + XTextProperty wname, iname; + XTextProperty *wprop = NULL; + XTextProperty *iprop = NULL; + char *locale; + + if (windowName && + XmbTextListToTextProperty(dpy, (char**)&windowName, 1, + XStdICCTextStyle, &wname) >= Success) + wprop = &wname; + if (iconName && + XmbTextListToTextProperty(dpy, (char**)&iconName, 1, + XStdICCTextStyle, &iname) >= Success) + iprop = &iname; + XSetWMProperties(dpy, w, wprop, iprop, argv, argc, + sizeHints, wmHints, classHints); + if (wprop) + Xfree((char *)wname.value); + if (iprop) + Xfree((char *)iname.value); + locale = setlocale(LC_CTYPE, (char *)NULL); + if (locale) + XChangeProperty (dpy, w, XInternAtom(dpy, "WM_LOCALE_NAME", False), + XA_STRING, 8, PropModeReplace, + (unsigned char *)locale, strlen(locale)); +} |