Skip to content

Commit 342ace1

Browse files
author
Koen Deforche
committed
see Changelog + homepage updates
1 parent 4aeab7d commit 342ace1

28 files changed

+863
-654
lines changed

Changelog

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
04-07-2011:
2+
* WWebWidget: added childrenChanged() signal and use this in
3+
WMenu to track contents stack updates
4+
15
29-06-2011:
26
* WWidget: show/hide animations also work on FF5 now
37

examples/wt-homepage/CMakeLists.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ IF(BOOST_FS_LIB)
22

33
INCLUDE(CheckFunctionExists)
44

5-
WT_ADD_EXAMPLE(Home.wt
5+
SET(SRC
66
main.C
77
Home.C
88
WtHome.C
@@ -23,6 +23,13 @@ WT_ADD_EXAMPLE(Home.wt
2323
../blog/asciidoc/asciidoc.C
2424
)
2525

26+
IF(WT_EMWEB_BUILD)
27+
SET(SRC ${SRC} QuoteForm.C)
28+
ADD_DEFINITIONS(-DWT_EMWEB_BUILD)
29+
ENDIF(WT_EMWEB_BUILD)
30+
31+
WT_ADD_EXAMPLE(Home.wt ${SRC})
32+
2633
TARGET_LINK_LIBRARIES(Home.wt wtdbo wtdbosqlite3 ${BOOST_FS_LIB})
2734

2835
# Test whether crypt(3) is provided by libc. If it's not, check if

examples/wt-homepage/Home.C

Lines changed: 56 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,15 @@
1616
#include <Wt/WEnvironment>
1717
#include <Wt/WLogger>
1818
#include <Wt/WMenu>
19+
#include <Wt/WPushButton>
1920
#include <Wt/WStackedWidget>
20-
#include <Wt/WVBoxLayout>
2121
#include <Wt/WTabWidget>
2222
#include <Wt/WTable>
2323
#include <Wt/WTableCell>
2424
#include <Wt/WTemplate>
2525
#include <Wt/WText>
2626
#include <Wt/WViewWidget>
27+
#include <Wt/WVBoxLayout>
2728

2829
#include "Home.h"
2930
#include "view/BlogView.h"
@@ -42,6 +43,7 @@ Home::Home(const WEnvironment& env, const std::string& title,
4243
sourceViewer_(0)
4344
{
4445
messageResourceBundle().use(appRoot() + resourceBundle, false);
46+
4547
useStyleSheet(cssPath + "/wt.css");
4648
useStyleSheet(cssPath + "/wt_ie.css", "lt IE 7");
4749
useStyleSheet("css/home.css");
@@ -188,8 +190,14 @@ void Home::setLanguage(int index)
188190

189191
WWidget *Home::linkSourceBrowser(const std::string& example)
190192
{
191-
WAnchor *a = new WAnchor("", tr("source-browser"));
192-
a->setRefInternalPath("/" + SRC_INTERNAL_PATH + "/" + example);
193+
/*
194+
* Instead of using a WAnchor, which will not progress properly because
195+
* it is wrapped with wrapView() (-- should we not fix that?), we use
196+
* a WText which contains an anchor, and enable internal path encoding.
197+
*/
198+
std::string path = "#/" + SRC_INTERNAL_PATH + "/" + example;
199+
WText *a = new WText(tr("source-browser-link").arg(path));
200+
a->setInternalPathEncoding(true);
193201
return a;
194202
}
195203

@@ -276,7 +284,9 @@ WWidget *Home::features()
276284

277285
WWidget *Home::documentation()
278286
{
279-
return new WText(tr("home.documentation"));
287+
WText *result = new WText(tr("home.documentation"));
288+
result->setInternalPathEncoding(true);
289+
return result;
280290
}
281291

282292
WWidget *Home::otherLanguage()
@@ -343,6 +353,48 @@ void Home::readReleases(WTable *releaseTable)
343353
}
344354
}
345355

356+
#ifdef WT_EMWEB_BUILD
357+
WWidget *Home::quoteForm()
358+
{
359+
WContainerWidget *result = new WContainerWidget();
360+
result->setStyleClass("quote");
361+
362+
WPushButton *quoteButton = new WPushButton(tr("quote.request"), result);
363+
WWidget *quoteForm = createQuoteForm();
364+
result->addWidget(quoteForm);
365+
366+
quoteButton->clicked().connect(quoteForm, &WWidget::show);
367+
quoteButton->clicked().connect(quoteButton, &WWidget::hide);
368+
369+
quoteForm->hide();
370+
371+
return result;
372+
}
373+
#endif // WT_EMWEB_BUILD
374+
375+
WWidget *Home::download()
376+
{
377+
WContainerWidget *result = new WContainerWidget();
378+
result->addWidget(new WText(tr("home.download")));
379+
380+
result->addWidget(new WText(tr("home.download.license")));
381+
382+
#ifdef WT_EMWEB_BUILD
383+
result->addWidget(quoteForm());
384+
#endif // WT_EMWEB_BUILD
385+
386+
result->addWidget(new WText(tr("home.download.packages")));
387+
388+
releases_ = new WTable();
389+
readReleases(releases_);
390+
result->addWidget(releases_);
391+
392+
result->addWidget(new WText(tr("home.download.other")));
393+
394+
return result;
395+
}
396+
397+
346398
WString Home::tr(const char *key)
347399
{
348400
return WString::tr(key);

examples/wt-homepage/Home.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class Home : public WApplication
7777

7878
protected:
7979
virtual WWidget *examples() = 0;
80-
virtual WWidget *download() = 0;
80+
virtual WWidget *createQuoteForm() = 0;
8181
virtual WWidget *sourceViewer(const std::string &deployPath) = 0;
8282
virtual std::string filePrefix() const = 0;
8383

@@ -109,6 +109,8 @@ class Home : public WApplication
109109
WWidget *documentation();
110110
WWidget *community();
111111
WWidget *otherLanguage();
112+
WWidget *download();
113+
WWidget *quoteForm();
112114

113115
WMenu *mainMenu_;
114116

examples/wt-homepage/JWtHome.C

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,13 @@
66

77
#include "JWtHome.h"
88

9+
#ifdef WT_EMWEB_BUILD
10+
#include "QuoteForm.h"
11+
#endif // WT_EMWEB_BUILD
12+
913
#include <Wt/WText>
1014
#include <Wt/WAnchor>
15+
#include <Wt/WStackedWidget>
1116
#include <Wt/WTreeNode>
1217
#include <Wt/WWidget>
1318
#include <Wt/WViewWidget>
@@ -39,9 +44,13 @@ WWidget *JWtHome::examples()
3944
{
4045
WContainerWidget *result = new WContainerWidget();
4146

42-
result->addWidget(new WText(tr("home.examples")));
47+
WText *intro = new WText(tr("home.examples"));
48+
intro->setInternalPathEncoding(true);
49+
result->addWidget(intro);
4350

4451
examplesMenu_ = new WTabWidget(AlignTop | AlignJustify, result);
52+
WAnimation animation(WAnimation::SlideInFromRight, WAnimation::EaseIn);
53+
examplesMenu_->contentsStack()->setTransitionAnimation(animation, true);
4554

4655
/*
4756
* The following code is functionally equivalent to:
@@ -80,20 +89,13 @@ WWidget *JWtHome::examples()
8089
return result;
8190
}
8291

83-
WWidget *JWtHome::download()
92+
WWidget *JWtHome::createQuoteForm()
8493
{
85-
WContainerWidget *result = new WContainerWidget();
86-
result->addWidget(new WText(tr("home.download")));
87-
result->addWidget(new WText(tr("home.download.license")));
88-
result->addWidget(new WText(tr("home.download.packages")));
89-
90-
releases_ = new WTable();
91-
readReleases(releases_);
92-
result->addWidget(releases_);
93-
result->addWidget(new WText(tr("home.download.requirements")));
94-
result->addWidget(new WText(tr("home.download.cvs")));
95-
96-
return result;
94+
#ifdef WT_EMWEB_BUILD
95+
return new QuoteForm(QuoteForm::JWt);
96+
#else
97+
return 0;
98+
#endif
9799
}
98100

99101
WWidget *JWtHome::sourceViewer(const std::string &deployPath)
@@ -137,7 +139,8 @@ WWidget *JWtHome::chatExample()
137139
WWidget *JWtHome::figtreeExample()
138140
{
139141
WContainerWidget *result = new WContainerWidget();
140-
new WText(tr("home.examples.figtree"), result);
142+
WText *text = new WText(tr("home.examples.figtree"), result);
143+
text->setInternalPathEncoding(true);
141144
return result;
142145
}
143146

examples/wt-homepage/JWtHome.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class JWtHome : public Home
2020

2121
protected:
2222
virtual WWidget *examples();
23-
virtual WWidget *download();
23+
virtual WWidget *createQuoteForm();
2424
virtual WWidget *sourceViewer(const std::string& deployPath);
2525
virtual std::string filePrefix() const { return "jwt-"; }
2626

examples/wt-homepage/WtHome.C

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66

77
#include "WtHome.h"
88

9+
#ifdef WT_EMWEB_BUILD
10+
#include "QuoteForm.h"
11+
#endif // WT_EMWEB_BUILD
12+
913
#include <Wt/WAnchor>
1014
#include <Wt/WEnvironment>
1115
#include <Wt/WLogger>
@@ -38,7 +42,8 @@ WtHome::WtHome(const WEnvironment& env)
3842
WWidget *WtHome::example(const char *textKey, const std::string& sourceDir)
3943
{
4044
WContainerWidget *result = new WContainerWidget();
41-
new WText(tr(textKey), result);
45+
WText *w = new WText(tr(textKey), result);
46+
w->setInternalPathEncoding(true);
4247
result->addWidget(linkSourceBrowser(sourceDir));
4348
return result;
4449
}
@@ -135,23 +140,13 @@ WWidget *WtHome::examples()
135140
return result;
136141
}
137142

138-
WWidget *WtHome::download()
143+
WWidget *WtHome::createQuoteForm()
139144
{
140-
WContainerWidget *result = new WContainerWidget();
141-
result->addWidget(new WText(tr("home.download")));
142-
result->addWidget(new WText(tr("home.download.license")));
143-
result->addWidget(new WText(tr("home.download.packages")));
144-
145-
releases_ = new WTable();
146-
readReleases(releases_);
147-
result->addWidget(releases_);
148-
149-
result->addWidget(new WText(tr("home.download.other")));
150-
151-
result->addWidget(new WText(tr("home.download.requirements")));
152-
result->addWidget(new WText(tr("home.download.cvs")));
153-
154-
return result;
145+
#ifdef WT_EMWEB_BUILD
146+
return new QuoteForm(QuoteForm::Wt);
147+
#else
148+
return 0;
149+
#endif
155150
}
156151

157152
WWidget *WtHome::sourceViewer(const std::string& deployPath)

examples/wt-homepage/WtHome.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class WtHome : public Home
2020

2121
protected:
2222
virtual WWidget *examples();
23-
virtual WWidget *download();
23+
virtual WWidget *createQuoteForm();
2424
virtual WWidget *sourceViewer(const std::string &internalPath);
2525
virtual std::string filePrefix() const { return "wt-"; }
2626

examples/wt-homepage/css/home.css

Lines changed: 87 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ img.java-language-icon {
9898
width: 90%;
9999
margin: 5%;
100100
background: #E1E1E1;
101+
border: 5px solid white;
101102
}
102103

103104
.versions th {
@@ -109,14 +110,99 @@ img.java-language-icon {
109110
width: 7em;
110111
}
111112

112-
.versions td, .versions .trh th {
113+
table.versions td, .versions .trh th {
113114
text-align: center;
114115
}
115116

116117
.versions .indent {
117118
padding-left: 2em;
118119
}
119120

121+
.versions .multiline {
122+
vertical-align: baseline;
123+
}
124+
125+
.versions .separate td, .versions .separate th {
126+
padding-top: 1em;
127+
}
128+
129+
.versions .r0 {
130+
background-color: white;
131+
}
132+
133+
.versions .r1 {
134+
}
135+
120136
#footer_wrapper {
121137
position: relative; /* avoids example menu animation glitch */
138+
}
139+
140+
.price {
141+
font-style: italic;
142+
}
143+
144+
.smallprint {
145+
font-size: smaller;
146+
}
147+
148+
.quote {
149+
text-align: center;
150+
}
151+
152+
.quote .quoteform {
153+
width: 86%;
154+
margin: 5%;
155+
text-align: left;
156+
padding: 2%;
157+
background-color: #F1F1F1;
158+
}
159+
160+
.quote .form {
161+
width: 100%;
162+
line-height: 1.5em;
163+
margin: 1em 0px;
164+
}
165+
166+
.quote .form .label {
167+
text-align: right;
168+
padding-right: 1em;
169+
}
170+
171+
.quote .form .value {
172+
width: 65%;
173+
}
174+
175+
.quote .form input {
176+
width: 100%;
177+
}
178+
179+
.quote .button-box {
180+
text-align: center;
181+
}
182+
183+
.quoteform h4 {
184+
border-top: 0px;
185+
margin-top: 0px;
186+
}
187+
188+
.quoteform .licenses {
189+
width: 98%;
190+
margin: 1em 1%;
191+
}
192+
193+
.quoteform .licenses td.button {
194+
text-align: center;
195+
padding: 0px 0.5em;
196+
}
197+
198+
.quoteform td.button button {
199+
width: 2em;
200+
}
201+
202+
.licenses input {
203+
width: 90%;
204+
}
205+
206+
.quoteform .comment textarea {
207+
width: 99%;
122208
}

0 commit comments

Comments
 (0)