diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-07-24 14:38:18 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-07-24 14:38:18 (GMT) |
| commit | da77cb809bf692794a70b680f24455f73ce7a396 (patch) | |
| tree | 93ff18319944cd595be92eac581897a838ac77aa /src/graphics/Graphics.cpp | |
| parent | bc2e4ab23faa02164ba7e029c90868484184ec3b (diff) | |
| download | powder-da77cb809bf692794a70b680f24455f73ce7a396.zip powder-da77cb809bf692794a70b680f24455f73ce7a396.tar.gz | |
Inverted icon state
Diffstat (limited to 'src/graphics/Graphics.cpp')
| -rw-r--r-- | src/graphics/Graphics.cpp | 123 |
1 files changed, 99 insertions, 24 deletions
diff --git a/src/graphics/Graphics.cpp b/src/graphics/Graphics.cpp index 7cc7418..2bed5ee 100644 --- a/src/graphics/Graphics.cpp +++ b/src/graphics/Graphics.cpp @@ -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; } } |
