|
Packit |
b099d7 |
/* $XConsortium: InputMethod2.c /main/5 1995/07/15 21:00:40 drk $ */
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Motif
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Copyright (c) 1987-2012, The Open Group. All rights reserved.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are free software; you can
|
|
Packit |
b099d7 |
* redistribute them and/or modify them under the terms of the GNU
|
|
Packit |
b099d7 |
* Lesser General Public License as published by the Free Software
|
|
Packit |
b099d7 |
* Foundation; either version 2 of the License, or (at your option)
|
|
Packit |
b099d7 |
* any later version.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are distributed in the hope that
|
|
Packit |
b099d7 |
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
Packit |
b099d7 |
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
Packit |
b099d7 |
* PURPOSE. See the GNU Lesser General Public License for more
|
|
Packit |
b099d7 |
* details.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
b099d7 |
* License along with these librararies and programs; if not, write
|
|
Packit |
b099d7 |
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
Packit |
b099d7 |
* Floor, Boston, MA 02110-1301 USA
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* HISTORY
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <testlib.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <X11/bitmaps/star>
|
|
Packit |
b099d7 |
#include <X11/bitmaps/xlogo16>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Declare local functions.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Boolean GetSupportedStyle(XIMStyle supported_style, unsigned short i);
|
|
Packit |
b099d7 |
static void PrintSupportedStyle(XIMStyle supported_style);
|
|
Packit |
b099d7 |
static void CreatePanel(void );
|
|
Packit |
b099d7 |
static Boolean FindIfSupported(int style);
|
|
Packit |
b099d7 |
static Widget CreatePushButton(Widget parent, char *label);
|
|
Packit |
b099d7 |
static Pixmap MakePixmap(Widget toplevel, char bits[], int width, int height);
|
|
Packit |
b099d7 |
static void BackgroundCB(Widget w, XtPointer client_data, XtPointer call_data);
|
|
Packit |
b099d7 |
static void BackPixmapCB(Widget w, XtPointer client_data, XtPointer call_data);
|
|
Packit |
b099d7 |
static void ForegroundCB(Widget w, XtPointer client_data, XtPointer call_data);
|
|
Packit |
b099d7 |
static void ChoiceCB(Widget w, XtPointer client_data, XtPointer call_data);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Declare global variables.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define MY_OFFSET 30
|
|
Packit |
b099d7 |
#define OVERTHESPOT 1
|
|
Packit |
b099d7 |
#define OFFTHESPOT 2
|
|
Packit |
b099d7 |
#define ROOT 3
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Widget Text1, Text2, TextField1;
|
|
Packit |
b099d7 |
Widget current_text;
|
|
Packit |
b099d7 |
unsigned short IM_style_count;
|
|
Packit |
b099d7 |
XIMStyle IM_style[10];
|
|
Packit |
b099d7 |
int InputStyle[10];
|
|
Packit |
b099d7 |
int test_style;
|
|
Packit |
b099d7 |
XmFontList small_fontlist, medium_fontlist, big_fontlist;
|
|
Packit |
b099d7 |
Pixmap star_pixmap, xlogo_pixmap;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct {
|
|
Packit |
b099d7 |
String small_font, medium_font, big_font;
|
|
Packit |
b099d7 |
} ApplicationData, *ApplicationDataPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtResource resources[] = {
|
|
Packit |
b099d7 |
{"small_font", "Small_font", XtRString, sizeof (String),
|
|
Packit |
b099d7 |
XtOffset(ApplicationDataPtr, small_font), XtRString, "*medium*-14-*"},
|
|
Packit |
b099d7 |
{"medium_font", "Medium_font", XtRString, sizeof (String),
|
|
Packit |
b099d7 |
XtOffset(ApplicationDataPtr, medium_font), XtRString, "*medium*-16-*,*18*"},
|
|
Packit |
b099d7 |
{"big_font", "Big_font", XtRString, sizeof (String),
|
|
Packit |
b099d7 |
XtOffset(ApplicationDataPtr, big_font), XtRString, "*medium*-24-*"},
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static char *BackgroundColor[4] = {
|
|
Packit |
b099d7 |
"black",
|
|
Packit |
b099d7 |
"yellow",
|
|
Packit |
b099d7 |
"green",
|
|
Packit |
b099d7 |
"blue"
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static char *ForegroundColor[3] = {
|
|
Packit |
b099d7 |
"white",
|
|
Packit |
b099d7 |
"red",
|
|
Packit |
b099d7 |
"grey"
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Main
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
void main (argc, argv)
|
|
Packit |
b099d7 |
int argc;
|
|
Packit |
b099d7 |
char **argv;
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Widget Form1;
|
|
Packit |
b099d7 |
Arg args[20];
|
|
Packit |
b099d7 |
int n;
|
|
Packit |
b099d7 |
char TestName[20], test_char;
|
|
Packit |
b099d7 |
XIM XIM_object;
|
|
Packit |
b099d7 |
XIMStyles *XIM_styles;
|
|
Packit |
b099d7 |
XIC XIC_Text1, XIC_Text2, XIC_TextField1;
|
|
Packit |
b099d7 |
ApplicationData my_data;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
TestName[0] = '\0';
|
|
Packit |
b099d7 |
test_style = OVERTHESPOT;
|
|
Packit |
b099d7 |
test_char = 'a';
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
CommonTestI18NInit(argc, argv, NULL, NULL);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (UserData != NULL) {
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (strcmp(UserData, "a") == 0) {
|
|
Packit |
b099d7 |
test_style = OVERTHESPOT;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNpreeditType, "OverTheSpot"); n++;
|
|
Packit |
b099d7 |
} else if (strcmp(UserData, "b") == 0) {
|
|
Packit |
b099d7 |
test_style = OFFTHESPOT;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNpreeditType, "OffTheSpot"); n++;
|
|
Packit |
b099d7 |
} else if (strcmp(UserData, "c") == 0) {
|
|
Packit |
b099d7 |
test_style = ROOT;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNpreeditType, "Root"); n++;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNinputPolicy, XmPER_WIDGET); n++;
|
|
Packit |
b099d7 |
XtSetValues(Shell1, args, n);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
test_char = *UserData;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
free(UserData);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sprintf(TestName, "InputMethod2%c", test_char);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
CommonPause();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Testing XmImGetXIM */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XIM_object = (XIM) 0;
|
|
Packit |
b099d7 |
XIM_object = XmImGetXIM(Shell1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XIM_object == (XIM) 0) {
|
|
Packit |
b099d7 |
printf("\nCannot open input method.\n");
|
|
Packit |
b099d7 |
exit(0);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
printf("\nInput method opened successfully for locale %s.\n\n",
|
|
Packit |
b099d7 |
XLocaleOfIM(XIM_object));
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
CommonPause();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Query the input method to see what input styles it supports. */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XIM_styles = (XIMStyles *) 0;
|
|
Packit |
b099d7 |
IM_style_count = (unsigned short) 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XGetIMValues(XIM_object, XNQueryInputStyle, &XIM_styles, NULL)!=NULL) {
|
|
Packit |
b099d7 |
printf("Query on input styles failed.\n\n");
|
|
Packit |
b099d7 |
printf("No reason to continue this test.\n");
|
|
Packit |
b099d7 |
exit(0);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
else {
|
|
Packit |
b099d7 |
unsigned short i;
|
|
Packit |
b099d7 |
Boolean proceed = FALSE;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
printf("Number of supported input styles: %d\n\n",
|
|
Packit |
b099d7 |
XIM_styles->count_styles);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
IM_style_count = (unsigned short) 0;
|
|
Packit |
b099d7 |
for (i = 0; i < XIM_styles->count_styles; i++)
|
|
Packit |
b099d7 |
proceed = proceed ||
|
|
Packit |
b099d7 |
GetSupportedStyle(XIM_styles->supported_styles[i], i);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XFree(XIM_styles);
|
|
Packit |
b099d7 |
if (!proceed) {
|
|
Packit |
b099d7 |
printf("No known styles supported by this input method.\n");
|
|
Packit |
b099d7 |
printf("No reason to continue this test.\n");
|
|
Packit |
b099d7 |
exit(0);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (FindIfSupported(test_style))
|
|
Packit |
b099d7 |
printf("Input Method and Application support the same input style.\n");
|
|
Packit |
b099d7 |
else {
|
|
Packit |
b099d7 |
printf("Input Method and Application don't support the same input style.\n");
|
|
Packit |
b099d7 |
printf("No reason to continue this test.\n");
|
|
Packit |
b099d7 |
exit(0);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
CommonPause();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* get resources and do conversions */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtGetApplicationResources(Shell1, &my_data, resources,
|
|
Packit |
b099d7 |
XtNumber(resources), NULL, 0);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
small_fontlist = XmFontListAppendEntry(NULL,
|
|
Packit |
b099d7 |
XmFontListEntryLoad(XtDisplay(Shell1),
|
|
Packit |
b099d7 |
my_data.small_font,
|
|
Packit |
b099d7 |
XmFONT_IS_FONTSET,
|
|
Packit |
b099d7 |
XmFONTLIST_DEFAULT_TAG));
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
medium_fontlist = XmFontListAppendEntry(NULL,
|
|
Packit |
b099d7 |
XmFontListEntryLoad(XtDisplay(Shell1),
|
|
Packit |
b099d7 |
my_data.medium_font,
|
|
Packit |
b099d7 |
XmFONT_IS_FONTSET,
|
|
Packit |
b099d7 |
XmFONTLIST_DEFAULT_TAG));
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
big_fontlist = XmFontListAppendEntry(NULL,
|
|
Packit |
b099d7 |
XmFontListEntryLoad(XtDisplay(Shell1),
|
|
Packit |
b099d7 |
my_data.big_font,
|
|
Packit |
b099d7 |
XmFONT_IS_FONTSET,
|
|
Packit |
b099d7 |
XmFONTLIST_DEFAULT_TAG));
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNmarginHeight, 15); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNmarginWidth, 15); n++;
|
|
Packit |
b099d7 |
Form1 = XmCreateForm(Shell1, TestName, args, n);
|
|
Packit |
b099d7 |
XtManageChild (Form1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Creates Text1 and Text2.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNcolumns, 15); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNrows, 5); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNscrollVertical, True); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNscrollHorizontal, True); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNwordWrap, True); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNvalue, "Testing"); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNfontList, small_fontlist); n++;
|
|
Packit |
b099d7 |
Text1 = XmCreateScrolledText(Form1, "Text1", args, n);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtManageChild(Text1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNcolumns, 20); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNrows, 5); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNwordWrap, True); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNleftWidget, Text1); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNleftOffset, MY_OFFSET ); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNvalue, "Input Method with "); n++;
|
|
Packit |
b099d7 |
/* XtSetArg(args[n], XmNfontList, medium_fontlist); n++; */
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNfontList, small_fontlist); n++;
|
|
Packit |
b099d7 |
Text2 = XmCreateText(Form1, "Text2", args, n);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtManageChild(Text2);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Creates TextField1.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET ); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopWidget, Text1); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNcolumns, 40); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNvalue, "per widget Input Context."); n++;
|
|
Packit |
b099d7 |
/* XtSetArg(args[n], XmNfontList, big_fontlist); n++; */
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNfontList, small_fontlist); n++;
|
|
Packit |
b099d7 |
TextField1 = XmCreateTextField(Form1, "TextField1", args, n);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtManageChild(TextField1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtRealizeWidget(Shell1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Test Input Context with different attributes */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
CreatePanel();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
CommonPause();
|
|
Packit |
b099d7 |
CommonPause();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Test that we really have different Input Context */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XIC_Text1 = XmImGetXIC(Text1, XmINHERIT_POLICY, NULL, (Cardinal) 0);
|
|
Packit |
b099d7 |
XIC_Text2 = XmImGetXIC(Text2, XmINHERIT_POLICY, NULL, (Cardinal) 0);
|
|
Packit |
b099d7 |
XIC_TextField1 = XmImGetXIC(TextField1, XmINHERIT_POLICY, NULL,
|
|
Packit |
b099d7 |
(Cardinal) 0);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((XIC_Text1 != XIC_Text2) && (XIC_Text1 != XIC_TextField1)
|
|
Packit |
b099d7 |
&& (XIC_Text2 != XIC_TextField1))
|
|
Packit |
b099d7 |
printf("\nEach Text widget has its own Input Context\n");
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
printf("\nERROR: Text widgets are sharing the Input Context\n");
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
CommonPause();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Text XmImUnregister */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmImUnregister(Text1);
|
|
Packit |
b099d7 |
CommonPause();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
CommonPause();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtAppMainLoop(app_context);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
GetSupportedStyle(XIMStyle supported_style, unsigned short i)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Boolean return_status = FALSE;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
printf("Style %d: ", i + 1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((supported_style & XIMPreeditPosition) &&
|
|
Packit |
b099d7 |
(supported_style & (XIMStatusArea|XIMStatusNothing|XIMStatusNone))) {
|
|
Packit |
b099d7 |
printf("Over-the-spot\n");
|
|
Packit |
b099d7 |
InputStyle[IM_style_count] = OVERTHESPOT;
|
|
Packit |
b099d7 |
IM_style[IM_style_count] = supported_style;
|
|
Packit |
b099d7 |
return_status = TRUE;
|
|
Packit |
b099d7 |
IM_style_count++;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
else if ((supported_style & XIMPreeditArea) &&
|
|
Packit |
b099d7 |
(supported_style & (XIMStatusArea|XIMStatusNothing|XIMStatusNone))) {
|
|
Packit |
b099d7 |
printf("Off-the-spot\n");
|
|
Packit |
b099d7 |
InputStyle[IM_style_count] = OFFTHESPOT;
|
|
Packit |
b099d7 |
IM_style[IM_style_count] = supported_style;
|
|
Packit |
b099d7 |
return_status = TRUE;
|
|
Packit |
b099d7 |
IM_style_count++;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
else if ((supported_style & XIMPreeditNothing) &&
|
|
Packit |
b099d7 |
(supported_style & (XIMStatusNothing|XIMStatusNone))) {
|
|
Packit |
b099d7 |
printf("Root-window\n");
|
|
Packit |
b099d7 |
InputStyle[IM_style_count] = ROOT;
|
|
Packit |
b099d7 |
IM_style[IM_style_count] = supported_style;
|
|
Packit |
b099d7 |
return_status = TRUE;
|
|
Packit |
b099d7 |
IM_style_count++;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
else if ((supported_style & XIMPreeditNone) &&
|
|
Packit |
b099d7 |
(supported_style & XIMStatusNone)) {
|
|
Packit |
b099d7 |
printf("None\n");
|
|
Packit |
b099d7 |
return_status = FALSE;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else {
|
|
Packit |
b099d7 |
printf("Unknown composed of: ");
|
|
Packit |
b099d7 |
PrintSupportedStyle(supported_style);
|
|
Packit |
b099d7 |
return_status = FALSE;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return (return_status);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
PrintSupportedStyle(XIMStyle supported_style)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if (supported_style & XIMPreeditArea)
|
|
Packit |
b099d7 |
printf("XIMPreeditArea ");
|
|
Packit |
b099d7 |
if (supported_style & XIMPreeditCallbacks)
|
|
Packit |
b099d7 |
printf("XIMPreeditCallbacks ");
|
|
Packit |
b099d7 |
if (supported_style & XIMPreeditPosition)
|
|
Packit |
b099d7 |
printf("XIMPreeditPosition ");
|
|
Packit |
b099d7 |
if (supported_style & XIMPreeditNothing)
|
|
Packit |
b099d7 |
printf("XIMPreeditNothing ");
|
|
Packit |
b099d7 |
if (supported_style & XIMPreeditNone)
|
|
Packit |
b099d7 |
printf("XIMPreeditNone ");
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (supported_style & XIMStatusArea)
|
|
Packit |
b099d7 |
printf("XIMStatusArea ");
|
|
Packit |
b099d7 |
if (supported_style & XIMStatusCallbacks)
|
|
Packit |
b099d7 |
printf("XIMStatusCallbacks ");
|
|
Packit |
b099d7 |
if (supported_style & XIMStatusNothing)
|
|
Packit |
b099d7 |
printf("XIMStatusNothing ");
|
|
Packit |
b099d7 |
if (supported_style & XIMStatusNone)
|
|
Packit |
b099d7 |
printf("XIMStatusNone ");
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
CreatePanel(void )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Arg args[15];
|
|
Packit |
b099d7 |
Cardinal n;
|
|
Packit |
b099d7 |
XmString tcs;
|
|
Packit |
b099d7 |
Widget FormDialog;
|
|
Packit |
b099d7 |
Widget InputStyleLabel;
|
|
Packit |
b099d7 |
Widget Background_Pulldown, Background_Option;
|
|
Packit |
b099d7 |
Widget Black, Yellow, Green, Blue;
|
|
Packit |
b099d7 |
Widget BackPixmap_Pulldown, BackPixmap_Option;
|
|
Packit |
b099d7 |
Widget Pix_star, Pix_xlogo16;
|
|
Packit |
b099d7 |
Widget Foreground_Pulldown, Foreground_Option;
|
|
Packit |
b099d7 |
Widget White, Red, Grey;
|
|
Packit |
b099d7 |
Widget Separator;
|
|
Packit |
b099d7 |
Widget ChoiceLabel, ChoiceRadioBox, STextTB, TextTB, TextFTB;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNhorizontalSpacing, 5); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNverticalSpacing, 5); n++;
|
|
Packit |
b099d7 |
FormDialog = XmCreateFormDialog(Shell1, "FormDialog", args, n);
|
|
Packit |
b099d7 |
XtManageChild(FormDialog);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (test_style == OVERTHESPOT)
|
|
Packit |
b099d7 |
tcs = XmStringCreateLtoR("Input Style: Over The Spot",
|
|
Packit |
b099d7 |
XmFONTLIST_DEFAULT_TAG);
|
|
Packit |
b099d7 |
else if (test_style == OFFTHESPOT)
|
|
Packit |
b099d7 |
tcs = XmStringCreateLtoR("Input Style: Off The Spot",
|
|
Packit |
b099d7 |
XmFONTLIST_DEFAULT_TAG);
|
|
Packit |
b099d7 |
else if (test_style == ROOT)
|
|
Packit |
b099d7 |
tcs = XmStringCreateLtoR("Input Style: Root",
|
|
Packit |
b099d7 |
XmFONTLIST_DEFAULT_TAG);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNlabelString, tcs); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
|
|
Packit |
b099d7 |
InputStyleLabel = XmCreateLabelGadget(FormDialog, "InputStyleLabel",
|
|
Packit |
b099d7 |
args, n);
|
|
Packit |
b099d7 |
XtManageChild(InputStyleLabel);
|
|
Packit |
b099d7 |
XmStringFree(tcs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
Background_Pulldown = XmCreatePulldownMenu(FormDialog,
|
|
Packit |
b099d7 |
"Background_Pulldown",
|
|
Packit |
b099d7 |
args, n);
|
|
Packit |
b099d7 |
Black = CreatePushButton(Background_Pulldown, "Black");
|
|
Packit |
b099d7 |
Yellow = CreatePushButton(Background_Pulldown, "Yellow");
|
|
Packit |
b099d7 |
Green = CreatePushButton(Background_Pulldown, "Green");
|
|
Packit |
b099d7 |
Blue = CreatePushButton(Background_Pulldown, "Blue");
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtAddCallback(Black, XmNactivateCallback, BackgroundCB,
|
|
Packit |
b099d7 |
(XtPointer) BackgroundColor[0]);
|
|
Packit |
b099d7 |
XtAddCallback(Yellow, XmNactivateCallback, BackgroundCB,
|
|
Packit |
b099d7 |
(XtPointer) BackgroundColor[1]);
|
|
Packit |
b099d7 |
XtAddCallback(Green, XmNactivateCallback, BackgroundCB,
|
|
Packit |
b099d7 |
(XtPointer) BackgroundColor[2]);
|
|
Packit |
b099d7 |
XtAddCallback(Blue, XmNactivateCallback, BackgroundCB,
|
|
Packit |
b099d7 |
(XtPointer) BackgroundColor[3]);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
tcs = XmStringCreateLtoR("Background ", XmFONTLIST_DEFAULT_TAG);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopWidget, InputStyleLabel); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNlabelString, tcs); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNmenuHistory, Black); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNsubMenuId, Background_Pulldown); n++;
|
|
Packit |
b099d7 |
Background_Option = XmCreateOptionMenu(FormDialog, "Background_Option",
|
|
Packit |
b099d7 |
args, n);
|
|
Packit |
b099d7 |
XtManageChild(Background_Option);
|
|
Packit |
b099d7 |
XmStringFree(tcs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
BackPixmap_Pulldown = XmCreatePulldownMenu(FormDialog,
|
|
Packit |
b099d7 |
"BackPixmap_Pulldown",
|
|
Packit |
b099d7 |
args, n);
|
|
Packit |
b099d7 |
star_pixmap = MakePixmap(Shell1, (char *) star_bits,
|
|
Packit |
b099d7 |
star_width, star_height);
|
|
Packit |
b099d7 |
xlogo_pixmap = MakePixmap(Shell1, (char *) xlogo16_bits,
|
|
Packit |
b099d7 |
xlogo16_width, xlogo16_height);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNlabelType, XmPIXMAP); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNlabelPixmap, star_pixmap); n++;
|
|
Packit |
b099d7 |
Pix_star = XmCreatePushButton(BackPixmap_Pulldown, "Pix_star", args, n);
|
|
Packit |
b099d7 |
XtManageChild(Pix_star);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtAddCallback(Pix_star, XmNactivateCallback, BackPixmapCB,
|
|
Packit |
b099d7 |
(XtPointer) &star_pixmap);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNlabelType, XmPIXMAP); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNlabelPixmap, xlogo_pixmap); n++;
|
|
Packit |
b099d7 |
Pix_xlogo16 = XmCreatePushButton(BackPixmap_Pulldown, "Pix_xlogo16",
|
|
Packit |
b099d7 |
args, n);
|
|
Packit |
b099d7 |
XtManageChild(Pix_xlogo16);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtAddCallback(Pix_xlogo16, XmNactivateCallback, BackPixmapCB,
|
|
Packit |
b099d7 |
(XtPointer) &xlogo_pixmap);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
tcs = XmStringCreateLtoR("Background Pixmap ", XmFONTLIST_DEFAULT_TAG);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopWidget, Background_Option); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNlabelString, tcs); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNsubMenuId, BackPixmap_Pulldown); n++;
|
|
Packit |
b099d7 |
BackPixmap_Option = XmCreateOptionMenu(FormDialog, "BackPixmap_Option",
|
|
Packit |
b099d7 |
args, n);
|
|
Packit |
b099d7 |
XtManageChild(BackPixmap_Option);
|
|
Packit |
b099d7 |
XmStringFree(tcs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
Foreground_Pulldown = XmCreatePulldownMenu(FormDialog,
|
|
Packit |
b099d7 |
"Foreground_Pulldown",
|
|
Packit |
b099d7 |
args, n);
|
|
Packit |
b099d7 |
White = CreatePushButton(Foreground_Pulldown, "White");
|
|
Packit |
b099d7 |
Red = CreatePushButton(Foreground_Pulldown, "Red");
|
|
Packit |
b099d7 |
Grey = CreatePushButton(Foreground_Pulldown, "Grey");
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtAddCallback(White, XmNactivateCallback, ForegroundCB,
|
|
Packit |
b099d7 |
(XtPointer) ForegroundColor[0]);
|
|
Packit |
b099d7 |
XtAddCallback(Red, XmNactivateCallback, ForegroundCB,
|
|
Packit |
b099d7 |
(XtPointer) ForegroundColor[1]);
|
|
Packit |
b099d7 |
XtAddCallback(Grey, XmNactivateCallback, ForegroundCB,
|
|
Packit |
b099d7 |
(XtPointer) ForegroundColor[2]);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
tcs = XmStringCreateLtoR("Foreground ", XmFONTLIST_DEFAULT_TAG);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopWidget, BackPixmap_Option); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNlabelString, tcs); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNmenuHistory, White); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNsubMenuId, Foreground_Pulldown); n++;
|
|
Packit |
b099d7 |
Foreground_Option = XmCreateOptionMenu(FormDialog, "Foreground_Option",
|
|
Packit |
b099d7 |
args, n);
|
|
Packit |
b099d7 |
XtManageChild(Foreground_Option);
|
|
Packit |
b099d7 |
XmStringFree(tcs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopWidget, Foreground_Option); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
|
|
Packit |
b099d7 |
Separator = XmCreateSeparatorGadget(FormDialog, "Separator", args, n);
|
|
Packit |
b099d7 |
XtManageChild(Separator);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
tcs = XmStringCreateLtoR("Apply to ", XmFONTLIST_DEFAULT_TAG);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopWidget, Separator); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopOffset, 20); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNlabelString, tcs); n++;
|
|
Packit |
b099d7 |
ChoiceLabel = XmCreateLabelGadget(FormDialog, "ChoiceLabel", args, n);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtManageChild(ChoiceLabel);
|
|
Packit |
b099d7 |
XmStringFree(tcs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNtopWidget, Separator); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNleftWidget, ChoiceLabel); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNpacking, XmPACK_TIGHT); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNorientation, XmHORIZONTAL); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNborderWidth, 2); n++;
|
|
Packit |
b099d7 |
ChoiceRadioBox = XmCreateRadioBox(FormDialog, "ChoiceRadioBox", args, n);
|
|
Packit |
b099d7 |
XtManageChild(ChoiceRadioBox);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
tcs = XmStringCreateLtoR("Scrolled Text", XmFONTLIST_DEFAULT_TAG);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNset, XmSET); n++;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNlabelString, tcs); n++;
|
|
Packit |
b099d7 |
current_text = Text1;
|
|
Packit |
b099d7 |
STextTB = XmCreateToggleButtonGadget(ChoiceRadioBox, "STextTB", args, n);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtManageChild(STextTB);
|
|
Packit |
b099d7 |
XmStringFree(tcs);
|
|
Packit |
b099d7 |
XtAddCallback(STextTB, XmNvalueChangedCallback, ChoiceCB,
|
|
Packit |
b099d7 |
(XtPointer) &Text1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
tcs = XmStringCreateLtoR("Text", XmFONTLIST_DEFAULT_TAG);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNlabelString, tcs); n++;
|
|
Packit |
b099d7 |
TextTB = XmCreateToggleButtonGadget(ChoiceRadioBox, "TextTB", args, n);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtManageChild(TextTB);
|
|
Packit |
b099d7 |
XmStringFree(tcs);
|
|
Packit |
b099d7 |
XtAddCallback(TextTB, XmNvalueChangedCallback, ChoiceCB,
|
|
Packit |
b099d7 |
(XtPointer) &Text2);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
tcs = XmStringCreateLtoR("Text Field", XmFONTLIST_DEFAULT_TAG);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNlabelString, tcs); n++;
|
|
Packit |
b099d7 |
TextFTB = XmCreateToggleButtonGadget(ChoiceRadioBox, "TextFTB", args, n);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtManageChild(TextFTB);
|
|
Packit |
b099d7 |
XmStringFree(tcs);
|
|
Packit |
b099d7 |
XtAddCallback(TextFTB, XmNvalueChangedCallback, ChoiceCB,
|
|
Packit |
b099d7 |
(XtPointer) &TextField1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
FindIfSupported(int style)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
unsigned short i;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for (i = 0; i < IM_style_count; i++)
|
|
Packit |
b099d7 |
if (InputStyle[i] == style)
|
|
Packit |
b099d7 |
return(TRUE);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return(FALSE);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Widget
|
|
Packit |
b099d7 |
CreatePushButton(Widget parent, char *label)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Widget widget;
|
|
Packit |
b099d7 |
register int n;
|
|
Packit |
b099d7 |
Arg args[MAX_ARGS];
|
|
Packit |
b099d7 |
XmString tcs;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
tcs = XmStringCreateLtoR(label, XmFONTLIST_DEFAULT_TAG);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
n = 0;
|
|
Packit |
b099d7 |
XtSetArg(args[n], XmNlabelString, tcs); n++;
|
|
Packit |
b099d7 |
widget = XmCreatePushButtonGadget(parent, label, args, n);
|
|
Packit |
b099d7 |
XtManageChild(widget);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmStringFree(tcs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return(widget);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
static Pixmap
|
|
Packit |
b099d7 |
MakePixmap(Widget toplevel, char bits[], int width, int height)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return (Pixmap)XCreatePixmapFromBitmapData(XtDisplay(toplevel),
|
|
Packit |
b099d7 |
DefaultRootWindow(XtDisplay(toplevel)),
|
|
Packit |
b099d7 |
bits,
|
|
Packit |
b099d7 |
width,
|
|
Packit |
b099d7 |
height,
|
|
Packit |
b099d7 |
BlackPixelOfScreen(XtScreen(toplevel)),
|
|
Packit |
b099d7 |
WhitePixelOfScreen(XtScreen(toplevel)),
|
|
Packit |
b099d7 |
DefaultDepthOfScreen(XtScreen(toplevel)));
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
BackgroundCB(Widget w, XtPointer client_data, XtPointer call_data)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Arg args[1];
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg(args[0], XmNbackground, CommonGetColor((char *) client_data));
|
|
Packit |
b099d7 |
XtSetValues(current_text, args, 1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
BackPixmapCB(Widget w, XtPointer client_data, XtPointer call_data)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Arg args[1];
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg(args[0], XmNbackgroundPixmap, *((Pixmap *) client_data));
|
|
Packit |
b099d7 |
XtSetValues(current_text, args, 1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ForegroundCB(Widget w, XtPointer client_data, XtPointer call_data)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Arg args[1];
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg(args[0], XmNforeground, CommonGetColor((char *) client_data));
|
|
Packit |
b099d7 |
XtSetValues(current_text, args, 1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ChoiceCB(Widget w, XtPointer client_data, XtPointer call_data)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Arg args[1];
|
|
Packit |
b099d7 |
unsigned char value;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg(args[0], XmNset, &value);
|
|
Packit |
b099d7 |
XtGetValues(w, args, 1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (value == XmSET)
|
|
Packit |
b099d7 |
current_text = * (Widget *) client_data;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
}
|