kochhar@endor.harvard.edu (Sandeep Kochhar) (03/18/90)
I have a client that creates two toplevel windows using the following sequence: toplevel = XtInitialize("main", "Demo", NULL, ZERO, &argc, argv); . . . Atoplevel = XtCreateApplicationShell("atop", topLevelShellWidgetClass, ...); . . . Btoplevel = XtCreateApplicationShell("atop", topLevelShellWidgetClass, ...); Here are my two questions: 1. I am having trouble specifying resources for the Atop and Btop widgets separately. e.g. -xrm '*font: courb12' makes all the fonts in Atop's subwindows and Btop's subwindows courb12. However, if I want, say courb12 in A and 9x15 in B, I tried -xrm '*atop*font:courb12' -xrm '*btop*font:9x15' but nothing happened. What's the way to include atop and btop in the resource hierarchy? 2. In the topLevelShellWidgetClass widget (e.g. Atoplevel above), if I set the XtNgeometry resource to "+100+100", the windows show up at (100,100) as I expected. However, I couldn't get the windows to show up at (100,100) using XtNx and XtNy alone. Here's my question: why does XtNgeometry work, but XtNx and XtNy don't? Thanks Sandeep Kochhar (617) 495-3988 mail: kochhar@harvard.harvard.edu Harvard University kochhar@harvard.csnet 33 Oxford st, kochhar@harvard.uucp Cambridge, MA 02138 kochhar@harvard.bitnet Fax: (617) 495-9837
asente@decwrl.dec.com (Paul Asente) (03/18/90)
In article <2253@husc6.harvard.edu> kochhar@endor.harvard.edu (Sandeep Kochhar) writes: >I have a client that creates two toplevel windows using the following >sequence: > > toplevel = XtInitialize("main", "Demo", NULL, ZERO, &argc, argv); > ... > Atoplevel = XtCreateApplicationShell("atop", topLevelShellWidgetClass, ...); > ... > Btoplevel = XtCreateApplicationShell("atop", topLevelShellWidgetClass, ...); >Here are my two questions: > >1. I am having trouble specifying resources for the Atop and Btop widgets > separately. e.g. -xrm '*font: courb12' makes all the fonts in Atop's > subwindows and Btop's subwindows courb12. However, if I want, say > courb12 in A and 9x15 in B, I tried > -xrm '*atop*font:courb12' -xrm '*btop*font:9x15' > but nothing happened. What's the way to include atop and btop > in the resource hierarchy? Unless you are doing something like writing a window manager, shells created through XtAppCreateShell (the newer version of XtCreateApplicationshell) should be application shells. What you probably should be doing is using XtCreatePopupShell and make the shells children of your initial shell (from XtInitialize). XtAppCreateShell creates an entirely new widget hierarchy, and only application shells work really well as the root of a widget hierarchy. >2. In the topLevelShellWidgetClass widget (e.g. Atoplevel above), if > I set the XtNgeometry resource to "+100+100", the windows show up > at (100,100) as I expected. However, I couldn't get the windows > to show up at (100,100) using XtNx and XtNy alone. Here's my > question: why does XtNgeometry work, but XtNx and XtNy don't? Probably it's your window manager. If you specify a geometry with XtNgeometry, the toolkit sets the USize and/or UPosition flags, indicating that the user specified the geometry. If you use XtNx, XtNy, XtNwidth, and/or XtNheight, the toolkit sets the PSize and/or PPosition flags, indicating that the program specified the geometry. Window managers often threat these two cases differently, respecting user-set geometries but asking the user for the geometry or putting the window in some default place if the program specified the geometry. In general the right thing to do is for programs to use XtNx and XtNy, and to leave XtNgeometry for the user's command line or .Xdefaults file. -paul asente asente@decwrl.dec.com decwrl!asente