~dfly720/unity/fix-938353

« back to all changes in this revision

Viewing changes to standalone-clients/TestPreviewApplications.cpp

  • Committer: Marco Mariani
  • Date: 2012-05-31 21:58:19 UTC
  • mfrom: (2341.1.38 unity)
  • Revision ID: dfly720@gmail.com-20120531215819-0er7r9qftgxqvt7a
Merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright 2010 Canonical Ltd.
3
 
 *
4
 
 * This program is free software: you can redistribute it and/or modify it
5
 
 * under the terms of the GNU General Public License version 3, as published
6
 
 * by the  Free Software Foundation.
7
 
 *
8
 
 * This program is distributed in the hope that it will be useful, but
9
 
 * WITHOUT ANY WARRANTY; without even the implied warranties of
10
 
 * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
11
 
 * PURPOSE.  See the GNU General Public License for more details.
12
 
 *
13
 
 * You should have received a copy of the GNU General Public License
14
 
 * version 3 along with this program.  If not, see
15
 
 * <http://www.gnu.org/licenses/>
16
 
 *
17
 
 * Authored by: Gordon Allott <gord.allott@canonical.com>
18
 
 *
19
 
 */
20
 
 
21
 
#include "Nux/Nux.h"
22
 
#include "Nux/VLayout.h"
23
 
#include "Nux/Button.h"
24
 
#include "Nux/TextureArea.h"
25
 
#include "Nux/WindowThread.h"
26
 
#include "NuxGraphics/GraphicsEngine.h"
27
 
#include <gtk/gtk.h>
28
 
 
29
 
#include "PreviewBasicButton.h"
30
 
#include "PreviewApplications.h"
31
 
#include "DashStyle.h"
32
 
 
33
 
class TestRunner
34
 
{
35
 
public:
36
 
  TestRunner ();
37
 
  ~TestRunner ();
38
 
 
39
 
  static void InitWindowThread (nux::NThread* thread, void* InitData);
40
 
  void Init ();
41
 
  nux::Layout *layout;
42
 
 
43
 
private:
44
 
 
45
 
};
46
 
 
47
 
TestRunner::TestRunner ()
48
 
{
49
 
}
50
 
 
51
 
TestRunner::~TestRunner ()
52
 
{
53
 
}
54
 
 
55
 
void TestRunner::Init ()
56
 
{
57
 
  unity::dash::Preview::Properties properties;
58
 
  unity::dash::ApplicationPreview* application_preview = new unity::dash::ApplicationPreview (properties);
59
 
 
60
 
  application_preview->name = "Shotwell";
61
 
  application_preview->version = "Version 0.9.3";
62
 
  application_preview->size = "Size 56 MB";
63
 
  application_preview->license = "Open Source (GPL)";
64
 
  application_preview->last_updated = "Last updated 11th Apr 2011";
65
 
  application_preview->rating = 0.5;
66
 
  application_preview->n_ratings = 17;
67
 
  application_preview->description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam nec fringilla ligula. Mauris posuere tempor fermentum. Maecenas aliquet elementum orci, porta molestie mauris blandit nec. Fusce ac tellus eu elit porta placerat ut ut nulla. Sed viverra magna id nibh egestas sodales. Fusce ut massa leo, a varius massa. Vivamus venenatis pretium diam. Nam dictum eleifend pulvinar. Aenean consequat diam sed enim mollis non adipiscing odio commodo. Donec orci lorem, viverra in convallis eget, volutpat nec tellus. Nulla at lobortis odio. Pellentesque porta, ante id convallis tincidunt, tellus nunc feugiat massa, sit amet porta mauris turpis ac enim. Integer porttitor bibendum justo, ut posuere mi commodo non. Nullam volutpat eros vel magna congue non lobortis urna pulvinar. Vivamus quis ante leo. Fusce mauris tellus, tincidunt quis rutrum vitae, feugiat venenatis nulla. Sed quis lorem vitae augue luctus sodales. Proin egestas nibh quam. Nulla cursus erat arcu, et mollis tortor. Maecenas ut scelerisque leo.\n\nNulla varius, neque at laoreet sodales, mauris risus ultricies risus, at convallis neque purus sodales purus. Vestibulum non ligula sit amet dui suscipit egestas. Aliquam lobortis tellus nec est pretium non accumsan turpis bibendum. Nunc condimentum dolor urna. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse eros ante, rutrum sed tincidunt id, tempor vel arcu. Nullam in dui leo. Mauris orci metus, convallis vel cursus eget, mattis ut erat. Praesent condimentum metus cursus nulla feugiat eleifend. Fusce mattis congue sapien quis sagittis. Phasellus volutpat condimentum mauris, a rutrum enim pretium id. Phasellus non laoreet est. Mauris et dictum leo. Nunc interdum lacinia elit posuere imperdiet. In hac habitasse platea dictumst. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec venenatis dolor et nisl faucibus vitae tristique erat vehicula. Proin vitae neque non magna tempus ultrices id fermentum lorem. Proin sodales mauris nisl.\n\nDuis tempus, dui quis viverra vehicula, massa tellus pulvinar libero, vitae varius tortor velit vel turpis. Aliquam ac massa lectus, ut ultrices turpis. Sed et mi nisl, id laoreet mi. Aenean et felis est. Sed ut libero ipsum, a tincidunt nibh. Integer viverra dictum urna, eget convallis est accumsan et. Praesent posuere orci vel nibh iaculis congue. Proin eget congue dolor. Aliquam mattis laoreet tortor, sit amet porttitor turpis fermentum at. Nulla iaculis dignissim laoreet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer tincidunt tristique egestas. Phasellus ut leo nec neque fringilla vestibulum. Donec id facilisis elit.\n\nVivamus ut vehicula mi. Curabitur est velit, laoreet sodales ornare eget, semper sed felis. Pellentesque nisi velit, faucibus vitae auctor sed, lacinia id leo. Quisque mattis laoreet nisi ut facilisis. Nulla lacus ligula, dictum a malesuada eu, dictum vitae lacus. In a ante sodales dui semper vestibulum mattis non lectus. Sed ligula risus, porttitor eget ultricies ac, imperdiet at quam. Vivamus vulputate, sapien nec congue semper, velit augue bibendum purus, et sollicitudin velit tellus sed mauris. Praesent non purus id odio vehicula facilisis. Integer bibendum porta felis eget suscipit. Mauris elementum suscipit ante, at sagittis libero pharetra sed. Nulla non lectus diam. Vestibulum nisi mi, tincidunt quis convallis a, elementum et justo. Curabitur odio est, fringilla vel consectetur eget, placerat nec risus.\n\nDuis ac lectus enim. Donec interdum enim vulputate dui adipiscing iaculis. Duis sit amet consectetur sapien. Etiam ut leo sed lectus interdum vestibulum et vel mauris. Vestibulum vitae neque vel mi rhoncus condimentum ut vitae libero. Proin pulvinar pretium mi sit amet fermentum. Quisque consectetur felis ac libero molestie interdum. Aliquam erat volutpat. Proin venenatis est sed metus volutpat id egestas turpis congue. Nulla euismod massa euismod ante gravida porttitor. Aenean ultricies fermentum sem vehicula aliquam. Donec mollis augue id ligula sagittis et tempus eros euismod. Etiam euismod tempus velit, non varius purus eleifend sit amet. Fusce sed nunc vitae quam tempus porttitor vel a nibh. Suspendisse potenti. Praesent facilisis justo id est ullamcorper accumsan. Ut elementum, dolor ut commodo aliquam, sem libero elementum tellus, nec iaculis ipsum turpis et sem. ";
68
 
  application_preview->icon_hint = "firefox.png";
69
 
  application_preview->screenshot_icon_hint = "file:///usr/share/backgrounds/warty-final-ubuntu.png";
70
 
  application_preview->primary_action_name = "Launch";
71
 
  application_preview->primary_action_icon_hint = "";
72
 
  application_preview->primary_action_uri = "/notreal/buthey/starwars/is/pretty/great/beep";
73
 
 
74
 
  unity::dash::Preview::Ptr preview = unity::dash::Preview::Ptr(application_preview);
75
 
  unity::PreviewApplications* preview_view = new unity::PreviewApplications (preview, NUX_TRACKER_LOCATION);
76
 
 
77
 
  layout = new nux::VLayout(NUX_TRACKER_LOCATION);
78
 
 
79
 
  layout->AddView (preview_view, 1, nux::MINOR_POSITION_CENTER, nux::MINOR_SIZE_FULL);
80
 
 
81
 
  nux::GetWindowThread()->SetLayout (layout);
82
 
}
83
 
 
84
 
void TestRunner::InitWindowThread(nux::NThread* thread, void* InitData)
85
 
{
86
 
  TestRunner *self =  (TestRunner *) InitData;
87
 
  self->Init ();
88
 
}
89
 
 
90
 
void
91
 
ControlThread (nux::NThread* thread,
92
 
               void*         data)
93
 
{
94
 
  // sleep for 3 seconds
95
 
  nux::SleepForMilliseconds (3000);
96
 
  printf ("ControlThread successfully started\n");
97
 
}
98
 
 
99
 
 
100
 
int main(int argc, char **argv)
101
 
{
102
 
  nux::SystemThread* st = NULL;
103
 
  nux::WindowThread* wt = NULL;
104
 
 
105
 
  // no real tests right now, just make sure we don't get any criticals and such
106
 
  // waiting on nice perceptual diff support before we can build real tests
107
 
  // for views
108
 
 
109
 
  g_type_init ();
110
 
  
111
 
  gtk_init (&argc, &argv);
112
 
 
113
 
  nux::NuxInitialize(0);
114
 
 
115
 
  // The instances for the pseudo-singletons.
116
 
  unity::dash::Style dash_style;
117
 
 
118
 
  TestRunner *test_runner = new TestRunner ();
119
 
  wt = nux::CreateGUIThread(TEXT("Unity Places Tile Test"),
120
 
                            800 , 600,
121
 
                            0,
122
 
                            &TestRunner::InitWindowThread,
123
 
                            test_runner);
124
 
 
125
 
  st = nux::CreateSystemThread (NULL, ControlThread, wt);
126
 
 
127
 
  if (st)
128
 
    st->Start (NULL);
129
 
 
130
 
  wt->Run (NULL);
131
 
  delete st;
132
 
  delete wt;
133
 
  return 0;
134
 
}