diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-01-23 22:53:57 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-01-23 22:53:57 (GMT) |
| commit | df72f2580f68a7d0055fcf20dcd65c0be90c52dd (patch) | |
| tree | ada3c6d3fdc2009f5236ec2a39d661c0bfaaf3e5 /src/preview/PreviewView.cpp | |
| parent | 2bd571e1598e6baffc717bcb086d89d01929604b (diff) | |
| download | powder-df72f2580f68a7d0055fcf20dcd65c0be90c52dd.zip powder-df72f2580f68a7d0055fcf20dcd65c0be90c52dd.tar.gz | |
Better element buttons, Save preview WIP
Diffstat (limited to 'src/preview/PreviewView.cpp')
| -rw-r--r-- | src/preview/PreviewView.cpp | 48 |
1 files changed, 46 insertions, 2 deletions
diff --git a/src/preview/PreviewView.cpp b/src/preview/PreviewView.cpp index 886dd67..c37ebd2 100644 --- a/src/preview/PreviewView.cpp +++ b/src/preview/PreviewView.cpp @@ -8,22 +8,66 @@ #include "PreviewView.h" #include "interface/Point.h" #include "interface/Window.h" +#include "search/Thumbnail.h" PreviewView::PreviewView(): - ui::Window(ui::Point(-1, -1), ui::Point(200, 200)) + ui::Window(ui::Point(-1, -1), ui::Point((XRES/2)+200, (YRES/2)+150)), + savePreview(NULL) { // TODO Auto-generated constructor stub + openButton = new ui::Button(ui::Point(0, Size.Y-16), ui::Point(100, 16), "Open"); + AddComponent(openButton); + saveNameLabel = new ui::Label(ui::Point(0, 0), ui::Point(50, 50), ""); + AddComponent(saveNameLabel); } void PreviewView::OnDraw() { Graphics * g = ui::Engine::Ref().g; + + //Window Background+Outline g->clearrect(Position.X-2, Position.Y-2, Size.X+4, Size.Y+4); g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255); + + //Save preview (top-left) + if(savePreview && savePreview->Data) + { + g->draw_image(savePreview->Data, (Position.X+1)+(((XRES/2)-savePreview->Size.X)/2), (Position.Y+1)+(((YRES/2)-savePreview->Size.Y)/2), savePreview->Size.X, savePreview->Size.Y, 255); + } + g->drawrect(Position.X, Position.Y, XRES/2, YRES/2, 255, 255, 255, 100); +} + +void PreviewView::NotifySaveChanged(PreviewModel * sender) +{ + Save * save = sender->GetSave(); + if(save) + { + saveNameLabel->SetText(save->name); + } + else + { + saveNameLabel->SetText(""); + } +} + +void PreviewView::NotifyPreviewChanged(PreviewModel * sender) +{ + savePreview = sender->GetPreview(); + if(savePreview && savePreview->Data && !(savePreview->Size.X == XRES/2 && savePreview->Size.Y == YRES/2)) + { + int newSizeX, newSizeY; + float factorX = ((float)XRES/2)/((float)savePreview->Size.X); + float factorY = ((float)YRES/2)/((float)savePreview->Size.Y); + float scaleFactor = factorY < factorX ? factorY : factorX; + savePreview->Data = Graphics::resample_img(savePreview->Data, savePreview->Size.X, savePreview->Size.Y, savePreview->Size.X*scaleFactor, savePreview->Size.Y*scaleFactor); + savePreview->Size.X *= scaleFactor; + savePreview->Size.Y *= scaleFactor; + } } PreviewView::~PreviewView() { - // TODO Auto-generated destructor stub + delete openButton; + delete saveNameLabel; } |
