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);
Code: Select all
skin->draw3DSunkenPane(this, skin->getColor(EGDC_WINDOW),
false, true, frameRect, &AbsoluteClippingRect);
Regards
Ayman