📄 test3.c
字号:
event->xproperty.state == PropertyNewValue ? "PropertyNewValue" : "PropertyDelete"); ReadMotifDragWindowId(label); }}static WidgetCreateRootProperties(Widget parent){Widget Frame;Widget Label;Widget DummyLabel;Window DummyLabelWindow; Frame = XmCreateFrame(parent, "RootPropertiesFrame", NULL, 0); Label = XmCreateLabel(Frame, "RootWindowProperties", NULL, 0); XtVaSetValues(Label, XmNchildType, XmFRAME_TITLE_CHILD, NULL); XtManageChild(Label); Label = XmCreateLabel(Frame, "MotifDragWindowId", NULL, 0); ReadMotifDragWindowId(Label); XtManageChild(Label); XtRegisterDrawable(XtDisplay(Frame), DefaultRootWindow(XtDisplay(parent)), Frame); XtAddEventHandler(Frame, PropertyChangeMask, False, (XtEventHandler)RootWindowPropertyNotifyHandler, Label); return(Frame);}static voidDragWindowPropertyNotifyHandler(Widget w, Widget label, XEvent *event){String AtomName = XGetAtomName(XtDisplay(w), event->xproperty.atom); printf("DragWindowPropertyNotifyHandler() - %s %s\n", event->xproperty.state == PropertyNewValue ? "PropertyNewValue" : "PropertyDelete", AtomName); XtFree(AtomName); ReadMotifDragWindowProperties(label);}static WidgetCreateDragTargets(Widget parent){Widget Frame;Widget Label;Widget Form;Widget ByteOrder;Widget Version;Widget NumTargetLists;Widget TargetTableSize; Frame = XmCreateFrame(parent, "DragTargetsFrame", NULL, 0); Label = XmCreateLabel(Frame, "_MOTIF_DRAG_TARGETS", NULL, 0); XtVaSetValues(Label, XmNchildType, XmFRAME_TITLE_CHILD, NULL); XtManageChild(Label); Form = XmCreateForm(Frame, "DragTargetsForm", NULL, 0); ByteOrder = XmCreateLabel(Form, "ByteOrder", NULL, 0); XtVaSetValues(ByteOrder, XmNtopAttachment, XmATTACH_FORM, XmNleftAttachment, XmATTACH_FORM, NULL); XtManageChild(ByteOrder); Version = XmCreateLabel(Form, "Version", NULL, 0); XtVaSetValues(Version, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, ByteOrder, XmNleftAttachment, XmATTACH_FORM, NULL); XtManageChild(Version); NumTargetLists = XmCreateLabel(Form, "NumTargetLists", NULL, 0); XtVaSetValues(NumTargetLists, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, Version, XmNleftAttachment, XmATTACH_FORM, NULL); XtManageChild(NumTargetLists); TargetTableSize = XmCreateLabel(Form, "TargetTableSize", NULL, 0); XtVaSetValues(TargetTableSize, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, NumTargetLists, XmNleftAttachment, XmATTACH_FORM, NULL); XtManageChild(TargetTableSize); /* now the actual target table */ XtManageChild(Form); return(Frame);}static WidgetCreateDragAtoms(Widget parent){Widget Frame;Widget Label;Widget Form;Widget ByteOrder;Widget Version;Widget NumAtoms; Frame = XmCreateFrame(parent, "DragAtomsFrame", NULL, 0); Label = XmCreateLabel(Frame, "_MOTIF_DRAG_ATOMS", NULL, 0); XtVaSetValues(Label, XmNchildType, XmFRAME_TITLE_CHILD, NULL); XtManageChild(Label); Form = XmCreateForm(Frame, "DragAtomsForm", NULL, 0); ByteOrder = XmCreateLabel(Form, "ByteOrder", NULL, 0); XtVaSetValues(ByteOrder, XmNtopAttachment, XmATTACH_FORM, XmNleftAttachment, XmATTACH_FORM, NULL); XtManageChild(ByteOrder); Version = XmCreateLabel(Form, "Version", NULL, 0); XtVaSetValues(Version, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, ByteOrder, XmNleftAttachment, XmATTACH_FORM, NULL); XtManageChild(Version); NumAtoms = XmCreateLabel(Form, "NumAtoms", NULL, 0); XtVaSetValues(NumAtoms, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, Version, XmNleftAttachment, XmATTACH_FORM, NULL); XtManageChild(NumAtoms); /* now for the atoms */ XtManageChild(Form); return(Frame);}static WidgetCreateDragAtomPairs(Widget parent){Widget Frame;Widget Label;Widget Form;Widget ByteOrder;Widget Version; Frame = XmCreateFrame(parent, "DragAtomPairsFrame", NULL, 0); Label = XmCreateLabel(Frame, "_MOTIF_DRAG_ATOM_PAIRS", NULL, 0); XtVaSetValues(Label, XmNchildType, XmFRAME_TITLE_CHILD, NULL); XtManageChild(Label); Form = XmCreateForm(Frame, "DragAtomPairsForm", NULL, 0); ByteOrder = XmCreateLabel(Form, "ByteOrder", NULL, 0); XtVaSetValues(ByteOrder, XmNtopAttachment, XmATTACH_FORM, XmNleftAttachment, XmATTACH_FORM, NULL); XtManageChild(ByteOrder); Version = XmCreateLabel(Form, "Version", NULL, 0); XtVaSetValues(Version, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, ByteOrder, XmNleftAttachment, XmATTACH_FORM, NULL); XtManageChild(Version); /* now for the atom pairs */ XtManageChild(Form); return(Frame);}static WidgetCreateDragProperties(Widget parent){Widget Frame;Widget Label;Widget DummyLabel;Widget Form;Widget DragTargets;Widget DragAtoms;Widget DragAtomPairs;Window DummyLabelWindow; /* _MOTIF_DRAG_TARGETS _MOTIF_DRAG_ATOMS _MOTIF_DRAG_ATOM_PAIRS */ Frame = XmCreateFrame(parent, "DragPropertiesFrame", NULL, 0); Label = XmCreateLabel(Frame, "DragWindowProperties", NULL, 0); XtVaSetValues(Label, XmNchildType, XmFRAME_TITLE_CHILD, NULL); XtManageChild(Label); Form = XmCreateForm(Frame, "DragWindowPropertiesForm", NULL, 0); DragTargets = CreateDragTargets(Form); XtVaSetValues(DragTargets, XmNtopAttachment, XmATTACH_FORM, XmNleftAttachment, XmATTACH_FORM, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); XtManageChild(DragTargets); DragAtoms = CreateDragAtoms(Form); XtVaSetValues(DragAtoms, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, DragTargets, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); XtManageChild(DragAtoms); DragAtomPairs = CreateDragAtomPairs(Form); XtVaSetValues(DragAtomPairs, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, DragAtoms, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); XtManageChild(DragAtomPairs); XtManageChild(Form); ReadMotifDragWindowProperties(Form); XSelectInput(XtDisplay(Frame), MotifDragWindowId, PropertyChangeMask); XtRegisterDrawable(XtDisplay(Frame), MotifDragWindowId, Frame); XtAddEventHandler(Frame, PropertyChangeMask, False, (XtEventHandler)DragWindowPropertyNotifyHandler, Form); return(Frame);}static WidgetCreateWorkWindow(Widget parent){Widget Form;Widget RootWindowProperties;Widget DragWindowProperties; Form = XmCreateForm(parent, "WorkWindow", NULL, 0); RootWindowProperties = CreateRootProperties(Form); XtVaSetValues(RootWindowProperties, XmNtopAttachment, XmATTACH_FORM, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); XtManageChild(RootWindowProperties); DragWindowProperties = CreateDragProperties(Form); XtVaSetValues(DragWindowProperties, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, RootWindowProperties, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); XtManageChild(DragWindowProperties); return(Form);}intmain(int argc, char **argv){ XtAppContext app; Widget Shell; Widget MainWindow; Widget MenuBar; Widget WorkWindow; XtSetLanguageProc(NULL, NULL, NULL); Shell = XtVaAppInitialize(&app, "Shell", NULL, 0, &argc, argv, FallBack, NULL); MainWindow = XmCreateMainWindow(Shell, "MainWindow", NULL, 0); MenuBar = CreateMenuBar(MainWindow); XtManageChild(MenuBar); WorkWindow = CreateWorkWindow(MainWindow); XtManageChild(WorkWindow); XtManageChild(MainWindow); XtRealizeWidget(Shell); LessTifTestMainLoop(Shell); exit(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -