 typedef void (*ItemSelection)(Menu *, int);
 
 // handler for inc/dec of item (vfo_RRight, vfo_RLeft events)
-typedef int (*ItemIncDec)(int index, int delta);
+typedef void (*ItemIncDec)(int delta);
 
 // structure defining a menu item
 struct MenuItem

  Serial.println(slot_num);
}

#define MaxSlotNum 10

int alphaalpha_incdec(int slot_num, int delta)
{
  Serial.print("alphaalpha_incdec: slot_num=");
  Serial.println(slot_num);

  // first, bump the internal index, limit to range
  slot_num += delta;
  if (slot_num < 0)
    slot_num = 0;
  else
    if (slot_num >= MaxSlotNum)
      slot_num = MaxSlotNum - 1;

  Serial.print("alphaalpha_incdec: drawing bar length ");
  Serial.println(slot_num + 1);
//  lcd.write(ALLSET_CHAR);
  // draw the row 1 reresentation of the value
  lcd.setCursor(0, 1);
  lcd.write(BlankRow);
  lcd.setCursor(0, 1);
  for (int i = 0; i <= slot_num; ++i)
  {
    lcd.write(ALLSET_CHAR);
  }
  
  Serial.print("alphaalpha_action: returning ");
  Serial.println(slot_num);
  
  return slot_num;
}

struct MenuItem mi_alphaalpha = {NULL, NULL, NULL, alphaalpha_incdec};
struct MenuItem *mia_alphaalpha[] = {&mi_alphaalpha};
struct Menu alpha_alpha_menu = {"AlphaAlpha", ARRAY_LEN(mia_alphaalpha), mia_alphaalpha};



typedef struct Menu *MenuPtr;

void dump_menuitem(const char *msg, struct MenuItem *menuitem)
{
  Serial.println("-------------------------------------------");
  Serial.println(msg);
  Serial.print("menuitem address="); Serial.println((unsigned long) menuitem, HEX);
  Serial.print("  item_title="); Serial.println(menuitem->item_title);
  Serial.print("  menu="); Serial.println((unsigned long) menuitem->menu, HEX);
  Serial.print("  action="); Serial.println((unsigned long) menuitem->action, HEX);
  Serial.print("  incdec="); Serial.println((unsigned long) menuitem->incdec, HEX);
  Serial.println("-------------------------------------------");
}

//----------------------------------------
// actually draw the menu on the screen
//     menu      pointer to a Menu structure
