[comp.windows.x.motif] clientDecorations

wws@rruxc.UUCP (Wayne Scott) (12/07/90)

Do anyone know if there's a way to make windows "fixed (unmovable)" on a
display?  I've been able to get rid of the boxes on the title bar, but
I can't eliminate the behavior that when I click on the title bar I
can still drag the window.  I don't want my users to be able to move windows.

Also, how can I eliminate the frame components from the main window,
but still have them (title bar, menu, resize stuff) appear on windows
that are popped up as children of the main window?  It seems that
whatever I take away from the parent also gets taken away from its
children.

Thanks,
Wayne
-----
-- 
wws@bcr.cc.bellcore.com       |  I don't have to be ashamed of the car I drive,
proud owner/driver of a       |  I'm just glad to be here, happy to be alive.
*16 Valve* '74 Plymouth Wagon |          - The Traveling Wilburys (Tom Petty)
> 196,000 miles + ~90/day     |          - End of the Line

aw@bae.bae.bellcore.com (Andrew Wason) (12/08/90)

In article <449@rruxc.UUCP>, wws@rruxc.UUCP (Wayne Scott) writes:
> 
> Do anyone know if there's a way to make windows "fixed (unmovable)" on a
> display?  I've been able to get rid of the boxes on the title bar, but
> I can't eliminate the behavior that when I click on the title bar I
> can still drag the window.  I don't want my users to be able to move windows.

This seems very antisocial, but if you must do it you could
use an OverrideShell.  This would work with any window manager
(since it bypasses the window manager), while removing
various mwm decorations will only work for mwm.

Andrew

--------------------------------------------------------------------------------
Andrew Wason                                        Bell Communications Research
aw@cellar.bae.bellcore.com                          Piscataway, NJ
bellcore!cellar!aw

pasturel@sctc.com (Pierre Pasturel) (12/08/90)

>Do anyone know if there's a way to make windows "fixed (unmovable)" on a
>display?  I've been able to get rid of the boxes on the title bar, but
>I can't eliminate the behavior that when I click on the title bar I
>can still drag the window.  I don't want my users to be able to move windows.

Being new to motif, I don't know if there is a way to still have your frame
but not allow the user to move it (the VendorShell XmInputModal resource????).
I would like to know if someone out there can tell us.

Getting rid of your frame all together 
will solve the problem if you can do without it. I created a demo where I
don't want the person running it to be able to moving the windows. At first
I wanted the frame to have the frame title to show the user what the window 
was, but I ended up getting rid of the frame and using an XmLabel to label 
each of my windows. Having an XmLabel allowed me to select its color, font,
etc... easily, and with no frame, the user can't move the window.

To do this, I have this in my defaults file:

Mwm*XmTPT2.clientDecoration:		none	

where XmTPT2 is the class name I use to create 
application shells whose windows I don't want a frame.
        
>Also, how can I eliminate the frame components from the main window,
>but still have them (title bar, menu, resize stuff) appear on windows
>that are popped up as chldrena of the main window?  It seems that
>whatever I take away from the parent also gets taken away from its
>children.
The children are inheriting the decorations from the parent I assume.

This is probably not the best way, but .......
There is an Mwm resource called transientDecoration which you can set for
transient windows (e.g. short lived windows like dialog windows). You can
only set it globally for all transient windows (ie. you can not specify
this resource for a specific transient window).

I have also noticed an XmNmwmDecorations VendorShell resource to set the
decoration flags of MWM_HINTS for the window frame, but I haven't found
a table listing the fields of MWM_HINTS to know what value I need to
set XmNmwmDecorations to.

Does anyone know what values are used to set this resource to select
given decorations???

>Thanks,
>Wayne

Pierre
pasturel@sctc.com

pjs@euclid.jpl.nasa.gov (Peter Scott) (12/08/90)

>Getting rid of your frame all together 
>will solve the problem if you can do without it. I created a demo where I
>don't want the person running it to be able to moving the windows. At first
>I wanted the frame to have the frame title to show the user what the window 
>was, but I ended up getting rid of the frame and using an XmLabel to label 
>each of my windows. Having an XmLabel allowed me to select its color, font,
>etc... easily, and with no frame, the user can't move the window.

I defined a key binding in my .mwmrc to deal with windows that
I don't have decorated... it pops up the window menu so I can
select "Move".  I'd be interested to see a *really* foolproof
un-moveable window.

-- 
This is news.  This is your       |    Peter Scott, NASA/JPL/Caltech
brain on news.  Any questions?    |    (pjs@euclid.jpl.nasa.gov)

aw@bae.bae.bellcore.com (Andrew Wason) (12/08/90)

In article <1990Dec7.184609.7516@sctc.com>, pasturel@sctc.com (Pierre Pasturel) writes:
> >Do anyone know if there's a way to make windows "fixed (unmovable)" on a
> Getting rid of your frame all together 
> will solve the problem if you can do without it.

This won't always work.  Under mwm, the user could have bound f.move
to a mouse button so the window could be moved even though it
doesn't have a frame.  Also, if the user isn't using mwm, you're out of luck.

Andrew

--------------------------------------------------------------------------------
Andrew Wason                                        Bell Communications Research
aw@cellar.bae.bellcore.com                          Piscataway, NJ
bellcore!cellar!aw

pasturel@sctc.com (Pierre Pasturel) (12/08/90)

>In article <1990Dec7.184609.7516@sctc.com>, pasturel@sctc.com (Pierre Pasturel\
) writes:
>> >Do anyone know if there's a way to make windows "fixed (unmovable)" on a
>> Getting rid of your frame all together
>> will solve the problem if you can do without it.

>This won't always work.  Under mwm, the user could have bound f.move
>to a mouse button so the window could be moved even though it
>doesn't have a frame.  Also, if the user isn't using mwm, you're out of luck.

>Andrew


Ok, right.

Do you know how to use the XmNmwmDecorations resource of the VendorShell
to set frame resources?? Specifically, what does MWM_HINTS contain as
fields and what values have to be set to XmNmwmDecorations to make
certain window frame decorations appear????

My OSF/Motif 1.0 paper back docs do not contain a description of MWM_HINTS,
only WM_HINTS, which describe fields for icon appearence and position.

I would appreciate all input on this.

Thanks
Pierre
pasturel@sctc.com

marbru@attc.UUCP (Martin Brunecky) (12/11/90)

In article <1990Dec7.220309.8878@sctc.com> pasturel@sctc.com (Pierre Pasturel) writes:
>
>My OSF/Motif 1.0 paper back docs do not contain a description of MWM_HINTS,
>only WM_HINTS, which describe fields for icon appearence and position.
>
>I would appreciate all input on this.
>
   You can find those bits and fields in mwm.h. However, in Motif 1.0,
   the code dealing with decorations bits and menu bits was badly
   broken both in Vendor.c (vendor shell) and in Mwm. Plus, it nowhere
   said what the lowest bit (..ALL..) means...
   So, unless you REALLY desperately need to make it work under 1.0,
   I'd suggest to wait till you can use 1.1 (which seems to be fixed).

   If you really need to make it kind-of-work with Motif 1.0, I have
   about 40 lines of application code I can mail you (it would be easier
   to fix Motif code, but we have the rule "we don't fix Motif").



-- 
=*= Opinions presented here are solely of my own and not those of Auto-trol =*=
Martin Brunecky                           {...}sunpeaks!auto-trol!marbru
(303) 252-2499                        (sometimes also:  marbru@auto-trol.COM )
Auto-trol Technology Corp. 12500 North Washington St., Denver, CO 80241-2404