platform for developing on SQFMI's Watchy
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

#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)
{
}
};