Patch level : 10.0

Files correlati     : ba0
Ricompilazione Demo : [ ]
Commento            :
Corretta gestione logo trasparente


git-svn-id: svn://10.65.10.50/trunk@16092 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2008-02-05 10:05:04 +00:00
parent ab7990b69e
commit 952489c678
2 changed files with 17 additions and 11 deletions

@ -304,7 +304,7 @@ bool can_be_transparent(const TImage& i)
return false;
if (i.get_pixel(0,h) != col)
return false;
return false;
return true;
}
///////////////////////////////////////////////////////////

@ -9,6 +9,8 @@
class TCampo_window : public TField_window
{
TImage _logo;
protected:
virtual void update();
virtual void handler(WINDOW win, EVENT* ep);
@ -26,17 +28,18 @@ void TCampo_window::update()
RCT rctw; xvt_vobj_get_client_rect(win(), &rctw);
if (rctw.right >= 32)
{
TImage image("logo.gif");
RCT rcti = image.rect();
if (rcti.right > rctw.right)
if (_logo.ok())
{
const double ratio = double(rctw.right) / double(rcti.right);
rcti.right = int(rcti.right * ratio);
rcti.bottom = int(rcti.bottom * ratio);
RCT rcti = _logo.rect();
if (rcti.right > rctw.right)
{
const double ratio = double(rctw.right) / double(rcti.right);
rcti.right = int(rcti.right * ratio);
rcti.bottom = int(rcti.bottom * ratio);
}
xvt_rect_offset(&rcti, rctw.right - rcti.right, rctw.bottom - rcti.bottom);
_logo.draw(win(), rcti);
}
xvt_rect_offset(&rcti, rctw.right - rcti.right, rctw.bottom - rcti.bottom);
image.draw(win(), rcti);
PNT pnt = { 0, 0 };
draw_spider(win(), 0x3, pnt);
@ -52,10 +55,13 @@ void TCampo_window::handler(WINDOW win, EVENT* ep)
TCampo_window::TCampo_window(int x, int y, int dx, int dy,
WINDOW parent, TWindowed_field* owner)
: TField_window(x, y, dx, dy, parent, owner)
: TField_window(x, y, dx, dy, parent, owner), _logo("logo.gif")
{
set_caption("__CAMPO_MENU__");
set_scroll_max(0, 0); // Get rid of that useless scrollbars
if (_logo.ok() && can_be_transparent(_logo))
_logo.convert_transparent_color(NORMAL_BACK_COLOR);
}
TCampo_window::~TCampo_window()