mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[escher] Get rid of DynamicViewController
This commit is contained in:
@@ -10,7 +10,6 @@ objs += $(addprefix escher/src/,\
|
||||
chevron_view.o\
|
||||
clipboard.o\
|
||||
container.o\
|
||||
dynamic_view_controller.o\
|
||||
editable_text_cell.o\
|
||||
ellipsis_view.o\
|
||||
expression_field.o\
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
#include <escher/chevron_view.h>
|
||||
#include <escher/clipboard.h>
|
||||
#include <escher/container.h>
|
||||
#include <escher/dynamic_view_controller.h>
|
||||
#include <escher/expression_field.h>
|
||||
#include <escher/editable_text_cell.h>
|
||||
#include <escher/ellipsis_view.h>
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
#ifndef ESCHER_DYNAMIC_VIEW_CONTROLLER_H
|
||||
#define ESCHER_DYNAMIC_VIEW_CONTROLLER_H
|
||||
|
||||
#include <escher/view_controller.h>
|
||||
|
||||
/* Dynamic view controllers dynamically construct their views when appearring
|
||||
* and delete them when disappearing.
|
||||
* The load method is called before any methods viewWillAppear,
|
||||
* didEnterResponderChain and didBecomeFirstResponder. The unload method is
|
||||
* called after viewWillDisappear, willExitResponderChain or
|
||||
* willResignFirstResponder. */
|
||||
|
||||
class DynamicViewController : public ViewController {
|
||||
public:
|
||||
DynamicViewController(Responder * parentResponder);
|
||||
~DynamicViewController();
|
||||
DynamicViewController(const DynamicViewController& other) = delete;
|
||||
DynamicViewController(DynamicViewController&& other) = delete;
|
||||
DynamicViewController& operator=(const DynamicViewController& other) = delete;
|
||||
DynamicViewController& operator=(DynamicViewController&& other) = delete;
|
||||
View * view() override;
|
||||
void viewWillAppear() override;
|
||||
void viewDidDisappear() override;
|
||||
private:
|
||||
void loadViewIfNeeded();
|
||||
void unloadViewIfNeeded();
|
||||
virtual View * loadView() = 0;
|
||||
virtual void unloadView(View * view) = 0;
|
||||
View * m_view;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,40 +0,0 @@
|
||||
#include <escher/dynamic_view_controller.h>
|
||||
#include <escher/app.h>
|
||||
#include <assert.h>
|
||||
|
||||
DynamicViewController::DynamicViewController(Responder * parentResponder) :
|
||||
ViewController(parentResponder),
|
||||
m_view(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
DynamicViewController::~DynamicViewController() {
|
||||
assert(m_view == nullptr);
|
||||
}
|
||||
|
||||
View * DynamicViewController::view() {
|
||||
loadViewIfNeeded();
|
||||
return m_view;
|
||||
}
|
||||
|
||||
void DynamicViewController::viewWillAppear() {
|
||||
loadViewIfNeeded();
|
||||
}
|
||||
|
||||
void DynamicViewController::viewDidDisappear() {
|
||||
unloadViewIfNeeded();
|
||||
}
|
||||
|
||||
void DynamicViewController::loadViewIfNeeded() {
|
||||
if (m_view == nullptr) {
|
||||
m_view = loadView();
|
||||
assert(m_view != nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
void DynamicViewController::unloadViewIfNeeded() {
|
||||
if (m_view != nullptr) {
|
||||
unloadView(m_view);
|
||||
m_view = nullptr;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user