diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/chat.cpp | 36 | ||||
-rw-r--r-- | src/gui/progressbar.cpp | 21 | ||||
-rw-r--r-- | src/gui/setup.cpp | 11 |
3 files changed, 41 insertions, 27 deletions
diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp index 278f36c3..34b49571 100644 --- a/src/gui/chat.cpp +++ b/src/gui/chat.cpp @@ -31,10 +31,11 @@ ChatBox::ChatBox(const char *logfile, int item_num) items = 0; items_keep = item_num; - chatBoxBackground = new Image(); - chatBoxBackground->create(200, 200); - chatBoxBackground->fillWithColor(255, 255, 255); - chatBoxBackground->setAlpha(0.7f); + chatBoxBackground = Image::create(200, 200); + if (chatBoxBackground) { + chatBoxBackground->fillWithColor(255, 255, 255); + chatBoxBackground->setAlpha(0.7f); + } } ChatBox::~ChatBox() @@ -128,16 +129,25 @@ void ChatBox::draw(gcn::Graphics *graphics) graphics->drawRectangle(gcn::Rectangle(0, 0, getWidth(), getHeight())); getAbsolutePosition(x, y); - - if ( (chatBoxBackground->getWidth() != getWidth()) || (chatBoxBackground->getHeight() != getHeight()) ) - { - chatBoxBackground->unload(); - chatBoxBackground->create(getWidth(), getHeight()); - chatBoxBackground->fillWithColor(255, 255, 255); - chatBoxBackground->setAlpha(0.7f); + + // Potentially recreate background with new size + if (chatBoxBackground) { + if ((chatBoxBackground->getWidth() != getWidth()) || + (chatBoxBackground->getHeight() != getHeight())) + { + delete chatBoxBackground; + chatBoxBackground = Image::create(getWidth(), getHeight()); + if (chatBoxBackground) { + chatBoxBackground->fillWithColor(255, 255, 255); + chatBoxBackground->setAlpha(0.7f); + } + } + } + + // Draw background image + if (chatBoxBackground) { + chatBoxBackground->draw(screen, x, y); } - - chatBoxBackground->draw(screen, x, y); for (iter = chatlog.begin(); iter != chatlog.end(); iter++) { line = *iter; diff --git a/src/gui/progressbar.cpp b/src/gui/progressbar.cpp index 5ef5e03f..178f7d30 100644 --- a/src/gui/progressbar.cpp +++ b/src/gui/progressbar.cpp @@ -63,17 +63,18 @@ ProgressBar::ProgressBar(float progress, int x, int y, int width, int height, dBottomLeftBorder->setAlpha(1.0f); dBottomRightBorder->setAlpha(1.0f); - colorBar = new Image(); - colorBar->create(getWidth() - 8, getHeight() - 8); - colorBar->fillWithColor(red, green, blue); - colorBar->setAlpha(0.7f); + colorBar = Image::create(getWidth() - 8, getHeight() - 8); + if (colorBar) { + colorBar->fillWithColor(red, green, blue); + colorBar->setAlpha(0.7f); + } } ProgressBar::~ProgressBar() { - #ifndef USE_OPENGL - //SDL_FreeSurface(ColorBar); - #endif + if (colorBar) { + delete colorBar; + } } void ProgressBar::draw(gcn::Graphics *graphics) @@ -102,8 +103,10 @@ void ProgressBar::draw(gcn::Graphics *graphics) dRightBorder->drawPattern(screen, absx + getWidth() - 4, absy + 4, 4, getHeight() - 8); - colorBar->draw(screen, 0, 0, absx + 4, absy + 4, - (int)(progress * float(getWidth() - 4)), getHeight() - 8); + if (colorBar) { + colorBar->draw(screen, 0, 0, absx + 4, absy + 4, + (int)(progress * float(getWidth() - 4)), getHeight() - 8); + } } void ProgressBar::setProgress(float progress) diff --git a/src/gui/setup.cpp b/src/gui/setup.cpp index b43a469c..4f71e94d 100644 --- a/src/gui/setup.cpp +++ b/src/gui/setup.cpp @@ -50,12 +50,12 @@ ModeListModel::ModeListModel() // Check if any modes available if (modes == (SDL_Rect**)0) { nmode = 0; - puts("No modes"); + log("No modes"); } // Check if modes restricted - if (modes == (SDL_Rect**) - 1) { - puts("Modes restricted"); + if (modes == (SDL_Rect**)-1) { + log("Modes unrestricted"); } for (nmode = 0; modes[nmode]; ++nmode); @@ -65,8 +65,9 @@ ModeListModel::ModeListModel() for (i = 0; modes[i]; ++i) { char *temp = (char*)malloc(20 * sizeof(char)); mode[i] = temp; - if (sprintf(mode[i], "%d x %d", modes[i]->w, modes[i]->h) == -1) - puts("Cannot allocate mode list"); + if (sprintf(mode[i], "%d x %d", modes[i]->w, modes[i]->h) == -1) { + log("Cannot allocate mode list"); + } } } |