summaryrefslogtreecommitdiff
path: root/src/guiFormSpecMenu.h
Commit message (Expand)AuthorAge
* Add srollbar formspec elementsapier2014-07-16
* Add support for Android 2.3+sapier2014-06-29
* Add formspec api versioningsapier2014-06-29
* Add setting for tooltips show delay.RealBadAngel2014-06-25
* Tooltips rework.RealBadAngel2014-06-24
* Support for scalable font and gui elementssapier2014-06-22
* Fix bounding rect for formspec elements label vertlabel and checkboxessapier2014-06-18
* Add support for exiting formspecs by doubleclicking outsidesapier2014-06-12
* Fix formspec replacement handling for in game formspecssapier2014-04-22
* Fix game pause in singleplayerBlockMen2014-03-13
* Pass arguments by referenceSelat2014-03-12
* Replace pause and message menu by formspec onessapier2014-03-05
* Add formspec tableKahrl2014-01-13
* Reworked formspecs and kahrl's hexcolor parserBlockMen2013-11-03
* Send a on_receive_fields event when formspec is closed, with fields.quit = "t...Novatux2013-11-03
* Change mainmenu texture handling + small misc changesKahrl2013-09-11
* GUIFormSpecMenu focus fixesKahrl2013-08-19
* Add translation for main menusapier2013-08-17
* Don't automatically scroll listbox when selecting an item in the middleKahrl2013-08-16
* Formspec textlist: Black Irrlicht magic to detect fake doubleclicksKahrl2013-08-16
* Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenuKahrl2013-08-14
* Fix many formspec menu bugssapier2013-07-07
* Use hexadecimal RRGGBB instead of colorkeys, rename getColor to parseColorSfan52013-07-06
* Replace C++ mainmenu by formspec powered onesapier2013-07-02
* Formspec: Don't perform black magic if selected item fits the guessKahrl2013-06-18
* Migrate to STL containers/algorithms.Ilya Zhuravlev2013-03-11
* Update Copyright YearsSfan52013-02-24
* Change Minetest-c55 to MinetestPilzAdam2013-02-24
* New elements in formspec, item_image and item_image_button.RealBadAngel2012-12-01
* Make dragged itemstack following the mouse cursor much smootherJürgen Doser2012-11-30
* Adding background to FormspecRealBadAngel2012-11-08
* Make inventory GUI do sane things when server-side inventory acts unusuallyPerttu Ahola2012-09-02
* Detached inventoriesPerttu Ahola2012-07-24
* Formspec button_exit[] and image_button_exit[]Perttu Ahola2012-07-22
* minetest.register_on_player_receive_fields()Perttu Ahola2012-07-22
* Implement formspecdarkrose2012-07-22
>= getElementFromId(ID_soundText1); if(e != NULL) e->remove(); } { gui::IGUIElement *e = getElementFromId(ID_soundText2); if(e != NULL) e->remove(); } { gui::IGUIElement *e = getElementFromId(ID_soundExitButton); if(e != NULL) e->remove(); } { gui::IGUIElement *e = getElementFromId(ID_soundSlider); if(e != NULL) e->remove(); } } void GUIVolumeChange::regenerateGui(v2u32 screensize) { /* Remove stuff */ removeChildren(); /* Calculate new sizes and positions */ core::rect<s32> rect( screensize.X/2 - 380/2, screensize.Y/2 - 200/2, screensize.X/2 + 380/2, screensize.Y/2 + 200/2 ); DesiredRect = rect; recalculateAbsolutePosition(false); v2s32 size = rect.getSize(); v2s32 topleft_client(40, 0); int volume=(int)(g_settings->getFloat("sound_volume")*100); /* Add stuff */ { core::rect<s32> rect(0, 0, 120, 20); rect = rect + v2s32(size.X/2-60, size.Y/2-35); wchar_t* text = wgettext("Sound Volume: "); Environment->addStaticText(text, rect, false, true, this, ID_soundText1); delete[] text; } { core::rect<s32> rect(0, 0, 30, 20); rect = rect + v2s32(size.X/2+40, size.Y/2-35); Environment->addStaticText(core::stringw(volume).c_str(), rect, false, true, this, ID_soundText2); } { core::rect<s32> rect(0, 0, 80, 30); rect = rect + v2s32(size.X/2-80/2, size.Y/2+55); wchar_t* text = wgettext("Exit"); Environment->addButton(rect, this, ID_soundExitButton, text); delete[] text; } { core::rect<s32> rect(0, 0, 300, 20); rect = rect + v2s32(size.X/2-150, size.Y/2); gui::IGUIScrollBar *e = Environment->addScrollBar(true, rect, this, ID_soundSlider); e->setMax(100); e->setPos(volume); } } void GUIVolumeChange::drawMenu() { gui::IGUISkin* skin = Environment->getSkin(); if (!skin) return; video::IVideoDriver* driver = Environment->getVideoDriver(); video::SColor bgcolor(140,0,0,0); driver->draw2DRectangle(bgcolor, AbsoluteRect, &AbsoluteClippingRect); gui::IGUIElement::draw(); } bool GUIVolumeChange::OnEvent(const SEvent& event) { if(event.EventType==EET_KEY_INPUT_EVENT) { if(event.KeyInput.Key==KEY_ESCAPE && event.KeyInput.PressedDown) { quitMenu(); return true; } if(event.KeyInput.Key==KEY_RETURN && event.KeyInput.PressedDown) { quitMenu(); return true; } } if(event.GUIEvent.EventType==gui::EGET_BUTTON_CLICKED) { if (event.GUIEvent.Caller->getID() == ID_soundExitButton) { quitMenu(); return true; } } if(event.GUIEvent.EventType==gui::EGET_SCROLL_BAR_CHANGED) { if (event.GUIEvent.Caller->getID() == ID_soundSlider) { s32 pos = ((gui::IGUIScrollBar*)event.GUIEvent.Caller)->getPos(); g_settings->setFloat("sound_volume",(float)pos/100); gui::IGUIElement *e = getElementFromId(ID_soundText2); e->setText( core::stringw(pos).c_str() ); return true; } } return Parent ? Parent->OnEvent(event) : false; }