1
// -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*-
3
* Copyright 2012 Canonical Ltd.
5
* This program is free software: you can redistribute it and/or modify it
6
* under the terms of the GNU Lesser General Public License version 3, as
7
* published by the Free Software Foundation.
9
* This program is distributed in the hope that it will be useful, but
10
* WITHOUT ANY WARRANTY; without even the implied warranties of
11
* MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
12
* PURPOSE. See the applicable version of the GNU Lesser General Public
13
* License for more details.
15
* You should have received a copy of both the GNU Lesser General Public
16
* License version 3 along with this program. If not, see
17
* <http://www.gnu.org/licenses/>
19
* Authored by: Nick Dedekind <nick.dedekind@canonical.com>
23
#ifndef MOVIEPREVIEW_H
24
#define MOVIEPREVIEW_H
31
class AbstractPaintLayer;
32
class StaticCairoText;
43
class PreviewRatingsWidget;
44
class PreviewInfoHintWidget;
46
class MoviePreview : public Preview
49
typedef nux::ObjectPtr<MoviePreview> Ptr;
50
NUX_DECLARE_OBJECT_TYPE(MoviePreview, Preview);
52
MoviePreview(dash::Preview::Ptr preview_model);
55
// From debug::Introspectable
56
std::string GetName() const;
57
void AddProperties(GVariantBuilder* builder);
60
virtual void Draw(nux::GraphicsEngine& GfxContext, bool force_draw);
61
virtual void DrawContent(nux::GraphicsEngine& GfxContext, bool force_draw);
62
virtual void PreLayoutManagement();
64
virtual void OnNavigateOut();
65
virtual void OnNavigateInComplete();
67
void SetupBackground();
71
nux::VLayout* full_data_layout_;
73
nux::ObjectPtr<CoverArt> image_;
74
nux::ObjectPtr<PreviewRatingsWidget> rating_;
75
nux::ObjectPtr<nux::StaticCairoText> title_;
76
nux::ObjectPtr<nux::StaticCairoText> subtitle_;
77
nux::ObjectPtr<nux::StaticCairoText> description_;
78
nux::ObjectPtr<PreviewInfoHintWidget> preview_info_hints_;
80
typedef std::unique_ptr<nux::AbstractPaintLayer> LayerPtr;
81
LayerPtr details_bg_layer_;
88
#endif // MOVIEPREVIEW_H