Wt examples 4.7.2
Public Member Functions | Private Member Functions | Private Attributes | List of all members
LettersWidget Class Reference

#include <LettersWidget.h>

Inheritance diagram for LettersWidget:
Inheritance graph
[legend]

Public Member Functions

 LettersWidget ()
 
virtual ~LettersWidget ()
 
void reset ()
 
Signal< char > & letterPushed ()
 

Private Member Functions

void processButton (WPushButton *b)
 
void processButtonPushed (const WKeyEvent &e, WPushButton *b)
 

Private Attributes

WTable * impl_
 
std::vector< WPushButton * > letterButtons_
 
std::vector< Wt::Signals::connection > connections_
 
Signal< char > letterPushed_
 

Detailed Description

Definition at line 21 of file LettersWidget.h.

Constructor & Destructor Documentation

◆ LettersWidget()

LettersWidget::LettersWidget ( )

Definition at line 17 of file LettersWidget.C.

18 : WCompositeWidget()
19{
20 impl_ = new WTable();
21 setImplementation(std::unique_ptr<WTable>(impl_));
22
23 impl_->resize(13*30, WLength::Auto);
24
25 for (unsigned int i = 0; i < 26; ++i) {
26 std::string c(1, 'A' + i);
27 WPushButton *character
28 = impl_->elementAt(i / 13, i % 13)->addWidget(std::make_unique<WPushButton>(c));
29 letterButtons_.push_back(character);
30 character->resize(WLength(30), WLength::Auto);
31
32 character->clicked().connect
33 (std::bind(&LettersWidget::processButton, this, character));
34
35 connections_.push_back(WApplication::instance()->globalKeyPressed().connect
36 (std::bind(&LettersWidget::processButtonPushed, this, std::placeholders::_1, character)));
37 }
38}
WTable * impl_
Definition: LettersWidget.h:32
std::vector< Wt::Signals::connection > connections_
Definition: LettersWidget.h:34
void processButton(WPushButton *b)
Definition: LettersWidget.C:46
void processButtonPushed(const WKeyEvent &e, WPushButton *b)
Definition: LettersWidget.C:52
std::vector< WPushButton * > letterButtons_
Definition: LettersWidget.h:33

◆ ~LettersWidget()

LettersWidget::~LettersWidget ( )
virtual

Definition at line 40 of file LettersWidget.C.

41{
42 for (auto &connection : connections_)
43 connection.disconnect();
44}

Member Function Documentation

◆ letterPushed()

Signal< char > & LettersWidget::letterPushed ( )
inline

Definition at line 29 of file LettersWidget.h.

29{ return letterPushed_; }
Signal< char > letterPushed_
Definition: LettersWidget.h:36

◆ processButton()

void LettersWidget::processButton ( WPushButton *  b)
private

Definition at line 46 of file LettersWidget.C.

47{
48 b->disable();
49 letterPushed_.emit(b->text().toUTF8()[0]);
50}

◆ processButtonPushed()

void LettersWidget::processButtonPushed ( const WKeyEvent &  e,
WPushButton *  b 
)
private

Definition at line 52 of file LettersWidget.C.

53{
54 if (isHidden())
55 return;
56
57 if(e.key() == static_cast<Key>(b->text().toUTF8()[0]))
59}

◆ reset()

void LettersWidget::reset ( )

Definition at line 61 of file LettersWidget.C.

62{
63 for (auto& letterButton : letterButtons_)
64 letterButton->enable();
65
66 show();
67}

Member Data Documentation

◆ connections_

std::vector<Wt::Signals::connection> LettersWidget::connections_
private

Definition at line 34 of file LettersWidget.h.

◆ impl_

WTable* LettersWidget::impl_
private

Definition at line 32 of file LettersWidget.h.

◆ letterButtons_

std::vector<WPushButton *> LettersWidget::letterButtons_
private

Definition at line 33 of file LettersWidget.h.

◆ letterPushed_

Signal<char> LettersWidget::letterPushed_
private

Definition at line 36 of file LettersWidget.h.


The documentation for this class was generated from the following files:

Generated on Fri May 13 2022 for the C++ Web Toolkit (Wt) by doxygen 1.9.4