📄 test18.c
字号:
/* $Header: /cvsroot/lesstif/lesstif/test/Xm/misc/test18.c,v 1.4 2001/05/15 14:20:17 amai Exp $From: Ken Murchison <ken@oceana.com>To: lesstif@lesstif.orgSubject: Visual differences with MotifDate: Sat, 14 Nov 1998 05:12:57 +0000I have noticed a few visual differences between Lesstif and Motif thathave been around since at least 0.85, so I figured it was time to speakup. The three things that I have noticed are listed below and aredemonstrated in the attached code.1. Option menu behavior (see option menu)Motif: A click on the cascade button pops up the pulldown menu (notethat the cascade button does NOT stay depressed). A second click on thecascade button pops DOWN the pulldown menu.Lesstif: A click on the cascade button pops up the pulldown menu (notethat the cascade button stays depressed). A second click on the cascadebutton does nothing. You must either select an item in the menu orclick outside the widget to pop down the pulldown menu.2. Multi-line toggle button in a menu (see menubar)Motif: All toggle buttons in a menu are the same size regardless of thenumber of lines of text contained in the labels.Lesstif: The size of the toggle buttons is proportional to the number oflines of text contained in the labels.3. Multi-line toggle button (see checkboxes)Motif: The toggle button is top-justified with the first line of text inthe label.Lesstif: The toggle button is vertically centered w.r.t. the label text.I'll take a crack at fixing these things when I get time, but I'm surethey can be fixed fairly quickly by one of the core guys.Regards,Ken--Kenneth Murchison Oceana Matrix Ltd.Software Engineer 21 Princeton Placemailto:ken@oceana.com Orchard Park, NY 14127http://www.oceana.com 716-662-8973 x26*/#include <stdlib.h>#include <Xm/RowColumn.h>#include <Xm/MainW.h>#include <Xm/ScrolledW.h>#include <Xm/PushB.h>#include <Xm/ToggleB.h>#include <Xm/CascadeBG.h>#include "../../common/Test.h"intmain(int argc, char *argv[]){ Widget toplevel, main_w, rc, option_menu; Widget menubar, pulldown, cascade; XmString label, text0, text1, text2; XtAppContext app; XtSetLanguageProc (NULL, NULL, NULL); toplevel = XtVaAppInitialize (&app, "Lesstif Test", NULL, 0, &argc, argv, NULL, NULL); /* Create a MainWindow widget that contains a RowColumn * widget as its work window. */ main_w = XtVaCreateManagedWidget ("main_w", xmMainWindowWidgetClass, toplevel, NULL); rc = XtVaCreateWidget ("rowcol", xmRowColumnWidgetClass, main_w, NULL); /* Create a MenuBar and PulldownMenu with three ToggleButtons: * one with a single line label, one with a 2 line label, * and one with a 3 line label. */ label = XmStringCreateLocalized ("Pulldown"); menubar = XmVaCreateSimpleMenuBar (main_w, "menubar", XmVaCASCADEBUTTON, label, 'P', NULL); XmStringFree (label); text0 = XmStringCreateLocalized("1-line Toggle"); text1 = XmStringCreateLtoR("2-line\nToggle", XmFONTLIST_DEFAULT_TAG); text2 = XmStringCreateLtoR("3-\nline\nToggle", XmFONTLIST_DEFAULT_TAG); pulldown = XmVaCreateSimplePulldownMenu (menubar, "_pulldown", 0, 0, XmVaTOGGLEBUTTON, text0, '1', NULL, NULL, XmVaTOGGLEBUTTON, text1, '2', NULL, NULL, XmVaTOGGLEBUTTON, text2, '3', NULL, NULL, NULL); XtManageChild (menubar); /* Create three ToggleButtons: one with a single line label, * one with a 2 line label, and one with a three line label. */ XtVaCreateManagedWidget("tb0", xmToggleButtonWidgetClass, rc, XmNlabelString, text0, NULL); XmStringFree(text0); XtVaCreateManagedWidget("tb1", xmToggleButtonWidgetClass, rc, XmNlabelString, text1, NULL); XmStringFree(text1); XtVaCreateManagedWidget("tb2", xmToggleButtonWidgetClass, rc, XmNlabelString, text2, NULL); XmStringFree(text2); /* Create an OptionMenu with three PushButtons. */ label = XmStringCreateLocalized ("Option:"); text0 = XmStringCreateLocalized ("Opt 1"); text1 = XmStringCreateLocalized ("Opt 2"); text2 = XmStringCreateLocalized ("Opt 3"); option_menu = XmVaCreateSimpleOptionMenu (rc, "option_menu", label, 'O', 0 /*initial menu selection*/, 0, XmVaPUSHBUTTON, text0, '1', NULL, NULL, XmVaPUSHBUTTON, text1, '2', NULL, NULL, XmVaPUSHBUTTON, text2, '3', NULL, NULL, NULL); XmStringFree (text0); XmStringFree (text1); XmStringFree (text2); XmStringFree (label); XtManageChild (option_menu); XtManageChild (rc); XtRealizeWidget (toplevel); { static XtWidgetGeometry Expected[] = { CWWidth | CWHeight , 438, 364, 128, 183, 0,0,0, /* main_w */ CWWidth | CWHeight | CWX | CWY, 0, 31, 128, 152, 0,0,0, /* rowcol */ CWWidth | CWHeight | CWX | CWY, 3, 3, 122, 25, 0,0,0, /* tb0 */ CWWidth | CWHeight | CWX | CWY, 3, 31, 122, 34, 0,0,0, /* tb1 */ CWWidth | CWHeight | CWX | CWY, 3, 68, 122, 47, 0,0,0, /* tb2 */ CWWidth | CWHeight | CWX | CWY, 3, 118, 122, 31, 0,0,0, /* option_menu */ CWWidth | CWHeight | CWX | CWY, 3, 3, 46, 25, 0,0,0, /* OptionLabel */ CWWidth | CWHeight | CWX | CWY, 52, 3, 67, 25, 0,0,0, /* OptionButton */ CWWidth | CWHeight | CWX | CWY, 0, 0, 128, 31, 0,0,0, /* menubar */ CWWidth | CWHeight | CWX | CWY, 5, 5, 64, 21, 0,0,0, /* button_0 */};/* toplevel should be replaced with to correct applicationShell */PrintDetails(toplevel, Expected);}LessTifTestMainLoop(toplevel);exit(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -