📄 test16.c
字号:
/* $Header: /cvsroot/lesstif/lesstif/test/Xm/misc/test16.c,v 1.23 2002/05/03 12:03:41 amai Exp $ */#include <stdlib.h>#include <stdio.h>#include <ctype.h>#include <string.h>#ifdef LesstifVersion# define DISPLAY# define DESKTOP# define PROTOCOL# define SCREEN# define SHELL# define WORLD#elif XmVERSION > 1# define DISPLAY# define DESKTOP# define SCREEN#else# define DISPLAY# define DESKTOP# define PROTOCOL# define SCREEN# define SHELL# define WORLD#endif#include <Xm/ArrowBP.h>#include <Xm/ArrowBGP.h>#include <Xm/BulletinBP.h>#include <Xm/CascadeBP.h>#include <Xm/CascadeBGP.h>#include <Xm/CommandP.h>#include <Xm/DesktopP.h>#include <Xm/DialogSP.h>#include <Xm/DialogSEP.h>#ifdef DISPLAY#include <Xm/DisplayP.h>#endif#ifdef SCREEN#include <Xm/ScreenP.h>#endif#ifdef SHELL#include <Xm/ShellEP.h>#endif#include <Xm/DragCP.h>#include <Xm/DragIconP.h>#include <Xm/DragOverSP.h>#include <Xm/DrawingAP.h>#include <Xm/DrawnBP.h>#include <Xm/DropSMgrP.h>#include <Xm/DropTransP.h>#include <Xm/ExtObjectP.h>#include <Xm/FileSBP.h>#include <Xm/FormP.h>#include <Xm/FrameP.h>#include <Xm/LabelP.h>#include <Xm/LabelGP.h>#include <Xm/ListP.h>#include <Xm/MainWP.h>#include <Xm/MenuShellP.h>#include <Xm/MessageBP.h>#include <Xm/PanedWP.h>#include <Xm/ProtocolsP.h>#include <Xm/PushBP.h>#include <Xm/PushBGP.h>#include <Xm/RowColumnP.h>#include <Xm/SashP.h>#include <Xm/ScaleP.h>#include <Xm/ScrollBarP.h>#include <Xm/ScrolledWP.h>#include <Xm/SelectioBP.h>#include <Xm/SeparatoGP.h>#include <Xm/SeparatorP.h>#include <Xm/ShellEP.h>#include <Xm/TearOffBP.h>#include <Xm/TextP.h>#include <Xm/TextFP.h>#include <Xm/ToggleBP.h>#include <Xm/ToggleBGP.h>#include <Xm/VendorSP.h>#include <Xm/VendorSEP.h>#ifdef WORLD#include <Xm/WorldP.h>#endif#include <Xm/XmP.h>static const char rcsid[] = "$Header: /cvsroot/lesstif/lesstif/test/Xm/misc/test16.c,v 1.23 2002/05/03 12:03:41 amai Exp $";typedef struct _SavedItem{ String class; String name; XtPointer addr;} SavedItem;static SavedItem *SavedActions = NULL;static int NumSavedActions = 0;/* Motif does not seem to have thisextern WidgetClass xmTextInnerObjectClass;*/static char *ClassRec2String(WidgetClass class);static void SaveItem(String class, String name, XtPointer addr){ NumSavedActions++; SavedActions = (SavedItem *)XtRealloc((char *)SavedActions, NumSavedActions * sizeof(SavedItem)); SavedActions[NumSavedActions - 1].class = XtNewString(class); SavedActions[NumSavedActions - 1].name = XtNewString(name); SavedActions[NumSavedActions - 1].addr = addr;}static char *Resource2String(XtResource *resource){static char buf[1000]; if (strcmp("CallProc",resource->default_type) == 0) { sprintf(buf,"_Xm%sDefault", resource->resource_class); SaveItem(resource->default_type, buf, resource->default_addr); return(buf); } else if (strcmp("Pointer",resource->default_type) == 0) { if (resource->default_addr == NULL) { return("NULL"); } else { sprintf(buf,"_Xm%s", resource->resource_name); SaveItem(resource->default_type, buf, resource->default_addr); return(buf); } } else if (strcmp("Callback",resource->default_type) == 0) { if (resource->default_addr == NULL) { return("NULL"); } else { sprintf(buf,"_Xm%s", resource->resource_name); return(buf); } } else if (strcmp("MenuWidget",resource->default_type) == 0) { if (resource->default_addr == NULL) { return("NULL"); } else { sprintf(buf,"_Xm%sMenuWidget", resource->resource_name); return(buf); } } else if (strcmp("XmString",resource->default_type) == 0) { if (resource->default_addr == NULL) { return("NULL"); } else { sprintf(buf,"_Xm%sXmString", resource->resource_name); return(buf); } } else if (strcmp("XmStringTable",resource->default_type) == 0) { if (resource->default_addr == NULL) { return("NULL"); } else { sprintf(buf,"_Xm%sXmStringTable", resource->resource_name); return(buf); } } else if (strcmp("StringTable",resource->default_type) == 0) { if (resource->default_addr == NULL) { return("NULL"); } else { sprintf(buf,"_Xm%sXmStringTable", resource->resource_name); return(buf); } } else if (strcmp("String",resource->default_type) == 0) { if (resource->default_addr == NULL) { return("NULL"); } else { sprintf(buf,"\"%s\"",resource->default_addr); return(buf); } } else if (strcmp("Boolean",resource->default_type) == 0) { return(resource->default_addr ? "True" : "False"); } else if (strcmp("FontList",resource->default_type) == 0) { if (resource->default_addr == NULL) { return("NULL"); } else { sprintf(buf,"_Xm%sFontList /* FIX ME */",resource->resource_name); return(buf); } } else if (strcmp("Pixmap",resource->default_type) == 0) { if (resource->default_addr == NULL) { return("NULL"); } else { sprintf(buf,"_Xm%sPixmap /* FIX ME */",resource->resource_name); return(buf); } } else if (strcmp("Function",resource->default_type) == 0) { if (resource->default_addr == NULL) { return("NULL"); } else { sprintf(buf,"_Xm%sFunction",resource->resource_class); SaveItem(resource->default_type, buf, resource->default_addr); return(buf); } } else if (strcmp("WidgetList",resource->default_type) == 0) { if (resource->default_addr == NULL) { return("NULL"); } else { sprintf(buf,"_Xm%sWidgetList /* FIX ME */",resource->resource_name); return(buf); } } else if (strcmp("WidgetClass",resource->default_type) == 0) { if (resource->default_addr == NULL) { return("NULL"); } else { sprintf(buf,"_Xm%sWidgetClass /* FIX ME */",resource->resource_name); return(buf); } } else if (strcmp("Orientation",resource->default_type) == 0) { if (resource->default_addr == (XtPointer)XmHORIZONTAL) { return("XmHORIZONTAL"); } else if (resource->default_addr == (XtPointer)XmVERTICAL) { return("XmVERTICAL"); } else { sprintf(buf,"_Xm%sOrientation /* FIX ME */",resource->resource_name); return(buf); } } else if (strcmp("Int",&resource->default_type[strlen(resource->default_type) - strlen("Int")]) == 0) { sprintf(buf,"%i",resource->default_addr); return(buf); } else if (strcmp("Immediate",resource->default_type) == 0) { if (strcmp("Boolean",resource->resource_type) == 0) { return(resource->default_addr ? "True" : "False"); } else if (strcmp("WidgetClass",resource->resource_type) == 0) { if (resource->default_addr == NULL) { return("NULL"); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -