Wt examples 3.3.12
LettersWidget.C
Go to the documentation of this file.
1/*
2 * Copyright (C) 2011 Emweb bvba, Heverlee, Belgium
3 *
4 * See the LICENSE file for terms of use.
5 */
6
7#include "LettersWidget.h"
8
9#include <Wt/WPushButton>
10#include <Wt/WTable>
11#include <Wt/WApplication>
12#include <Wt/WEvent>
13
14using namespace Wt;
15
17 : WCompositeWidget(parent)
18{
20
21 impl_->resize(13*30, WLength::Auto);
22
23 for (unsigned int i = 0; i < 26; ++i) {
24 std::string c(1, 'A' + i);
25 WPushButton *character = new WPushButton(c,
26 impl_->elementAt(i / 13, i % 13));
27 letterButtons_.push_back(character);
28 character->resize(WLength(30), WLength::Auto);
29
30 character->clicked().connect
31 (boost::bind(&LettersWidget::processButton, this, character));
32
33 WApplication::instance()->globalKeyPressed().connect
34 (boost::bind(&LettersWidget::processButtonPushed, this, _1, character));
35 }
36}
37
43
45{
46 if(isHidden())
47 return;
48
49 if(e.key() == b->text().toUTF8()[0])
51}
52
54{
55 for (unsigned int i = 0; i < letterButtons_.size(); ++i)
57
58 show();
59}
std::vector< Wt::WPushButton * > letterButtons_
void processButton(Wt::WPushButton *b)
Wt::WTable * impl_
void processButtonPushed(const Wt::WKeyEvent &e, Wt::WPushButton *b)
Wt::Signal< char > letterPushed_
LettersWidget(Wt::WContainerWidget *parent=0)
void emit(A1 a1=NoClass::none, A2 a2=NoClass::none, A3 a3=NoClass::none, A4 a4=NoClass::none, A5 a5=NoClass::none, A6 a6=NoClass::none) const
virtual bool isHidden() const
void setImplementation(WWidget *widget)
EventSignal< WMouseEvent > & clicked()
Key key() const
static WLength Auto
const WString & text() const
std::string toUTF8() const
WTableCell * elementAt(int row, int column)
virtual void resize(const WLength &width, const WLength &height)
void disable()
void enable()

Generated on Fri May 17 2024 for the C++ Web Toolkit (Wt) by doxygen 1.9.8