Insulate ui::Context a bit from its clients.

Add accessor methods.
This commit is contained in:
Jared Boone
2015-11-09 11:56:40 -08:00
parent 85383e488b
commit 47a3ffb15a
9 changed files with 35 additions and 23 deletions

View File

@@ -200,7 +200,7 @@ void Widget::hidden(bool hide) {
}
void Widget::focus() {
context().focus_manager.set_focus_widget(this);
context().focus_manager().set_focus_widget(this);
}
void Widget::on_focus() {
@@ -208,7 +208,7 @@ void Widget::on_focus() {
}
void Widget::blur() {
context().focus_manager.set_focus_widget(nullptr);
context().focus_manager().set_focus_widget(nullptr);
}
void Widget::on_blur() {
@@ -220,7 +220,7 @@ bool Widget::focusable() const {
}
bool Widget::has_focus() {
return (context().focus_manager.focus_widget() == this);
return (context().focus_manager().focus_widget() == this);
}
Widget* Widget::last_child_focus() const {

View File

@@ -47,9 +47,19 @@ std::string to_string_dec_uint(const uint32_t n, const int32_t l = 0, const char
std::string to_string_dec_int(const int32_t n, const int32_t l = 0, const char fill = 0);
std::string to_string_hex(const uint32_t n, const int32_t l = 0);
struct Context {
FocusManager focus_manager;
MessageHandlerMap message_map;
class Context {
public:
FocusManager& focus_manager() {
return focus_manager_;
}
MessageHandlerMap& message_map() {
return message_map_;
}
private:
FocusManager focus_manager_;
MessageHandlerMap message_map_;
};
class Widget {