mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[apps/settings] Add math_options_controller and amend it into main_controller and makefile
This commit is contained in:
@@ -14,6 +14,7 @@ app_settings_src = $(addprefix apps/settings/,\
|
||||
sub_menu/message_table_cell_with_editable_text_with_separator.cpp \
|
||||
sub_menu/preferences_controller.cpp \
|
||||
sub_menu/contributors_controller.cpp \
|
||||
sub_menu/math_options_controller.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_settings_src)
|
||||
|
||||
@@ -12,8 +12,7 @@ MainController::MainController(Responder * parentResponder, InputEventHandlerDel
|
||||
m_brightnessCell(I18n::Message::Default, KDFont::LargeFont),
|
||||
m_popUpCell(I18n::Message::Default, KDFont::LargeFont),
|
||||
m_selectableTableView(this),
|
||||
m_preferencesController(this),
|
||||
m_displayModeController(this, inputEventHandlerDelegate),
|
||||
m_mathOptionsController(this, inputEventHandlerDelegate),
|
||||
m_languageController(this, 13),
|
||||
m_accessibilityController(this),
|
||||
m_examModeController(this),
|
||||
@@ -66,9 +65,7 @@ bool MainController::handleEvent(Ion::Events::Event event) {
|
||||
}
|
||||
if (event == Ion::Events::OK || event == Ion::Events::EXE || event == Ion::Events::Right) {
|
||||
GenericSubController * subController = nullptr;
|
||||
if (model()->children(selectedRow())->label() == I18n::Message::DisplayMode) {
|
||||
subController = &m_displayModeController;
|
||||
} else if (model()->children(selectedRow())->label() == I18n::Message::Brightness || model()->children(selectedRow())->label() == I18n::Message::Language) {
|
||||
if (model()->children(selectedRow())->label() == I18n::Message::Brightness || model()->children(selectedRow())->label() == I18n::Message::Language) {
|
||||
assert(false);
|
||||
} else if (model()->children(selectedRow())->label() == I18n::Message::ExamMode) {
|
||||
subController = &m_examModeController;
|
||||
@@ -76,8 +73,8 @@ bool MainController::handleEvent(Ion::Events::Event event) {
|
||||
subController = &m_aboutController;
|
||||
} else if (model()->children(selectedRow())->label() == I18n::Message::Accessibility) {
|
||||
subController = &m_accessibilityController;
|
||||
} else {
|
||||
subController = &m_preferencesController;
|
||||
} else if (model()->children(selectedRow())->label() == I18n::Message::MathOptions) {
|
||||
subController = &m_mathOptionsController;
|
||||
}
|
||||
subController->setMessageTreeModel(model()->children(selectedRow()));
|
||||
StackViewController * stack = stackController();
|
||||
@@ -136,7 +133,6 @@ int MainController::typeAtLocation(int i, int j) {
|
||||
|
||||
void MainController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
GlobalPreferences * globalPreferences = GlobalPreferences::sharedGlobalPreferences();
|
||||
Preferences * preferences = Preferences::sharedPreferences();
|
||||
MessageTableCell * myCell = (MessageTableCell *)cell;
|
||||
I18n::Message thisLabel = model()->children(index)->label();
|
||||
myCell->setMessage(thisLabel);
|
||||
@@ -159,28 +155,6 @@ void MainController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
mySwitch->setState(globalPreferences->showPopUp());
|
||||
return;
|
||||
}
|
||||
|
||||
//add text for preferences
|
||||
MessageTableCellWithChevronAndMessage * myTextCell = (MessageTableCellWithChevronAndMessage *)cell;
|
||||
int childIndex = -1;
|
||||
switch (thisLabel) {
|
||||
case I18n::Message::AngleUnit:
|
||||
childIndex = (int)preferences->angleUnit();
|
||||
break;
|
||||
case I18n::Message::DisplayMode:
|
||||
childIndex = (int)preferences->displayMode();
|
||||
break;
|
||||
case I18n::Message::EditionMode:
|
||||
childIndex = (int)preferences->editionMode();
|
||||
break;
|
||||
case I18n::Message::ComplexFormat:
|
||||
childIndex = (int)preferences->complexFormat();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
I18n::Message message = childIndex >= 0 ? model()->children(index)->children(childIndex)->label() : I18n::Message::Default;
|
||||
myTextCell->setSubtitle(message);
|
||||
}
|
||||
|
||||
void MainController::viewWillAppear() {
|
||||
|
||||
@@ -5,10 +5,9 @@
|
||||
#include "settings_message_tree.h"
|
||||
#include "sub_menu/about_controller.h"
|
||||
#include "sub_menu/accessibility_controller.h"
|
||||
#include "sub_menu/display_mode_controller.h"
|
||||
#include "sub_menu/exam_mode_controller.h"
|
||||
#include "sub_menu/language_controller.h"
|
||||
#include "sub_menu/preferences_controller.h"
|
||||
#include "sub_menu/math_options_controller.h"
|
||||
|
||||
namespace Settings {
|
||||
|
||||
@@ -32,13 +31,12 @@ private:
|
||||
StackViewController * stackController() const;
|
||||
I18n::Message promptMessage() const;
|
||||
bool hasPrompt() const { return promptMessage() != I18n::Message::Default; }
|
||||
constexpr static int k_numberOfSimpleChevronCells = 7;
|
||||
constexpr static int k_numberOfSimpleChevronCells = 5;
|
||||
MessageTableCellWithChevronAndMessage m_cells[k_numberOfSimpleChevronCells];
|
||||
MessageTableCellWithGauge m_brightnessCell;
|
||||
MessageTableCellWithSwitch m_popUpCell;
|
||||
SelectableTableView m_selectableTableView;
|
||||
PreferencesController m_preferencesController;
|
||||
DisplayModeController m_displayModeController;
|
||||
MathOptionsController m_mathOptionsController;
|
||||
LanguageController m_languageController;
|
||||
AccessibilityController m_accessibilityController;
|
||||
ExamModeController m_examModeController;
|
||||
|
||||
73
apps/settings/sub_menu/math_options_controller.cpp
Normal file
73
apps/settings/sub_menu/math_options_controller.cpp
Normal file
@@ -0,0 +1,73 @@
|
||||
#include "math_options_controller.h"
|
||||
#include <assert.h>
|
||||
#include "../../global_preferences.h"
|
||||
|
||||
using namespace Poincare;
|
||||
|
||||
namespace Settings {
|
||||
|
||||
MathOptionsController::MathOptionsController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate) :
|
||||
GenericSubController(parentResponder),
|
||||
m_preferencesController(this),
|
||||
m_displayModeController(this, inputEventHandlerDelegate)
|
||||
{
|
||||
for (int i = 0; i < k_totalNumberOfCell; i++) {
|
||||
m_cells[i].setMessageFont(KDFont::LargeFont);
|
||||
}
|
||||
}
|
||||
|
||||
bool MathOptionsController::handleEvent(Ion::Events::Event event) {
|
||||
if (event == Ion::Events::OK || event == Ion::Events::EXE || event == Ion::Events::Right) {
|
||||
GenericSubController * subController = nullptr;
|
||||
if (m_messageTreeModel->children(selectedRow())->label() == I18n::Message::DisplayMode)
|
||||
subController = &m_displayModeController;
|
||||
else
|
||||
subController = &m_preferencesController;
|
||||
subController->setMessageTreeModel(m_messageTreeModel->children(selectedRow()));
|
||||
StackViewController * stack = stackController();
|
||||
stack->push(subController);
|
||||
return true;
|
||||
}
|
||||
return GenericSubController::handleEvent(event);
|
||||
}
|
||||
|
||||
HighlightCell * MathOptionsController::reusableCell(int index, int type) {
|
||||
assert(type == 0);
|
||||
assert(index >= 0 && index < k_totalNumberOfCell);
|
||||
return &m_cells[index];
|
||||
}
|
||||
|
||||
int MathOptionsController::reusableCellCount(int type) {
|
||||
assert(type == 0);
|
||||
return k_totalNumberOfCell;
|
||||
}
|
||||
|
||||
void MathOptionsController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
MessageTableCellWithChevronAndMessage * myTextCell = (MessageTableCellWithChevronAndMessage *)cell;
|
||||
Preferences * preferences = Preferences::sharedPreferences();
|
||||
I18n::Message thisLabel = m_messageTreeModel->children(index)->label();
|
||||
myTextCell->setMessage(thisLabel);
|
||||
|
||||
//add text for preferences
|
||||
int childIndex = -1;
|
||||
switch (thisLabel) {
|
||||
case I18n::Message::AngleUnit:
|
||||
childIndex = (int)preferences->angleUnit();
|
||||
break;
|
||||
case I18n::Message::DisplayMode:
|
||||
childIndex = (int)preferences->displayMode();
|
||||
break;
|
||||
case I18n::Message::EditionMode:
|
||||
childIndex = (int)preferences->editionMode();
|
||||
break;
|
||||
case I18n::Message::ComplexFormat:
|
||||
childIndex = (int)preferences->complexFormat();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
I18n::Message message = childIndex >= 0 ? m_messageTreeModel->children(index)->children(childIndex)->label() : I18n::Message::Default;
|
||||
myTextCell->setSubtitle(message);
|
||||
}
|
||||
|
||||
}
|
||||
27
apps/settings/sub_menu/math_options_controller.h
Normal file
27
apps/settings/sub_menu/math_options_controller.h
Normal file
@@ -0,0 +1,27 @@
|
||||
#ifndef SETTINGS_MATH_OPTIONS_CONTROLLER_H
|
||||
#define SETTINGS_MATH_OPTIONS_CONTROLLER_H
|
||||
|
||||
#include "generic_sub_controller.h"
|
||||
#include <escher.h>
|
||||
#include "display_mode_controller.h"
|
||||
#include "preferences_controller.h"
|
||||
|
||||
namespace Settings {
|
||||
|
||||
class MathOptionsController : public GenericSubController {
|
||||
public:
|
||||
MathOptionsController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate);
|
||||
bool handleEvent(Ion::Events::Event event) override;
|
||||
HighlightCell * reusableCell(int index, int type) override;
|
||||
int reusableCellCount(int type) override;
|
||||
void willDisplayCellForIndex(HighlightCell * cell, int index) override;
|
||||
private:
|
||||
constexpr static int k_totalNumberOfCell = 4;
|
||||
MessageTableCellWithChevronAndMessage m_cells[k_totalNumberOfCell];
|
||||
PreferencesController m_preferencesController;
|
||||
DisplayModeController m_displayModeController;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user