You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
1.7 KiB
84 lines
1.7 KiB
#include "watchos.h"
|
|
#include "Module_UI.h"
|
|
#include "Module_Menu.h"
|
|
#include "Events.h"
|
|
|
|
class Task_Menu : public Task
|
|
{
|
|
private:
|
|
Module_UI* ui;
|
|
Module_Menu* menu;
|
|
bool m_waiting_for_menu = false;
|
|
int m_task_pid = -1;
|
|
|
|
public:
|
|
Task_Menu()
|
|
{
|
|
ui = (Module_UI*)Kernel::get()->getModule(MODULE_UI);
|
|
menu = (Module_Menu*)Kernel::get()->getModule(MODULE_MENU);
|
|
Kernel::get()->subscribe(this, MODULE_INPUT, MODULE_INPUT_EVENT_PRESS);
|
|
}
|
|
|
|
void initialize()
|
|
{
|
|
}
|
|
|
|
void tick(unsigned int signal)
|
|
{
|
|
char msg[255];
|
|
Event* e;
|
|
while (this->hasEvent())
|
|
{
|
|
e = this->popEvent();
|
|
|
|
|
|
if (m_waiting_for_menu && (menu->isSelected() || menu->isCancelled()))
|
|
{
|
|
if (menu->isSelected())
|
|
{
|
|
sprintf(msg, "Selected option %d", menu->getSelected());
|
|
Kernel::debug(msg);
|
|
}
|
|
else if (menu->isCancelled())
|
|
{
|
|
Kernel::debug("Menu cancelled!");
|
|
}
|
|
m_waiting_for_menu = false;
|
|
}
|
|
// Hacky, but it'll work for now
|
|
else if (ui->getRootWindow() == 0 && (e->param1 & MODULE_INPUT_BUTTON_OK) == MODULE_INPUT_BUTTON_OK)
|
|
{
|
|
show();
|
|
m_waiting_for_menu = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
void suspend()
|
|
{
|
|
}
|
|
|
|
void draw(int hwnd, int x, int y, int width, int height)
|
|
{
|
|
}
|
|
|
|
void show()
|
|
{
|
|
Kernel::debug("Task_Menu::show");
|
|
menu->reset();
|
|
menu->addItem(0, "watchos", true);
|
|
menu->addItem(1, "Set Time");
|
|
menu->addItem(2, "Option Two");
|
|
menu->addItem(3, "Option Tres");
|
|
menu->addItem(0, "config", true);
|
|
menu->addItem(4, "Option 1");
|
|
menu->addItem(5, "Option Two");
|
|
menu->addItem(6, "Option Tres");
|
|
menu->show();
|
|
}
|
|
|
|
void execute(int option)
|
|
{
|
|
}
|
|
|
|
};
|