I'll reply to all 3 messages at once: you're doing a great job; exactly what I 
would do. Please submit a patch. :-) 


Regards, 

Dave 

---------------------------------------------------------------------- 

Message: 1 
Date: Mon, 26 Feb 2007 20:57:49 +0100 
From: Andr? Dietisheim <[EMAIL PROTECTED]> 
Subject: Re: [nebula-dev][compositeTable] per-column color 
paintListener 
To: Nebula Dev <[email protected]> 
Message-ID: <[EMAIL PROTECTED]> 
Content-Type: text/plain; charset=utf-8 

Hi Dave 

thanks for the hint! I posted the shots to flickr.com: 

http://www.flickr.com/photos/[EMAIL PROTECTED]/ 

I thought of putting this stuff to the snippets or maybe to a utility 
class (RowCompositeUtils.attachBackgroundPainter(Control control)?). 
That would keep full freedom in choosing row-objects. 
I developed that stuff on GTK+ (at home :-)) and I'll check tomorrow on 
windows (at work) if everything's fine in redmond land. 

to resume up things, here once more (for the list) the reason for this 
stuff: 

Screenshot1 shows that a text control does not take the whole vertical 
space in a column (same applies to checkboxes) if there are combos and 
buttons in the same row. If you put the background-color to the 
text-control only, it looks very ugly. It is no solution to stretch the 
text-control to fit to the vertical size of the row. Text control 
vertical align text to the top. 

Screenshot2 shows the results after appending my little paintListener. I 
fill the 'column'-area in the row with the same color as the control. 
Things look now right! 


Control rowControl = control.getParent(); 
rowControl.addPaintListener(new PaintListener() { 

public void paintControl(PaintEvent e) { 
Color initialBackground = e.gc.getBackground(); 
e.gc.setBackground(control.getBackground()); 
Control rowControl = ((Control) e.widget); 
Rectangle cellBounds = control.getBounds(); 
Rectangle bounds = new Rectangle( 
cellBounds.x, 
0, 
cellBounds.width, 
rowControl.getBounds().height); 
e.gc.fillRectangle(bounds); 
e.gc.setBackground(initialBackground); 
} 
}); 

Thanks for your feedback!! 
Andr�� 




------------------------------ 

Message: 2 
Date: Tue, 27 Feb 2007 09:54:28 +0100 (CET) 
From: " Andr? Dietisheim " <[EMAIL PROTECTED]> 
Subject: Re: [nebula-dev][compositeTable] per-column color 
paintListener 
To: <[email protected]> 
Message-ID: 
<[EMAIL PROTECTED]> 
Content-Type: text/plain; charset=iso-8859-1 

Hi Dave 

You're completely right with your guess that things break on windows. 
Controls do not have the right color initialized - in other words: 
controls look white but you get gray when you call getBackground(). In 
cosequence my paintListener only works if you set background explicitly. 
Is in a bug in the win32 SWT implementation (the java layer does not 
reflect the real widget state) or is it a feature of the platform ;-) ? 
I think it has to stay in the snippets rather than being called in 
CompositeTable after replicating a row (which would have been neat). 

Regards 
Andr� 

> Hi Dave 
> 
> thanks for the hint! I posted the shots to flickr.com: 
> 
> http://www.flickr.com/photos/[EMAIL PROTECTED]/ 
> 
> I thought of putting this stuff to the snippets or maybe to a utility 
> class (RowCompositeUtils.attachBackgroundPainter(Control control)?). 
> That would keep full freedom in choosing row-objects. 
> I developed that stuff on GTK+ (at home :-)) and I'll check tomorrow on 
> windows (at work) if everything's fine in redmond land. 
> 
> to resume up things, here once more (for the list) the reason for this 
> stuff: 
> 
> Screenshot1 shows that a text control does not take the whole vertical 
> space in a column (same applies to checkboxes) if there are combos and 
> buttons in the same row. If you put the background-color to the 
> text-control only, it looks very ugly. It is no solution to stretch the 
> text-control to fit to the vertical size of the row. Text control 
> vertical align text to the top. 
> 
> Screenshot2 shows the results after appending my little paintListener. I 
> fill the 'column'-area in the row with the same color as the control. 
> Things look now right! 
> 
> 
> Control rowControl = control.getParent(); 
> rowControl.addPaintListener(new PaintListener() { 
> 
> public void paintControl(PaintEvent e) { 
> Color initialBackground = e.gc.getBackground(); 
> e.gc.setBackground(control.getBackground()); 
> Control rowControl = ((Control) e.widget); 
> Rectangle cellBounds = control.getBounds(); 
> Rectangle bounds = new Rectangle( 
> cellBounds.x, 
> 0, 
> cellBounds.width, 
> rowControl.getBounds().height); 
> e.gc.fillRectangle(bounds); 
> e.gc.setBackground(initialBackground); 
> } 
> }); 
> 
> Thanks for your feedback!! 
> Andr�� 
> 
> 
> _______________________________________________ 
> nebula-dev mailing list 
> [email protected] 
> https://dev.eclipse.org/mailman/listinfo/nebula-dev 
> 
> 
> !DSPAM:45e33bed160651044727653! 


-- 
Andr� Dietisheim 
Stv-Bereichsleiter Products 

Puzzle ITC GmbH 
Eigerplatz 4 
CH-3007 Bern 
Telefon +41 31 370 22 00 
Mobile +41 76 423 03 02 
Fax +41 31 370 22 01 

Puzzle ist Mitglied der ODF Alliance: 
<http://www.puzzle.ch/odfalliance/> 




------------------------------ 

Message: 3 
Date: Tue, 27 Feb 2007 11:00:53 +0100 (CET) 
From: " Andr? Dietisheim " <[EMAIL PROTECTED]> 
Subject: Re: [nebula-dev][compositeTable] per-column color 
paintListener 
To: <[EMAIL PROTECTED]>, <[email protected]> 
Message-ID: 
<[EMAIL PROTECTED]> 
Content-Type: text/plain; charset=iso-8859-1 

Hi Dave 

update: sorry!!! my fault! the bugs I experienced were completely my 
fault. There's no bad background-color returned when it has not been set 
before! 
Was probably some kind of evil-empire-reflex ;-))) 
The only thing that's not quite accurate is the control that does not 
expand horizontally to the full row-colum area and the background's not 
set to its complete horizontal extent (small gaps on the left and on the 
right), but no big deal! 
I'll try to patch InternalCompositeTable. I think that it would be nice to 
have that background-paining automagically (though handwork is no big deal 
either) done. What's your opinion? 

Greets 
Andr� 

> Hi Dave 
> 
> You're completely right with your guess that things break on windows. 
> Controls do not have the right color initialized - in other words: 
> controls look white but you get gray when you call getBackground(). In 
> cosequence my paintListener only works if you set background explicitly. 
> Is in a bug in the win32 SWT implementation (the java layer does not 
> reflect the real widget state) or is it a feature of the platform ;-) ? 
> I think it has to stay in the snippets rather than being called in 
> CompositeTable after replicating a row (which would have been neat). 
> 
> Regards 
> Andr� 
> 
>> Hi Dave 
>> 
>> thanks for the hint! I posted the shots to flickr.com: 
>> 
>> http://www.flickr.com/photos/[EMAIL PROTECTED]/ 
>> 
>> I thought of putting this stuff to the snippets or maybe to a utility 
>> class (RowCompositeUtils.attachBackgroundPainter(Control control)?). 
>> That would keep full freedom in choosing row-objects. 
>> I developed that stuff on GTK+ (at home :-)) and I'll check tomorrow 
>> on windows (at work) if everything's fine in redmond land. 
>> 
>> to resume up things, here once more (for the list) the reason for this 
>> stuff: 
>> 
>> Screenshot1 shows that a text control does not take the whole vertical 
>> space in a column (same applies to checkboxes) if there are combos and 
>> buttons in the same row. If you put the background-color to the 
>> text-control only, it looks very ugly. It is no solution to stretch 
>> the text-control to fit to the vertical size of the row. Text control 
>> vertical align text to the top. 
>> 
>> Screenshot2 shows the results after appending my little paintListener. 
>> I fill the 'column'-area in the row with the same color as the 
>> control. Things look now right! 
>> 
>> 
>> Control rowControl = control.getParent(); 
>> rowControl.addPaintListener(new PaintListener() { 
>> 
>> public void paintControl(PaintEvent e) { 
>> Color initialBackground = e.gc.getBackground(); 
>> e.gc.setBackground(control.getBackground()); 
>> Control rowControl = ((Control) e.widget); 
>> Rectangle cellBounds = control.getBounds(); 
>> Rectangle bounds = new Rectangle( 
>> cellBounds.x, 
>> 0, 
>> cellBounds.width, 
>> rowControl.getBounds().height); 
>> e.gc.fillRectangle(bounds); 
>> e.gc.setBackground(initialBackground); 
>> } 
>> }); 
>> 
>> Thanks for your feedback!! 
>> Andr�� 
>> 
>> 
>> _______________________________________________ 
>> nebula-dev mailing list 
>> [email protected] 
>> https://dev.eclipse.org/mailman/listinfo/nebula-dev 
>> 
>> 
>> 
> 
> 
> -- 
> Andr� Dietisheim 
> Stv-Bereichsleiter Products 
> 
> Puzzle ITC GmbH 
> Eigerplatz 4 
> CH-3007 Bern 
> Telefon +41 31 370 22 00 
> Mobile +41 76 423 03 02 
> Fax +41 31 370 22 01 
> 
> Puzzle ist Mitglied der ODF Alliance: 
> <http://www.puzzle.ch/odfalliance/> 
> 
> 
> _______________________________________________ 
> nebula-dev mailing list 
> [email protected] 
> https://dev.eclipse.org/mailman/listinfo/nebula-dev 
> 
> 
> !DSPAM:45e3f1d837528510621087! 


-- 
Andr� Dietisheim 
Stv-Bereichsleiter Products 

Puzzle ITC GmbH 
Eigerplatz 4 
CH-3007 Bern 
Telefon +41 31 370 22 00 
Mobile +41 76 423 03 02 
Fax +41 31 370 22 01 

Puzzle ist Mitglied der ODF Alliance: 
<http://www.puzzle.ch/odfalliance/> 




------------------------------ 

_______________________________________________ 
nebula-dev mailing list 
[email protected] 
https://dev.eclipse.org/mailman/listinfo/nebula-dev 


End of nebula-dev Digest, Vol 11, Issue 20 
****************************************** 
_______________________________________________
nebula-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/nebula-dev

Reply via email to