[apps/stats] Handle the upperleft cell navigation in calculation

This commit is contained in:
Léa Saviot
2018-05-28 15:34:47 +02:00
parent 5f59feb1a3
commit 4e9767b3c9
4 changed files with 40 additions and 5 deletions

View File

@@ -10,6 +10,7 @@ app_objs += $(addprefix apps/statistics/,\
box_view.o\
calculation_cell.o\
calculation_controller.o\
calculation_selectable_table_view.o\
histogram_banner_view.o\
histogram_controller.o\
histogram_parameter_controller.o\

View File

@@ -1,7 +1,8 @@
#include "calculation_controller.h"
#include "app.h"
#include "calculation_selectable_table_view.h"
#include "../constant.h"
#include "../apps_container.h"
#include "app.h"
#include <poincare.h>
#include <assert.h>
@@ -214,10 +215,12 @@ View * CalculationController::loadView() {
}
m_hideableCell = new HideableEvenOddCell();
m_hideableCell->setHide(true);
View * result = TabTableController::loadView();
SelectableTableView * casterResult = static_cast<SelectableTableView *>(result);
casterResult->setMargins(k_margin, k_scrollBarMargin, k_scrollBarMargin, k_margin);
return result;
CalculationSelectableTableView * selectableTableView = new CalculationSelectableTableView(this, this, this);
selectableTableView->setBackgroundColor(Palette::WallScreenDark);
selectableTableView->setVerticalCellOverlap(0);
selectableTableView->setMargins(k_margin, k_scrollBarMargin, k_scrollBarMargin, k_margin);
return selectableTableView;
}

View File

@@ -0,0 +1,15 @@
#include "calculation_selectable_table_view.h"
namespace Statistics {
bool CalculationSelectableTableView::handleEvent(Ion::Events::Event event) {
if (event == Ion::Events::Up && selectedColumn() == 0 && selectedRow() == 1) {
return false;
}
if (event == Ion::Events::Left && selectedColumn() == 1 && selectedRow() == 0) {
return selectCellAtLocation(0, 1);
}
return SelectableTableView::handleEvent(event);
}
}

View File

@@ -0,0 +1,16 @@
#ifndef APPS_STATISTICS_CALCULATION_SELECTABLE_TABLE_VIEW_H
#define APPS_STATISTICS_CALCULATION_SELECTABLE_TABLE_VIEW_H
#include <escher/selectable_table_view.h>
namespace Statistics {
class CalculationSelectableTableView : public SelectableTableView {
public:
using SelectableTableView::SelectableTableView;
bool handleEvent(Ion::Events::Event event) override;
};
}
#endif