Wt examples  4.0.3
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(cpp14::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 }
void processButton(WPushButton *b)
Definition: LettersWidget.C:46
std::vector< Wt::Signals::connection > connections_
Definition: LettersWidget.h:34
void processButtonPushed(const WKeyEvent &e, WPushButton *b)
Definition: LettersWidget.C:52
std::vector< WPushButton * > letterButtons_
Definition: LettersWidget.h:33
WTable * impl_
Definition: LettersWidget.h:32

◆ ~LettersWidget()

LettersWidget::~LettersWidget ( )
virtual

Definition at line 40 of file LettersWidget.C.

41 {
42  for (auto &connection : connections_)
43  connection.disconnect();
44 }
std::vector< Wt::Signals::connection > connections_
Definition: LettersWidget.h:34

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 }
Signal< char > letterPushed_
Definition: LettersWidget.h:36

◆ 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]))
58  processButton(b);
59 }
void processButton(WPushButton *b)
Definition: LettersWidget.C:46

◆ 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 }
std::vector< WPushButton * > letterButtons_
Definition: LettersWidget.h:33

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 Mon Jul 23 2018 for the C++ Web Toolkit (Wt) by doxygen 1.8.14