1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/shentqlf-eBox_Framework

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
gui_menu.cpp 2.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
quli Отправлено 6 лет назад 06f3a11
#include "gui_menu.h"
void GuiMenu::create()
{
show();
}
void GuiMenu::show()
{
_gpu->set_font(font);
_gpu->set_text_mode(text_mode);
_gpu->fill_rect(x,y,x+len,y+hight,_gpu->back_color);
for(int i = 0; i < max; i++)
{
if((i + index) >= current_menu->count)
break;
_gpu->printf(x,y+i*font->YSize,"%d:%s",index + 1 + i ,current_menu->items[i + index].title);
}
if(max != 1)
_gpu->printf(x - 10,y,">");
}
void GuiMenu::hide()
{
_gpu->fill_rect(x,y,x+len,y+hight,_gpu->back_color);
// _gpu->set_font(font);
//
// for(int i = 0; i < max; i++)
// {
// if((i + index) >= current_menu->count)
// break;
// uint16_t slen = _gpu->get_string_xlength(current_menu->items[index].title);
// _gpu->fill_rect(x,y,x+slen,y + font->YSize,_gpu->back_color);
// }
}
void GuiMenu::set_select(bool state)
{
}
int16_t GuiMenu::index_get()
{
return index;
}
void GuiMenu::index_set(int16_t value)
{
_gpu->set_font(font);
// for(int i = 0; i < max; i++)
// {
// if((i + index) >= current_menu->count)
// break;
// uint16_t slen = _gpu->get_string_xlength(current_menu->items[index].title);
// _gpu->fill_rect(x,y,x+slen,y + font->YSize,_gpu->back_color);
// }
index = value;
show();
}
bool GuiMenu::index_next()
{
if(index < current_menu->count - 1)
{
// _gpu->set_font(font);
//
// for(int i = 0; i < max; i++)
// {
// if((i + index) >= current_menu->count)
// break;
// uint16_t slen = _gpu->get_string_xlength(current_menu->items[index].title);
// _gpu->fill_rect(x,y,x+slen,y + font->YSize,_gpu->back_color);
// }
//
index++;
show();
return true;
}
return false;
}
bool GuiMenu::index_previous()
{
if(index > 0)
{
// _gpu->set_font(font);
// for(int i = 0; i < max; i++)
// {
// if((i + index) >= current_menu->count)
// break;
// uint16_t slen = _gpu->get_string_xlength(current_menu->items[index].title);
// _gpu->fill_rect(x,y,x+slen,y + font->YSize,_gpu->back_color);
// }
//
index--;
show();
return true;
}
return false;
}
void GuiMenu::update_item_index()
{
_gpu->set_font(font);
_gpu->set_text_mode(text_mode);
_gpu->fill_rect(x,y,x+len,y+hight,_gpu->back_color);
for(int i = 0; i < max; i++)
{
if((i + index) >= current_menu->count)
break;
_gpu->printf(x,y+i*font->YSize,"%d:%s",index + 1 + i ,current_menu->items[i + index].title);
}
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/shentqlf-eBox_Framework.git
git@gitlife.ru:oschina-mirror/shentqlf-eBox_Framework.git
oschina-mirror
shentqlf-eBox_Framework
shentqlf-eBox_Framework
master