void PGE_Menu::addNamedIntMenuItem(int *intvalue, QList<NamedIntItem> _items, QString value, QString title, bool rotate, std::function<void()> _extAction) { PGE_NamedIntMenuItem item; item.intvalue = intvalue; item.value = value; item.items=_items; if(intvalue) for(int i=0; i<_items.size(); i++) { if(*intvalue==_items[i].value) { item.curItem=i; break; } } item.allowRotation=rotate; item.title = (title.isEmpty() ? "unknown named integer" : title); item._font_id = _font_id; if(_text_len_limit_strict) { //Crop lenght item.title=FontManager::cropText(item.title, _text_len_limit); item._width=FontManager::textSize(item.title, _font_id, 0, true).w(); } else { //Capture limited lenght, but don't crop QString temp=FontManager::cropText(item.title, _text_len_limit); item._width=FontManager::textSize(temp, _font_id, 0, true).w(); } item.extAction=_extAction; _items_named_int.push_back(item); PGE_Menu::_items.push_back( &_items_named_int.last() ); refreshRect(); }
void PGE_Menu::addKeyGrabMenuItem(KM_Key *key, QString value, QString title, SDL_Joystick* joystick_device) { PGE_KeyGrabMenuItem item; item.targetKey = key; item.value = value; item.title = (title.isEmpty() ? "unknown key-grabber" : title); item._font_id = _font_id; if(_text_len_limit_strict) { //Crop lenght item.title=FontManager::cropText(item.title, _text_len_limit); item._width=FontManager::textSize(item.title, _font_id, 0, true).w(); } else { //Capture limited lenght, but don't crop QString temp=FontManager::cropText(item.title, _text_len_limit); item._width=FontManager::textSize(temp, _font_id, 0, true).w(); } if(joystick_device) { item.joystick_mode=true; item.joystick_device=joystick_device; } item.menu = this; _items_keygrabs.push_back(item); _items.push_back( &_items_keygrabs.last() ); refreshRect(); }
void PGE_Menu::addIntMenuItem(int *intvalue, int min, int max, QString value, QString title, bool rotate, std::function<void()> _extAction) { PGE_IntMenuItem item; item.intvalue = intvalue; item.value = value; item.min=min; item.max=max; item.allowRotation=rotate; item.title = (title.isEmpty() ? "unknown integer" : title); item._font_id = _font_id; if(_text_len_limit_strict) { //Crop lenght item.title=FontManager::cropText(item.title, _text_len_limit); item._width=FontManager::textSize(item.title, _font_id, 0, true).w(); } else { //Capture limited lenght, but don't crop QString temp=FontManager::cropText(item.title, _text_len_limit); item._width=FontManager::textSize(temp, _font_id, 0, true).w(); } item.extAction=_extAction; _items_int.push_back(item); _items.push_back( &_items_int.last() ); refreshRect(); }
void PGE_Menu::setItemsNumber(int q) { if(q>0) _itemsOnScreen = q; else _itemsOnScreen = 5; refreshRect(); }
void PGE_Menu::clear() { _items.clear(); _items_normal.clear(); _items_bool.clear(); _items_int.clear(); _items_named_int.clear(); _items_keygrabs.clear(); m_item=NULL; reset(); refreshRect(); }
void GenericLayout::onControlUpdate( const CtrlGeneric &rCtrl, int width, int height, int xOffSet, int yOffSet ) { // The size is not valid, refresh the whole layout if( width <= 0 || height <= 0 ) { refreshAll(); return; } const Position *pPos = rCtrl.getPosition(); if( pPos ) { refreshRect( pPos->getLeft() + xOffSet, pPos->getTop() + yOffSet, width, height ); } }
void GenericLayout::onControlUpdate( const CtrlGeneric &rCtrl, int width, int height, int xOffSet, int yOffSet ) { // Do nothing if the layout or control is hidden if( !m_visible ) return; const Position *pPos = rCtrl.getPosition(); if( width > 0 && height > 0 ) { // make sure region is within the layout rect region( pPos->getLeft() + xOffSet, pPos->getTop() + yOffSet, width, height ); rect layout( 0, 0, m_rect.getWidth(), m_rect.getHeight() ); rect inter; if( rect::intersect( layout, region, &inter ) ) { refreshRect( inter.x, inter.y, inter.width, inter.height ); } } }
void PGE_Menu::addBoolMenuItem(bool *flag, QString value, QString title, std::function<void()> _extAction) { PGE_BoolMenuItem item; item.flag = flag; item.value = value; item.title = (title.isEmpty() ? "unknown flag" : title); item._font_id = _font_id; if(_text_len_limit_strict) { //Crop lenght item.title=FontManager::cropText(item.title, _text_len_limit); item._width=FontManager::textSize(item.title, _font_id, 0, true).w(); } else { //Capture limited lenght, but don't crop QString temp=FontManager::cropText(item.title, _text_len_limit); item._width=FontManager::textSize(temp, _font_id, 0, true).w(); } item.extAction=_extAction; _items_bool.push_back(item); _items.push_back( &_items_bool.last() ); refreshRect(); }
void PGE_Menu::addMenuItem(QString value, QString title, std::function<void()> _extAction) { PGE_Menuitem item; item.value = value; item.type=PGE_Menuitem::ITEM_Normal; item.title = (title.isEmpty() ? value : title); item._font_id = _font_id; if(_text_len_limit_strict) { //Crop lenght item.title=FontManager::cropText(item.title, _text_len_limit); item._width=FontManager::textSize(item.title, _font_id, 0, true).w(); } else { //Capture limited lenght, but don't crop QString temp=FontManager::cropText(item.title, _text_len_limit); item._width=FontManager::textSize(temp, _font_id, 0, true).w(); } item.extAction=_extAction; _items_normal.push_back(item); _items.push_back( &_items_normal.last() ); refreshRect(); }
void GenericLayout::refreshAll() { refreshRect( 0, 0, m_rect.getWidth(), m_rect.getHeight() ); }
void PGE_Menu::setSize(PGE_Size s) { _item_height=s.h(); refreshRect(); }
void PGE_Menu::setSize(int w, int h) { Q_UNUSED(w); _item_height=h; refreshRect(); }
void PGE_Menu::setPos(PGE_Point p) { menuRect.setX(p.x()); menuRect.setY(p.y()-_font_offset); refreshRect(); }
void PGE_Menu::setPos(int x, int y) { menuRect.setX(x); menuRect.setY(y-_font_offset); refreshRect(); }
void GenericLayout::refreshAll() { refreshRect( 0, 0, m_width, m_height ); }