#include <wvar.h>
Inheritance diagram for Wt::WVarBase< VARTYPE >:
Public Member Functions | |
WVarBase (VARTYPE value=0) | |
VARTYPE | readValue () const |
VARTYPE | get (VARTYPE) const |
usefull for overrides and variables connection | |
void | set (VARTYPE value) |
void | connect (WVarBase &var) |
connect as a proxy to another WVar | |
operator VARTYPE () const | |
operator const std::string () const | |
WVarBase & | operator+= (const VARTYPE &value) |
WVarBase & | operator-= (const VARTYPE &value) |
WVarBase & | operator++ () |
prefix operator | |
WVarBase & | operator-- () |
WVarBase & | operator++ (int) |
postfix operator | |
WVarBase & | operator-- (int) |
Public Attributes | |
Signal012M< bool, VARTYPE, VARTYPE, Blocker > | aboutToChange |
Signal012< void, VARTYPE, VARTYPE > | changed |
Signal01< void, VARTYPE > | read |
sigc::signal1< VARTYPE, VARTYPE, Overrider > | override |
Protected Types | |
typedef std::pair< bool, VARTYPE > | ValidValue |
Protected Member Functions | |
const VARTYPE & | getValue () const |
avoids emitting read signal | |
void | setValue (const VARTYPE &value) |
avoids emitting aboutToChange, changed signal | |
WVarBase & | operator= (VARTYPE value) |
WVarBase & | operator= (const WVarBase &value) |
Private Attributes | |
VARTYPE | value_ |
Classes | |
class | Blocker |
Marshaler. More... | |
class | OverideValue |
class | Overrider |
Marshaler to override all values but the last. More... | |
class | RW |
A WVar watched variable is a templated attempt to vanquish the get set methods that accompanies object oriented programming.
if a slot from the ones that are called during aboutToChange returns true then the change is aborted.
A WVar variable can be publically read/write or protected. The default is to be publically read/write. If you do not wish for your variable to be publically readable just make your damn variable protected/private.
WVar<int> a is a read/write int variable. WVar<int, C> a is a publically readable and read/write for class C.
Example: see test/vars.c
Definition at line 65 of file wvar.h.
typedef std::pair<bool, VARTYPE> Wt::WVarBase< VARTYPE >::ValidValue [protected] |
Wt::WVarBase< VARTYPE >::WVarBase | ( | VARTYPE | value = 0 |
) | [inline] |
void Wt::WVarBase< VARTYPE >::connect | ( | WVarBase< VARTYPE > & | var | ) | [inline] |
connect as a proxy to another WVar
Definition at line 182 of file wvar.h.
Referenced by Wt::Frame::onLayoutChange().
00182 { 00183 // set the real variable to the proxy value 00184 var = getValue(); 00185 00186 changed.connect( 00187 sigc::slot1<void, VARTYPE>( 00188 sigc::mem_fun(var, &WVarBase::set 00189 ))); 00190 00191 override.connect(sigc::mem_fun(var, &WVarBase::get 00192 )); 00193 }
VARTYPE Wt::WVarBase< VARTYPE >::get | ( | VARTYPE | ) | const [inline] |
usefull for overrides and variables connection
Definition at line 172 of file wvar.h.
Referenced by Wt::WVarBase< ExpandData >::connect().
00172 { 00173 return readValue(); 00174 }
const VARTYPE& Wt::WVarBase< VARTYPE >::getValue | ( | ) | const [inline, protected] |
avoids emitting read signal
Definition at line 121 of file wvar.h.
Referenced by Wt::WVarBase< ExpandData >::connect().
00121 { 00122 return value_; 00123 }
Wt::WVarBase< VARTYPE >::operator const std::string | ( | ) | const [inline] |
Wt::WVarBase< VARTYPE >::operator VARTYPE | ( | ) | const [inline] |
Definition at line 195 of file wvar.h.
References Wt::WVarBase< VARTYPE >::readValue().
00195 { 00196 return readValue(); 00197 }
Here is the call graph for this function:
WVarBase& Wt::WVarBase< VARTYPE >::operator++ | ( | int | ) | [inline] |
WVarBase& Wt::WVarBase< VARTYPE >::operator++ | ( | ) | [inline] |
WVarBase& Wt::WVarBase< VARTYPE >::operator+= | ( | const VARTYPE & | value | ) | [inline] |
WVarBase& Wt::WVarBase< VARTYPE >::operator-- | ( | int | ) | [inline] |
WVarBase& Wt::WVarBase< VARTYPE >::operator-- | ( | ) | [inline] |
WVarBase& Wt::WVarBase< VARTYPE >::operator-= | ( | const VARTYPE & | value | ) | [inline] |
WVarBase& Wt::WVarBase< VARTYPE >::operator= | ( | const WVarBase< VARTYPE > & | value | ) | [inline, protected] |
WVarBase& Wt::WVarBase< VARTYPE >::operator= | ( | VARTYPE | value | ) | [inline, protected] |
VARTYPE Wt::WVarBase< VARTYPE >::readValue | ( | ) | const [inline] |
Definition at line 161 of file wvar.h.
Referenced by Wt::WVarBase< ExpandData >::get(), Wt::WVarBase< ExpandData >::operator const std::string(), and Wt::WVarBase< VARTYPE >::operator VARTYPE().
00161 { 00162 read.emit(value_); 00163 const OverideValue v = override.emit(value_); 00164 return (v.isValid()) ? v.value() : value_; 00165 }
void Wt::WVarBase< VARTYPE >::set | ( | VARTYPE | value | ) | [inline] |
void Wt::WVarBase< VARTYPE >::setValue | ( | const VARTYPE & | value | ) | [inline, protected] |
avoids emitting aboutToChange, changed signal
Definition at line 126 of file wvar.h.
Referenced by Wt::WVarBase< ExpandData >::operator=().
00126 { 00127 value_ = value; 00128 }
Signal012M<bool, VARTYPE, VARTYPE, Blocker> Wt::WVarBase< VARTYPE >::aboutToChange |
Definition at line 156 of file wvar.h.
Referenced by Wt::Layout::init(), and Wt::WVarBase< ExpandData >::operator=().
Signal012<void, VARTYPE, VARTYPE> Wt::WVarBase< VARTYPE >::changed |
Definition at line 157 of file wvar.h.
Referenced by Wt::WVarBase< ExpandData >::connect(), Wt::Frame::Frame(), Wt::PushButton::init(), Wt::Layout::init(), Wt::Label::init(), Wt::CascadeLayout::init(), Wt::WVarBase< ExpandData >::operator=(), and Wt::Widget::Widget().
sigc::signal1<VARTYPE, VARTYPE, Overrider> Wt::WVarBase< VARTYPE >::override [mutable] |
Definition at line 159 of file wvar.h.
Referenced by Wt::WVarBase< ExpandData >::connect(), Wt::Layout::init(), Wt::WVarBase< ExpandData >::readValue(), and Wt::Widget::Widget().
Signal01<void, VARTYPE> Wt::WVarBase< VARTYPE >::read [mutable] |
VARTYPE Wt::WVarBase< VARTYPE >::value_ [private] |
Definition at line 145 of file wvar.h.
Referenced by Wt::WVarBase< ExpandData >::getValue(), Wt::WVarBase< ExpandData >::operator=(), Wt::WVarBase< ExpandData >::readValue(), Wt::WVarBase< ExpandData >::setValue(), and Wt::WVarBase< ExpandData >::WVarBase().
This document is licensed under the terms of the GNU Free Documentation License and may be freely distributed under the conditions given by this license.