[escher] Get rid of DynamicViewController

This commit is contained in:
Émilie Feral
2018-09-11 11:40:12 +02:00
parent 5879ccbb35
commit 880904bcbb
4 changed files with 0 additions and 74 deletions

View File

@@ -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\

View File

@@ -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>

View File

@@ -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

View File

@@ -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;
}
}