Inverted icon state
This commit is contained in:
parent
bc2e4ab23f
commit
da77cb809b
@ -714,73 +714,148 @@ void Graphics::textsize(const char * s, int & width, int & height)
|
||||
height = cHeight;
|
||||
}
|
||||
|
||||
void Graphics::draw_icon(int x, int y, Icon icon, unsigned char alpha)
|
||||
void Graphics::draw_icon(int x, int y, Icon icon, unsigned char alpha, bool invert)
|
||||
{
|
||||
y--;
|
||||
switch(icon)
|
||||
{
|
||||
case IconOpen:
|
||||
drawchar(x, y, 0x81, 255, 255, 255, alpha);
|
||||
if(invert)
|
||||
drawchar(x, y, 0x81, 0, 0, 0, alpha);
|
||||
else
|
||||
drawchar(x, y, 0x81, 255, 255, 255, alpha);
|
||||
break;
|
||||
case IconReload:
|
||||
drawchar(x, y, 0x91, 255, 255, 255, alpha);
|
||||
if(invert)
|
||||
drawchar(x, y, 0x91, 0, 0, 0, alpha);
|
||||
else
|
||||
drawchar(x, y, 0x91, 255, 255, 255, alpha);
|
||||
break;
|
||||
case IconSave:
|
||||
drawchar(x, y, 0x82, 255, 255, 255, alpha);
|
||||
if(invert)
|
||||
drawchar(x, y, 0x82, 0, 0, 0, alpha);
|
||||
else
|
||||
drawchar(x, y, 0x82, 255, 255, 255, alpha);
|
||||
break;
|
||||
case IconVoteUp:
|
||||
drawchar(x, y, 0xCB, 0, 187, 18, alpha);
|
||||
if(invert)
|
||||
drawchar(x, y, 0xCB, 0, 100, 0, alpha);
|
||||
else
|
||||
drawchar(x, y, 0xCB, 0, 187, 18, alpha);
|
||||
break;
|
||||
case IconVoteDown:
|
||||
drawchar(x, y, 0xCA, 187, 40, 0, alpha);
|
||||
if(invert)
|
||||
drawchar(x, y, 0xCA, 100, 10, 0, alpha);
|
||||
else
|
||||
drawchar(x, y, 0xCA, 187, 40, 0, alpha);
|
||||
break;
|
||||
case IconTag:
|
||||
drawchar(x, y, 0x83, 255, 255, 255, alpha);
|
||||
if(invert)
|
||||
drawchar(x, y, 0x83, 0, 0, 0, alpha);
|
||||
else
|
||||
drawchar(x, y, 0x83, 255, 255, 255, alpha);
|
||||
break;
|
||||
case IconNew:
|
||||
drawchar(x, y, 0x92, 255, 255, 255, alpha);
|
||||
if(invert)
|
||||
drawchar(x, y, 0x92, 0, 0, 0, alpha);
|
||||
else
|
||||
drawchar(x, y, 0x92, 255, 255, 255, alpha);
|
||||
break;
|
||||
case IconLogin:
|
||||
drawchar(x, y, 0x84, 255, 255, 255, alpha);
|
||||
if(invert)
|
||||
drawchar(x, y, 0x84, 0, 0, 0, alpha);
|
||||
else
|
||||
drawchar(x, y, 0x84, 255, 255, 255, alpha);
|
||||
break;
|
||||
case IconSimulationSettings:
|
||||
drawchar(x, y+1, 0xCF, 255, 255, 255, alpha);
|
||||
if(invert)
|
||||
drawchar(x, y+1, 0xCF, 0, 0, 0, alpha);
|
||||
else
|
||||
drawchar(x, y+1, 0xCF, 255, 255, 255, alpha);
|
||||
break;
|
||||
case IconRenderSettings:
|
||||
addchar(x, y+1, 0xD8, 255, 0, 0, alpha);
|
||||
addchar(x, y+1, 0xD9, 0, 255, 0, alpha);
|
||||
addchar(x, y+1, 0xDA, 0, 0, 255, alpha);
|
||||
if(invert)
|
||||
{
|
||||
drawchar(x, y+1, 0xD8, 255, 0, 0, alpha);
|
||||
drawchar(x, y+1, 0xD9, 0, 255, 0, alpha);
|
||||
drawchar(x, y+1, 0xDA, 0, 0, 255, alpha);
|
||||
}
|
||||
else
|
||||
{
|
||||
addchar(x, y+1, 0xD8, 255, 0, 0, alpha);
|
||||
addchar(x, y+1, 0xD9, 0, 255, 0, alpha);
|
||||
addchar(x, y+1, 0xDA, 0, 0, 255, alpha);
|
||||
}
|
||||
break;
|
||||
case IconPause:
|
||||
drawchar(x, y, 0x90, 255, 255, 255, alpha);
|
||||
if(invert)
|
||||
drawchar(x, y, 0x90, 0, 0, 0, alpha);
|
||||
else
|
||||
drawchar(x, y, 0x90, 255, 255, 255, alpha);
|
||||
break;
|
||||
case IconFavourite:
|
||||
drawchar(x, y, 0xCC, 192, 160, 64, alpha);
|
||||
if(invert)
|
||||
drawchar(x, y, 0xCC, 100, 80, 32, alpha);
|
||||
else
|
||||
drawchar(x, y, 0xCC, 192, 160, 64, alpha);
|
||||
break;
|
||||
case IconReport:
|
||||
drawchar(x, y, 0xE3, 255, 255, 0, alpha);
|
||||
if(invert)
|
||||
drawchar(x, y, 0xE3, 140, 140, 0, alpha);
|
||||
else
|
||||
drawchar(x, y, 0xE3, 255, 255, 0, alpha);
|
||||
break;
|
||||
case IconUsername:
|
||||
drawchar(x, y, 0x8B, 32, 64, 128, alpha);
|
||||
drawchar(x, y, 0x8A, 255, 255, 255, alpha);
|
||||
if(invert)
|
||||
{
|
||||
drawchar(x, y, 0x8B, 32, 64, 128, alpha);
|
||||
drawchar(x, y, 0x8A, 0, 0, 0, alpha);
|
||||
}
|
||||
else
|
||||
{
|
||||
drawchar(x, y, 0x8B, 32, 64, 128, alpha);
|
||||
drawchar(x, y, 0x8A, 255, 255, 255, alpha);
|
||||
}
|
||||
break;
|
||||
case IconPassword:
|
||||
drawchar(x, y, 0x8C, 160, 144, 32, alpha);
|
||||
drawchar(x, y, 0x84, 255, 255, 255, alpha);
|
||||
if(invert)
|
||||
{
|
||||
drawchar(x, y, 0x8C, 160, 144, 32, alpha);
|
||||
drawchar(x, y, 0x84, 0, 0, 0, alpha);
|
||||
}
|
||||
else
|
||||
{
|
||||
drawchar(x, y, 0x8C, 160, 144, 32, alpha);
|
||||
drawchar(x, y, 0x84, 255, 255, 255, alpha);
|
||||
}
|
||||
break;
|
||||
case IconClose:
|
||||
drawchar(x, y, 0xAA, 230, 230, 230, alpha);
|
||||
if(invert)
|
||||
drawchar(x, y, 0xAA, 20, 20, 20, alpha);
|
||||
else
|
||||
drawchar(x, y, 0xAA, 230, 230, 230, alpha);
|
||||
break;
|
||||
case IconVoteSort:
|
||||
case IconDateSort:
|
||||
case IconFolder:
|
||||
case IconSearch:
|
||||
case IconDelete:
|
||||
drawchar(x, y, 0x86, 255, 55, 55, alpha);
|
||||
drawchar(x, y, 0x85, 255, 255, 255, alpha);
|
||||
if(invert)
|
||||
{
|
||||
drawchar(x, y, 0x86, 255, 55, 55, alpha);
|
||||
drawchar(x, y, 0x85, 0, 0, 0, alpha);
|
||||
}
|
||||
else
|
||||
{
|
||||
drawchar(x, y, 0x86, 255, 55, 55, alpha);
|
||||
drawchar(x, y, 0x85, 255, 255, 255, alpha);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
drawchar(x, y, 't', 255, 255, 255, alpha);
|
||||
if(invert)
|
||||
drawchar(x, y, 't', 0, 0 ,0 ,alpha);
|
||||
else
|
||||
drawchar(x, y, 't', 255, 255, 255, alpha);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -138,7 +138,7 @@ public:
|
||||
void blendpixel(int x, int y, int r, int g, int b, int a);
|
||||
void addpixel(int x, int y, int r, int g, int b, int a);
|
||||
|
||||
void draw_icon(int x, int y, Icon icon, unsigned char alpha = 255);
|
||||
void draw_icon(int x, int y, Icon icon, unsigned char alpha = 255, bool invert = false);
|
||||
|
||||
void Clear();
|
||||
void Finalise();
|
||||
|
@ -107,7 +107,19 @@ void Button::Draw(const Point& screenPos)
|
||||
g->drawtext(Position.X+textPosition.X, Position.Y+textPosition.Y, buttonDisplayText, 180, 180, 180, 255);
|
||||
}
|
||||
if(Appearance.icon)
|
||||
g->draw_icon(Position.X+iconPosition.X, Position.Y+iconPosition.Y, Appearance.icon);
|
||||
{
|
||||
if(Enabled)
|
||||
if(isButtonDown || (isTogglable && toggle))
|
||||
{
|
||||
g->draw_icon(Position.X+iconPosition.X, Position.Y+iconPosition.Y, Appearance.icon, 255, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
g->draw_icon(Position.X+iconPosition.X, Position.Y+iconPosition.Y, Appearance.icon, 255);
|
||||
}
|
||||
else
|
||||
g->draw_icon(Position.X+iconPosition.X, Position.Y+iconPosition.Y, Appearance.icon, 180);
|
||||
}
|
||||
}
|
||||
|
||||
void Button::OnMouseUp(int x, int y, unsigned int button)
|
||||
|
Loading…
Reference in New Issue
Block a user