⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test9.c

📁 安装DDD之前
💻 C
字号:
/* $Header: /cvsroot/lesstif/lesstif/test/Xm/xmstring/test9.c,v 1.6 2002/04/17 16:32:01 amai Exp $ *//*     To: lesstif@hungry.com     From: M.Mochol@elka.pw.edu.pl (Codematic)     Hi,     I have the lesstif-current (almost new - from a few days ago). What result      should be after this:     #include <Xm.h>     main()     {      XmString s1, s2;       s1 = XmStringCreateLtoR("ala ma pieska", "");      s2 = XmStringCreateLocalized("ala ma pieska"),       printf("%d\n", XmStringCompare(s1, s2));     }     In Lesstif this program prints 0, original Motif returns 1.     I think this is because in Lesstif XmStringCompare() uses     XmStringByteCompare(). So I wrote my own version XmStringCompare().     I found this bug while having problems with XmSelectionDialog. Below     are: test program and patch to XmString.c. Also I changed      _XmStringGetNextSegment(). When compound string does not contain direction     component, or component == XmSTRING_DIRECTION_DEFAULTS (0xff)- it returns     XmSTRING_DIRECTION_L_TO_R (0x0, not 0xff).     I hope you understand me, my English sucks :(     greetings     Codematic*/#include <stdlib.h>#include <stdio.h>#include <Xm/Xm.h>#include <Xm/PushB.h>#include <Xm/SelectioB.h>#include "../../common/Test.h"Widget toplevel;void AnyCB(Widget w, XtPointer client_data, XtPointer call_data){ /* Lesstif doesn't call this callback */ printf("AnyCB was called\n");}void CreateMySelectionDialog(XmStringTable item_names, int item_num,    XtCallbackProc OkCallback){ Widget		dialog; int		i; dialog = XmCreateSelectionDialog(toplevel, "selection", NULL, 0); XtVaSetValues(dialog, XmNmustMatch, True, NULL);  /* !!! *//* when unmanaged - AnyCB also was not called  XtUnmanageChild(XmSelectionBoxGetChild(dialog, XmDIALOG_APPLY_BUTTON)); XtUnmanageChild(XmSelectionBoxGetChild(dialog, XmDIALOG_SELECTION_LABEL)); XtUnmanageChild(XmSelectionBoxGetChild(dialog, XmDIALOG_TEXT));*/ XtVaSetValues(dialog,		XmNdialogStyle, XmDIALOG_FULL_APPLICATION_MODAL,		XmNlistItemCount, item_num,		XmNlistItems, item_names,		NULL); XtAddCallback(dialog, XmNokCallback, OkCallback, NULL); /* XtAddCallback(dialog, XmNcancelCallback, XtDestroyWidget, (XtPointer)0);*/ for (i = 0 ; i < item_num ; i++) XmStringFree(item_names[i]); XtFree((char*)item_names); XtManageChild(dialog); XtPopup(XtParent(dialog), XtGrabNone);}void ChangeWindefTitleParameterCB(Widget w, XtPointer client_data, XtPointercall_data){ XmStringTable		names; int			i;#define NUMBER 5 names = (XmString*)XtCalloc(NUMBER, sizeof(XmString)); for (i = 0 ; i < NUMBER ; i++)   names[i] = XmStringCreateLocalized("ala ma pieska"); CreateMySelectionDialog(names, NUMBER, AnyCB);}int main(int argc, char **argv){ XtAppContext app; Widget one; XmString s1, s2; int i;   toplevel = XtVaAppInitialize(&app, "test", NULL, 0, &argc, argv, NULL, NULL); one = XtVaCreateManagedWidget("Push me",        xmPushButtonWidgetClass,        toplevel, NULL);  XtAddCallback(one, XmNactivateCallback, ChangeWindefTitleParameterCB, NULL); XtRealizeWidget(toplevel); s1 = XmStringCreateLtoR("ala ma pieska", ""); s2 = XmStringCreateLocalized("ala ma pieska"); i = XmStringCompare(s1, s2); printf("%d\n", i); /* on original Motif should be 1 */ {    static XtWidgetGeometry Expected[] = {   CWWidth | CWHeight            ,   50,   50,   54,   25, 0,0,0, /* Push me */     };    PrintDetails( toplevel ,Expected);};   LessTifTestMainLoop( toplevel );      exit(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -