image_view.h
1/*
2** ClanLib SDK
3** Copyright (c) 1997-2020 The ClanLib Team
4**
5** This software is provided 'as-is', without any express or implied
6** warranty. In no event will the authors be held liable for any damages
7** arising from the use of this software.
8**
9** Permission is granted to anyone to use this software for any purpose,
10** including commercial applications, and to alter it and redistribute it
11** freely, subject to the following restrictions:
12**
13** 1. The origin of this software must not be misrepresented; you must not
14** claim that you wrote the original software. If you use this software
15** in a product, an acknowledgment in the product documentation would be
16** appreciated but is not required.
17** 2. Altered source versions must be plainly marked as such, and must not be
18** misrepresented as being the original software.
19** 3. This notice may not be removed or altered from any source distribution.
20**
21** Note: Some of the libraries ClanLib may link to may have additional
22** requirements or restrictions.
23**
24** File Author(s):
25**
26** Magnus Norddahl
27*/
28
29#pragma once
30
31#include "../View/view.h"
32#include "../Image/image_source.h"
33
34namespace clan
35{
36 class Canvas;
37 class Image;
38 class ImageViewImpl;
39
40 class ImageView : public View
41 {
42 public:
44
45 std::shared_ptr<ImageSource> image();
46 void set_image(const std::shared_ptr<ImageSource> &image);
47 void set_image(const Image &image);
48
49 std::shared_ptr<ImageSource> highlighted_image();
50 void set_highlighted_image(const std::shared_ptr<ImageSource> &image);
52
53 /*
54 std::vector<std::shared_ptr<ImageSource>> animation_images();
55 void set_animation_images(const std::vector<std::shared_ptr<ImageSource>> &images);
56
57 std::vector<std::shared_ptr<ImageSource>> highlighted_animation_images();
58 void set_highlighted_animation_images(const std::vector<std::shared_ptr<ImageSource>> &images);
59
60 float animation_duration() const;
61 void set_animation_duration(float value);
62
63 float animation_repeat_count() const;
64 void set_animation_repeat_count(float value);
65
66 void start_animating();
67 void stop_animating();
68 bool is_animating() const;
69 */
70
71 protected:
72 void render_content(Canvas &canvas) override;
74 float calculate_preferred_height(Canvas &canvas, float width) override;
75
76 private:
77 std::shared_ptr<ImageViewImpl> impl;
78 };
79}
2D Graphics Canvas
Definition canvas.h:72
std::shared_ptr< ImageSource > highlighted_image()
void set_image(const std::shared_ptr< ImageSource > &image)
void render_content(Canvas &canvas) override
Renders the content of a view.
float calculate_preferred_width(Canvas &canvas) override
Calculates the preferred width of this view.
void set_image(const Image &image)
float calculate_preferred_height(Canvas &canvas, float width) override
Calculates the preferred height of this view.
void set_highlighted_image(const std::shared_ptr< ImageSource > &image)
std::shared_ptr< ImageSource > image()
void set_highlighted_image(const Image &image)
Image class.
Definition image.h:59
Canvas canvas() const
Definition clanapp.h:36