edit boxes should have different background color

You discovered a bug in the engine, and you are sure that it is not a problem of your code? Just post it in here. Please read the bug posting guidelines first.
Post Reply
ayman
Posts: 51
Joined: Sat Feb 05, 2005 7:33 pm
Location: Piefke State

edit boxes should have different background color

Post by ayman »

Suggestion
After playing around with the skin object I suggest to change the background color in CGUIEditBox::draw() of an edit box with border from EGDC_3D_HIGH_LIGHT to EGDC_WINDOW.

Why do this?
First of all, it woud not change the look of a standard application that has not changed the skin a bit: Edit boxes would keep their white background as expected.
From my poit of view it makes litte sense to use the EGDC_3D_HIGH_LIGHT color for the background of an edit box. This color is used to draw the typical white high light on the upper and left edges of raised panes as well as the lower and right edges of sunken panes. Right now (irrlicht 0.12.0) changing this color used for edges of 3d-panes _will_ change the appearance of all edit boxes. But why should it?
I consider it a better solution to use the window color (EGDC_WINDOW) for those backgrounds.

That would offer the possibility to create gui skins that are more typical for games with black or at least very dark backgrund colors. There you often use very bright 2d-frames to indicate a button or an edit box. You also use text with a bright color (cause all the other stuff is so dark). At the moment you _can_ change the border of buttons and edit boxes to one bright color and changing the font color to a very bright one if also no problem.
BUT, having done this, you can't use your edit box cause background color and text color are now both very bright.

And if I use border=false, I have to draw all the frames myself or create my own edit box.

How change it? Recent version: Irrlicht 0.12.0
In line 457 of CGUIEditBox.cpp change the code from:

Code: Select all

		skin->draw3DSunkenPane(this, skin->getColor(EGDC_3D_HIGH_LIGHT),
			true, true, frameRect, &AbsoluteClippingRect);
to

Code: Select all

  		skin->draw3DSunkenPane(this, skin->getColor(EGDC_WINDOW),
			false, true, frameRect, &AbsoluteClippingRect);
Please consider my suggestion. I don't see a good reason why the actual code is better than my suggested code.

Regards
Ayman
niko
Site Admin
Posts: 1759
Joined: Fri Aug 22, 2003 4:44 am
Location: Vienna, Austria
Contact:

Post by niko »

You are absolutely right, will be changed. Thanks.
Post Reply