1
0
mirror of git://projects.qi-hardware.com/gmenu2x.git synced 2024-09-30 01:09:27 +03:00

Pass a Surface to ButtonBox' and IconButton's paint function

This commit is contained in:
Paul Cercueil 2014-01-16 01:03:15 +01:00
parent ca3df65daa
commit cfb96dd697
10 changed files with 17 additions and 15 deletions

View File

@ -232,7 +232,7 @@ void BrowseDialog::paint()
writeTitle(title);
writeSubTitle(subtitle);
buttonBox.paint(5);
buttonBox.paint(gmenu2x->s, 5);
// TODO(MtH): I have no idea what the right value of firstElement would be,
// but originally it was undefined and that is never a good idea.

View File

@ -22,10 +22,10 @@ void ButtonBox::clear()
buttons.clear();
}
void ButtonBox::paint(unsigned int posX)
void ButtonBox::paint(Surface *s, unsigned int posX)
{
for (auto button : buttons)
posX = gmenu2x->drawButton(button, posX);
posX = gmenu2x->drawButton(s, button, posX);
}
void ButtonBox::handleTS()

View File

@ -5,6 +5,7 @@
class GMenu2X;
class IconButton;
class Surface;
class ButtonBox
{
@ -15,7 +16,7 @@ public:
void add(IconButton *button);
void clear();
void paint(unsigned int posX);
void paint(Surface *s, unsigned int posX);
void handleTS();
private:

View File

@ -1177,10 +1177,10 @@ string GMenu2X::getDiskFree(const char *path) {
return df;
}
int GMenu2X::drawButton(IconButton *btn, int x, int y) {
int GMenu2X::drawButton(Surface *s, IconButton *btn, int x, int y) {
if (y<0) y = resY+y;
btn->setPosition(x, y-7);
btn->paint();
btn->paint(s);
return x+btn->getRect().w+6;
}

View File

@ -212,7 +212,7 @@ public:
void renameSection();
void deleteSection();
int drawButton(IconButton *btn, int x=5, int y=-10);
int drawButton(Surface *s, IconButton *btn, int x=5, int y=-10);
int drawButton(Surface *s, const std::string &btn, const std::string &text, int x=5, int y=-10);
int drawButtonRight(Surface *s, const std::string &btn, const std::string &text, int x=5, int y=-10);
void drawScrollBar(uint pageSize, uint totalSize, uint pagePos);

View File

@ -65,12 +65,12 @@ bool IconButton::handleTS() {
return false;
}
void IconButton::paint() {
void IconButton::paint(Surface *s) {
if (iconSurface) {
iconSurface->blit(gmenu2x->s, iconRect);
iconSurface->blit(s, iconRect);
}
if (!label.empty()) {
gmenu2x->s->write(gmenu2x->font, label, labelRect.x, labelRect.y,
s->write(gmenu2x->font, label, labelRect.x, labelRect.y,
Font::HAlignLeft, Font::VAlignMiddle);
}
}

View File

@ -2,11 +2,11 @@
#define ICONBUTTON_H
#include "delegate.h"
#include "gmenu2x.h"
#include <SDL.h>
#include <string>
class GMenu2X;
class Surface;
class Touchscreen;
@ -23,7 +23,8 @@ public:
bool handleTS();
void paint();
void paint(Surface *s);
void paint() { paint(gmenu2x->s); }
private:
void recalcRects();

View File

@ -159,7 +159,7 @@ bool InputDialog::exec() {
writeSubTitle(text);
drawTitleIcon(icon);
buttonbox->paint(5);
buttonbox->paint(gmenu2x->s, 5);
box.w = gmenu2x->font->getTextWidth(input) + 18;
box.x = 160 - box.w / 2;

View File

@ -51,5 +51,5 @@ void MenuSetting::handleTS()
void MenuSetting::drawSelected(int /*y*/)
{
buttonBox.paint(5);
buttonBox.paint(gmenu2x->s, 5);
}

View File

@ -95,7 +95,7 @@ bool WallpaperDialog::exec()
writeTitle("Wallpaper selection");
writeSubTitle("Select an image from the list, to use as a wallpaper");
buttonbox.paint(5);
buttonbox.paint(gmenu2x->s, 5);
//Selection
iY = selected-firstElement;