Ejemplo n.º 1
0
void Router::navigate()
{
	system("CLS");
	displayMenu(step);
	int param = _getch();
	switch (param)
	{
	case 72:
		system("CLS");
		step--;
		if (step < 0)
			if (parent != NULL)
				step = getMenuSize() + 1;
			else
				step = getMenuSize();
		navigate();
		break;
	case 80:
		system("CLS");
		step++;
		if (step > getMenuSize() + (parent != NULL) ? 1 : 0)
			step = 0;
		navigate();
		break;
	case 224:
		//system("CLS");
		navigate();
		break;
	case 13:
		setActive(&step);
		break;
	default:
		navigate();
	}
}
Ejemplo n.º 2
0
static void
setAdvancedSubmenu (Menu *submenu) {
  Menu *parent = getMenuParent(submenu);

  if (parent) {
    unsigned int size = getMenuSize(parent);

    if (size) {
      MenuItem *item = getMenuItem(parent, size-1);

      if (item) setMenuItemTester(item, testAdvancedSubmenu);
    }
  }
}
Ejemplo n.º 3
0
// fonction d'affichage
void Menu::show() {
	// on récupère la source (i.e le fichier chargé en argument du constructeur)
	apply_surface2(0,0,this->get_source(),NULL);
	// la position en y  où on collera les liens
	int rowY; 
	// on définit la position pour chaque élément et on les écarte par 10 pixels 
	for(int i = 0; i< getMenuSize(); i++) {
	rowY = this->e_y + i * this->m_menuElementList.at(i).surfaceHover->h + 10; 

	// On colle le lien du menu selon le statut "sélectionné" ou "non sélectionné" 
	if(this->m_currentIndex == i) {
		apply_surface2(e_x, rowY+400,this->m_menuElementList.at(i).surfaceHover,NULL); 
	}
	else {
		apply_surface2(e_x, rowY+400,this->m_menuElementList.at(i).surfaceNormal,NULL);
	}
	}
}	
Ejemplo n.º 4
0
void Menu::incIndex() {
    uint8_t lines = LCD_LINES;
    if(size_ < lines) lines = size_;
    if(pos_ < lines - 1) pos_++;
    else if( begin_ + pos_ < getMenuSize() - 1) begin_++;
}