<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        font-size:10.5pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:9.0pt;
        font-family:宋体;}
/* Page Definitions */
@page Section1
        {size:595.3pt 841.9pt;
        margin:72.0pt 126.65pt 72.0pt 126.65pt;
        layout-grid:15.6pt;}
div.Section1
        {page:Section1;}
-->
</style>
</head>
<body lang=ZH-CN link=blue vlink=purple style='text-justify-trim:punctuation'>
<div class=Section1 style='layout-grid:15.6pt'>
<p class=MsoPlainText><font size=1 face=宋体><span style='font-size:9.0pt'> <span
lang=EN-US>"I have met the problems some application with a transparent
window can run<u> on maemo successfully</u>, but they will present on maemo
with a gray window."<o:p></o:p></span></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>Sorry for my mistake, I was going to say that," I have met the
problems some application with a transparent window can <font color=red><span
style='color:red'>run on PC(out of scratchbox) successfully</span></font>, but
they will present on maemo with a gray window." <o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>-----Original Message-----<br>
From: <st1:PersonName w:st="on">Jun Xu</st1:PersonName> <br>
Sent: 2008</span>年<span lang=EN-US>10</span>月<span lang=EN-US>27</span>日<span
lang=EN-US> 18:05<br>
To: 'Martin Grimme'<br>
Cc: maemo-developers@maemo.org<br>
Subject: RE: how to set gtk widget translucent</span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>Hi;<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>Thanks for your suggestion. I have notice that you wrote twice the words
"cannot do this on maemo", that's too bad, but I hope strongly my
application can run on maemo. I have met the problems some application with a
transparent window can run on maemo successfully, but they will present on
maemo with a gray window. That is so bad state I want not to happen. So do you
have any ideas?<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>Thanks!<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>-----Original Message-----<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>From: Martin Grimme [mailto:martin.grimme@gmail.com] <o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>Sent: 2008</span>年<span lang=EN-US>10</span>月<span lang=EN-US>27</span>日<span
lang=EN-US> 16:07<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>To: <st1:PersonName w:st="on">Jun Xu</st1:PersonName><o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>Cc: maemo-developers@maemo.org<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>Subject: Re: how to set gtk widget translucent<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>Hi,<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>there are different sorts of GTK widgets. Some widgets simply draw on<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>their parent window, and some widgets (those that can receive user<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>events) draw on their own low-level window.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>The widgets with their own windows (e.g. GtkButton, GtkEntry) are<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>opaque and completely hide what's behind. However, you can punch holes<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>into their shape (gtk_widget_shape_combine_mask) to reveal what's<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>behind. Alpha blending is not possible though. So, this wouldn't work<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>with your findbar idea.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>Windowless widgets (e,g, GtkImage, GtkLabel) can be composed on top of<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>each other and support alpha blending just fine. Your findbar needs<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>text input, so it's not a windowless window.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>On modern Linux desktops (but not on the current maemo) you can also<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>use an RGBA colorspace to draw onto the window. The composition<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>manager then blends the window according to the alpha pixel values.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>This would be the perfect solution for your findbar, as the bar could<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>be implemented as another toplevel window layered above your<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>application window. However, you can't do this on maemo.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>I suggest looking into GtkStyle to change the background image of the<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>GtkEntry widget. You can grab the screen contents, dim it, and paste<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>into the entry widget. This would create the illusion of translucency.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>Regards,<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>Martin<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>2008/10/27, <st1:PersonName w:st="on">Jun Xu</st1:PersonName>
<Jun.Xu@plenware.com>:<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>> Hi, All,<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>> I want to add a gtk widget on top of another gtk widget, and then
set<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>> Alpha value to the widget above, make it translucent. for example,
I<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>> want to add a translucent findbar on a window. I have tried kinds
of way<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>> to do that, however, there is no any available means that can
perform<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>> the special effect. So, if you have any good idea, share me PLS. if
any<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>> sample, that will be delicious:-)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>> Looking forwards to anyone's help.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=宋体><span lang=EN-US style='font-size:
9.0pt'>><o:p> </o:p></span></font></p>
</div>
</body>
</html>