Yen-Ju Chen wrote: > Shadow and translucency is not supported in GNUstep, > but we have a way to do so in Etoile. > Here is a screenshot: > https://mail.gna.org/public/etoile-discuss/2007-08/pngcVHU5SBJso.png > > In order to achieve this visual effect, GNUstep has to implement these > missing part: > > First, for – setHasShadow: and -hasShadow in NSWindow, > GNUstep has to push it into backend. > Since there is no EWMH standard for shadow, > GNUstep can probably add it in _GNUSTEP_WM_ATTR, > just like GSDocumentEditedFlag. > - invalidateShadow has no effect on X because shadow is always calculated. >
I just googled for X11 shadow handling and found that there has been an atom in use for this for some time: _KDE_WM_WINDOW_SHADOW. Recently this seems to get replaced by _NET_WM_WINDOW_SHADOW, but this still isn't very common. Which one should we choose? I would go for the later one and hope for window managers to catch up. > Second, for – setAlphaValue, -alphaValue, -setOpaque, -opaque, > GNUstep has it, but the number in backend is not right if I remember > it correctly. > There is a non-offficial EWMH property for that: > _NET_WM_WINDOW_OPACITY (opaque is 0xffffffff) > As long as GNUstep can push this property, like what it does on window level > (XGServerwindow -setwindowlevel:) with XChangeProperty() and XSendEvent(), > then we probably can make it work. > But I think the first thing is to be sure the correct alpha value is > passed to backend. > GNUstep has supported this property for a long time already. I just looked through the code of other projects and there seems to be a small change in the way it gets used, you now have to send a message instead of changing the property directly. I will adopt our code to this. And maybe add some more of the new NET_WM stuff as well... > Because it involes the intergration between gui and back, I cannot > provide a patch. > If anyone who knows the interface between gui and back can do it > and push the correct values into backend, I can help from that. > Since both of these properties (alpha and translucency) are not in > EWMH standard, > it should not have effect on other window manager. > In another word, it will not break anything. > > By the way, -setAlphaValue: seems to change the translucency of the > whole window. > If I want to have a transparent background but opaque foreground, > how do I do it with GNUstep/Cocoa ? > For example, some terminal emulator has transparent background, but > the text is opaque. > I don't see how it can be done with standard GNUstep/Cocoa methods. _______________________________________________ Discuss-gnustep mailing list Discuss-gnustep@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnustep