Librerías \ MenuItem

Referencia para la versión de Wiring 1.0 Build 0100+. Si tiene una versión previa, use la referencia incluida con su software. Si encuentra errores o tiene comentarios, no dude en contactarnos.

Nombre

MenuItem

Ejemplos
#include <MenuBackend.h>

//this controls the menu backend and the event generation
MenuBackend menu = MenuBackend(menuUseEvent,menuChangeEvent);
//beneath is list of menu items needed to build the menu
MenuItem settings   = MenuItem(menu, "Settings", 1);
MenuItem pin      = MenuItem(menu, "Pin", 2);
MenuItem debug    = MenuItem(menu, "Debug", 2);
MenuItem options    = MenuItem(menu, "Options", 1);
MenuItem setDelay = MenuItem(menu, "Delay",'D', 2);
MenuItem d100   = MenuItem(menu, "100 ms", 3);
MenuItem d200   = MenuItem(menu, "200 ms", 3);
MenuItem d300   = MenuItem(menu, "300 ms", 3);
MenuItem d400   = MenuItem(menu, "400 ms", 3);

//this function builds the menu and connects the correct items together
void menuSetup()
{
  Serial.println("Setting up menu...");
  //add the file menu to the menu root
  menu.getRoot().add(settings); 
  //setup the settings menu item
  settings.addAfter(options); 
  options.addAfter(settings); 

  settings.addLeft(settings); //loop back if left on settings
  settings.addRight(pin);     //chain settings to  pin on right
  debug.addLeft(settings);  //also go to settings left for debug
  //we want looping both up and down
  pin.addBefore(debug);
  pin.addAfter(debug);
  debug.addBefore(pin);
  debug.addAfter(pin);

  options.addLeft(options);   //loop back if left on settings
  options.addRight(setDelay); //chain options to delay on right
  setDelay.addRight(d100);
  d100.addBefore(d100);   //loop to d400 
  d100.addAfter(d200);
  d200.addAfter(d300);
  d300.addAfter(d400);
  d400.addAfter(d100);    //loop back to d100
  //we want left to always be bak to delay
  d100.addLeft(setDelay);
  d200.addLeft(setDelay);
  d300.addLeft(setDelay);
  d400.addLeft(setDelay);
}

/*
  This is an important function
 Here all use events are handled
 
 This is where you define a behaviour for a menu item
 */
void menuUseEvent(MenuUseEvent used)
{
  Serial.print("Menu use ");
  Serial.println(used.item.getName());

  if (used.item.isEqual(setDelay)) //comparison agains a known item
  {
    Serial.println("menuUseEvent found Delay (D)");
  }
}

/*
  This is an important function
 Here we get a notification whenever the user changes the menu
 That is, when the menu is navigated
 */
void menuChangeEvent(MenuChangeEvent changed)
{
  Serial.print("Menu change ");
  Serial.print(changed.from.getName());
  Serial.print(" ");
  Serial.println(changed.to.getName());
}

void setup()
{
  Serial.begin(9600);

  menuSetup();
  Serial.println("Starting navigation:rnUp:w Down:s Left:a Right:d Use: e");

  //fire Delay : menu.use('D');
  //bail back to Options by moving up one logical level 
  //after a D : menu.moveRelativeLevels(-1);
}

void loop()
{
  if (Serial.available()) 
  {
    byte read = Serial.read();
    switch (read) 
    {
    case 'w': 
      menu.moveUp(); 
      break;
    case 's': 
      menu.moveDown(); 
      break;
    case 'd': 
      menu.moveRight(); 
      break;
    case 'a': 
      menu.moveLeft(); 
      break;
    case 'e': 
      menu.use(); 
      break;
    }
  }
}
Descripción Hay dos comos de trabajar con menuItem. El item básico con un nombre y a mnemómico opcional o un item complejo que usa eventos de los item cambiantes.
Sintaxis
MenuItem(itemName, shortKey)
MenuItem(mb, itemName, lvl, shortKey)
Métodos
registerBackend()
getValue()
setValue()
increment()
decrement()
setLevel()
getLevel()
hasShortkey()
hasChildren()
setBack()
getShortkey()
getName()
getBack()
getBefore()
getRight()
getAfter()
getLeft()
add()
addBefore()
addRight()
addAfter()
addLeft()
isEqual()
Parámetros
itemName El nombre del item.
shortKey La abreviación mnemómica.
mb El menu backend que controla este item.
lvl El nivel de este item en la jerarquía.
Retorna Ninguno
Uso Application
Updated on July 07, 2011 11:15:33pm PDT

Creative Commons License