void Menu_Select(void) { menuChange(SELECT); dispMenu(); //LCD_CMD (1); //LCD_GOTO (25); //LCD_STRING ("SELECT"); }
void Menu_Next(void) { //LCD_CMD (1);//clrscr menuChange(NEXT); dispMenu(); //LCD_CMD (1); //LCD_GOTO (25); //LCD_STRING ("NEXT"); }
void Menu_Child(void) { //LCD_CMD (1);//clrscr menuChange(CHILD); dispMenu(); //LCD_CMD (1); //LCD_GOTO (25); //LCD_STRING ("CHILD"); }
void Menu_Parent(void) { //LCD_CMD (1);//clrscr menuChange(PARENT); dispMenu(); //LCD_CMD (1); //LCD_GOTO (25); //LCD_STRING ("PARENT"); }
bool Menu::select(byte select){ if (select>=0 && select<numberOfMenuItems){ setCurrentIndex(select); if (menuChange!=0){ menuChange( item[currentIndex]->use() ); } return true; } return false; }
void Menu_Previous(void) { //LCD_CMD (1);//clrscr menuChange(PREVIOUS); dispMenu(); //LCD_CMD (1);//clrscr //LCD_CMD (1); //LCD_GOTO (25); //LCD_STRING ("PREV"); }
uint8_t menuKey(msg_par par) { switch (par) { case 0: { return 1; } case KEY_LEFT: { menuChange(PREVIOUS); break; } case KEY_RIGHT: { menuChange(NEXT); break; } case KEY_DOWN: ; case KEY_OK: { // выбор пункта uint8_t sel; sel = SELECT; if (sel != 0) { sendMessage(MSG_MENU_SELECT, sel); killHandler(MSG_KEY_PRESS, &menuKey); killHandler(MSG_DISP_REFRESH, &dispMenu); return (1); } else { menuChange(CHILD); } break; } case KEY_UP: { // отмена выбора (возврат) menuChange(PARENT); } } dispMenu(0); return (1); }
uint8_t menuKey(msg_par par) { switch (par) { case 0: { return 1; } //------------------------ case KEY_LEFT: { switch(SELECT)//пункт меню { case MENU_TUNE_TIME://определяем поведение кнопок в этом меню { time_tune_state=0; } break; case MENU_TUNE_DATE: { date_tune_state=0; } break; default: { menuChange(PREVIOUS); } break; } } break; //------------------------ case KEY_RIGHT: { switch(SELECT)//пункт меню { case MENU_TUNE_TIME: { time_tune_state=1; } break; case MENU_TUNE_DATE: { date_tune_state=1; } break; default: { menuChange(NEXT); } break; } } break; //------------------------ case KEY_UP: { switch(SELECT)//пункт меню { case MENU_TUNE_BRIGHTNESS: { if(brightness>=0xF) { brightness=0xF; } else { brightness=(brightness+1)&0xF; I2C_Write_Byte(SLA_ADDR,0x0,brightness); } } break; case MENU_TUNE_TIME: { if(time_tune_state) { if(clk.hour<23) { clk.hour++; } else { clk.hour=23; } } else { if(clk.minute<59) { clk.minute++; } else { clk.minute=59; } } } break; case MENU_TUNE_DATE: { if(date_tune_state) { if(clk.month<12) { clk.month++; } } else { if(clk.day<31) { clk.day++; } } } break; case MENU_TUNE_YEAR: { if(clk.year>=99) { clk.year=99; } else { clk.year++; } } break; default: { //menuChange(NEXT); } break; } } break; //------------------------ case KEY_DOWN: { switch(SELECT)//пункт меню { case MENU_TUNE_BRIGHTNESS: { if(brightness<=0x1) { brightness=0x1; } else { brightness=(brightness-1)&0xF; I2C_Write_Byte(SLA_ADDR,0x0,brightness); } } break; case MENU_TUNE_TIME: { if(time_tune_state) { if(clk.hour>0) { clk.hour--; } } else { if(clk.minute>0) { clk.minute--; } } } break; case MENU_TUNE_DATE: { if(date_tune_state) { if(clk.month>1) { clk.month--; } } else { if(clk.day>1) { clk.day--; } } } break; case MENU_TUNE_YEAR: { if(clk.year<=0) { clk.year=0; } else { clk.year--; } } break; default: { } break; } } break; //------------------------ case KEY_OK: { // выбор пункта switch(SELECT)//пункт меню { case MENU_TUNE_TIME: { StoreTime(&clk,0); menuChange(PARENT); } break; case MENU_TUNE_DATE: { StoreTime(&clk,1); menuChange(PARENT); } break; case MENU_TUNE_YEAR: { StoreTime(&clk,2); menuChange(PARENT); } break; default: { menuChange(CHILD); } break; } } break; //------------------------ case KEY_GND:// отмена выбора (возврат) { menuChange(PARENT); } break; //------------------------ default: { } break; } //dispMenu(0); return (1); }
unsigned char menuKey(unsigned char key) { menuItem* sel; if(!flag_menu_entry) { switch (key) { case 0: { return 1; } break; case '[': { menuChange(PREVIOUS); } break; case ']': { menuChange(NEXT); } break; case 'x': { _nop_(); } break; case 'F': { // выбор пункта sel = selectedMenuItem->Select;//SELECT; if (selectedMenuItem->Select != 0) { menuHandler(selectedMenuItem,key); return (1); } else { menuChange(CHILD); } } break; case 'C': { // отмена выбора (возврат) menuChange(PARENT); // LCD_WriteCommand(LCD_CMD_ON); } break; default: { } } if(key!=0) { LCD_WriteCommand(LCD_CMD_CLEAR); delay(10); dispMenu(); } } else { if(key== 'C') { // отмена выбора (возврат) flag_menu_entry=0; dynamic_disp=DYN_NOT_DISPLAY; LCD_WriteCommand(LCD_CMD_CLEAR); delay(3); LCD_WriteCommand(LCD_CMD_ON); delay(3); dispMenu(); } else { sel = SELECT; if (sel != 0) { menuHandler(selectedMenuItem,key); } } } return (1); }