Skyward boardcore
Loading...
Searching...
No Matches
ImageView.h
Go to the documentation of this file.
1/* Copyright (c) 2021 Skyward Experimental Rocketry
2 * Author: Luca Erbetta
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 * THE SOFTWARE.
21 */
22
23#pragma once
24
25#include <mxgui/image.h>
26
27#include "View.h"
28
29namespace Boardcore
30{
31
35class ImageView : public View
36{
37public:
38 ImageView(const mxgui::Image* image) : image(image) {}
39
40 void setImage(mxgui::Image* image)
41 {
42 this->image = image;
43 invalidate();
44 }
45
46 const mxgui::Image* getImage() { return image; }
47
48 void draw(mxgui::DrawingContext& dc) override
49 {
50 if (isInvalidated())
51 {
52 View::draw(dc);
53
54 dc.clippedDrawImage(getBounds().topLeft(), getBounds().topLeft(),
55 getBounds().bottomRight(), *image);
56 }
57 }
58
59private:
60 const mxgui::Image* image;
61};
62
63} // namespace Boardcore
Simple view that displays an image.
Definition ImageView.h:36
void setImage(mxgui::Image *image)
Definition ImageView.h:40
ImageView(const mxgui::Image *image)
Definition ImageView.h:38
const mxgui::Image * getImage()
Definition ImageView.h:46
void draw(mxgui::DrawingContext &dc) override
Draw the view in its bounds.
Definition ImageView.h:48
Base class for anything that can be drawn on the screen and interacted with.
Definition View.h:126
virtual void draw(mxgui::DrawingContext &dc)
Draw the view in its bounds.
Definition View.h:171
void invalidate()
Signal that what has been previously drawn is now invalid and has to be redrawn.
Definition View.h:148
Bounds getBounds()
Definition View.h:142
bool isInvalidated()
Definition View.h:238
This file includes all the types the logdecoder script will decode.