diff options
author | Yuqian Yang <crupest@outlook.com> | 2018-10-01 17:11:11 +0000 |
---|---|---|
committer | Yuqian Yang <crupest@outlook.com> | 2018-10-01 17:11:11 +0000 |
commit | 30ecda8bb354d5982978af97aa90b5f49d9ea195 (patch) | |
tree | a271bddb244fa2041f14f8d46d249457cee09e5f /src/base.cpp | |
parent | 398b8f3ba535bb43c4b8593e3027c14894a7a211 (diff) | |
parent | 040a6c18f18100b825a56443a73aa1de64e4518c (diff) | |
download | cru-30ecda8bb354d5982978af97aa90b5f49d9ea195.tar.gz cru-30ecda8bb354d5982978af97aa90b5f49d9ea195.tar.bz2 cru-30ecda8bb354d5982978af97aa90b5f49d9ea195.zip |
Merge branch '9-border' into 'master'
Resolve "Abstract out border control of button and border."
Closes #9
See merge request crupest/CruUI!11
Diffstat (limited to 'src/base.cpp')
-rw-r--r-- | src/base.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/base.cpp b/src/base.cpp index f5868170..57a4848e 100644 --- a/src/base.cpp +++ b/src/base.cpp @@ -17,4 +17,25 @@ namespace cru throw Win32Error(::GetLastError(), "Failed to convert wide string to UTF-8."); return result; } + + void PropertyChangedNotifyObject::AddPropertyChangedListener(FunctionPtr<void(String)> listener) + { + listeners_.push_back(std::move(listener)); + } + + void PropertyChangedNotifyObject::RemovePropertyChangedListener(const FunctionPtr<void(String)>& listener) + { + for (auto i = listeners_.cbegin(); i != listeners_.cend(); ++i) + if (*i == listener) + { + listeners_.erase(i); + break; + } + } + + void PropertyChangedNotifyObject::RaisePropertyChangedEvent(String property_name) + { + for (const auto& listener : listeners_) + (*listener)(property_name); + } } |