Files
MuditaOS/module-apps/application-settings/windows/DateTimeWindow.hpp
kkleczkowski e4b7e9202e Egd 2507 settings date (#164)
* [EGD-2507] Wip on Date and Time window.

* [EGD-2507] Utlis, timeDateFormat in settings.db.

* [EGD-2507] - WiP on DateTimeWindow.

* [EGD-2507] dateTimeWindow layout + time validation + database_v2.md update.

* [EGD-2507] Code clean-up.

* [EGD-2507] Fixes after rebase, unused include removed.

* [ EGD-2507 ] PR suggestions.

* [ EGD-2507 ] Fixed missing 0 minutes, pr suggestions.

* [EGD-2507-settings-date] Fixes after rebase.
2020-03-05 14:32:06 +01:00

65 lines
1.7 KiB
C++

/*
* DateTimeWindow.hpp
*
* Created on: 28 sty 2020
* Author: kuba
*/
#pragma once
#include <functional>
#include <string>
#include "AppWindow.hpp"
#include "gui/widgets/BottomBar.hpp"
#include "gui/widgets/Image.hpp"
#include "gui/widgets/Label.hpp"
#include "gui/widgets/TopBar.hpp"
#include "gui/widgets/Window.hpp"
#include <widgets/BoxLayout.hpp>
namespace gui
{
class DateTimeWindow : public AppWindow
{
protected:
enum class DateTimeItems
{
Day,
Month,
Year,
Hour,
Minute,
};
std::map<DateTimeItems, gui::Item *> dateItems;
std::map<DateTimeItems, gui::Item *> timeItems;
gui::HBox *dateBody = nullptr;
gui::HBox *timeBody = nullptr;
bool timeFormat12h = false;
bool timeDateFormat = false; // true europe format, flase american format
bool dayPeriod = false; // day period indicator false am, true pm
gui::Label *addDateTimeItem(Item *parent, const UTF8 &itemTitle, const UTF8 &value);
gui::Label *addSpacer(const UTF8 &text);
bool onInput(const InputEvent &inputEvent) override;
std::string getDateTimeItemValue(DateTimeItems itemType);
bool setDate(int32_t value);
bool setTime(int32_t value);
void setRTC(void);
public:
DateTimeWindow(app::Application *app);
virtual ~DateTimeWindow();
// virtual methods
void onBeforeShow(ShowMode mode, SwitchData *data) override;
void rebuild() override;
void buildInterface() override;
void destroyInterface() override;
};
} /* namespace gui */