aboutsummaryrefslogtreecommitdiff
path: root/.gitignore
Commit message (Expand)AuthorAge
* Update .gitignore to ignore symlinks to non-static Minetest directories and s...Tim2015-09-26
* Clean up threadingShadowNinja2015-08-23
* Android: fix sound issue, and gitignoreest312015-08-02
* Android: Add githash header to spare rebuilds after new commitsest312015-08-01
* Add android tools environment to gitignoreest312015-07-01
* Add more swp files to gitignoreest312015-05-18
* Add LibGMPest312015-05-11
* Add .patch files to gitignoreest312015-05-01
* Update .gitignorekwolekr2015-04-26
* Add more Android build files to .gitignoreest312015-03-07
* Add src/network/CMakeFiles/ and src/client/CMakeFiles to gitignore4Evergreen42015-02-23
* Add basic support for generating API documentation using DoxygenJürgen Doser2014-12-12
* Add support for Android 2.3+sapier2014-06-29
* Show git hash in version string at top left corner of windowKahrl2013-09-28
* Add Code::Blocks project and build files to .gitignorebcnjr52013-06-03
* Move scriptapi to separate folder (by sapier)sapier2013-05-25
* Add Mapgen V7, reorganize biomeskwolekr2013-04-07
* Git-ignore SQLite build filesJuhani Numminen2013-03-19
* Add cloud menu background by Krisi, configurable with the menu_clouds option.ShadowNinja2013-03-13
* Change libjson to libjsoncpp in .gitignorePilzAdam2013-03-06
* new auto masterserverproller2013-02-22
* Add Freetype supportIlya Zhuravlev2013-02-14
* Move games/minetest to games/minimal and update README.txtPerttu Ahola2012-03-26
* Update/fix .gitignorePerttu Ahola2012-03-25
* Add mods/mesetint/mods_here.txt to be installed on RUN_IN_PLACE buildsPerttu Ahola2012-03-20
* Flatten share/ and user/ in the source and for the RUN_IN_PLACE buildPerttu Ahola2012-03-20
* Added Kate backup file scheme to .gitignore for Kate usersGarrosh2012-01-24
* Scripting WIPPerttu Ahola2011-11-29
* Updated .gitignore to ignore vim swap filesPerttu Ahola2011-08-12
* Merge branch 'master' of https://github.com/erlehmann/minetest-delta.git into...Sebastian Rühl2011-06-26
|\
| * * ignore minetestmapper outputNils Dagsson Moskopp2011-06-02
| * + .gitignoreNils Dagsson Moskopp2011-05-29
* New map generator added (and SQLite, messed up the commits at that time...) (...Perttu Ahola2011-06-25
* Reorganizing stuff (import from temporary git repo)Perttu Ahola2011-06-25
NTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include "guiPasswordChange.h" #include "debug.h" #include "serialization.h" #include <string> #include <IGUICheckBox.h> #include <IGUIEditBox.h> #include <IGUIButton.h> #include <IGUIStaticText.h> #include <IGUIFont.h> #include "gettext.h" const int ID_oldPassword = 256; const int ID_newPassword1 = 257; const int ID_newPassword2 = 258; const int ID_change = 259; const int ID_message = 260; GUIPasswordChange::GUIPasswordChange(gui::IGUIEnvironment* env, gui::IGUIElement* parent, s32 id, IMenuManager *menumgr, Client* client ): GUIModalMenu(env, parent, id, menumgr), m_client(client) { } GUIPasswordChange::~GUIPasswordChange() { removeChildren(); } void GUIPasswordChange::removeChildren() { { gui::IGUIElement *e = getElementFromId(ID_oldPassword); if(e != NULL) e->remove(); } { gui::IGUIElement *e = getElementFromId(ID_newPassword1); if(e != NULL) e->remove(); } { gui::IGUIElement *e = getElementFromId(ID_newPassword2); if(e != NULL) e->remove(); } { gui::IGUIElement *e = getElementFromId(ID_change); if(e != NULL) e->remove(); } } void GUIPasswordChange::regenerateGui(v2u32 screensize) { /* Remove stuff */ removeChildren(); /* Calculate new sizes and positions */ core::rect<s32> rect( screensize.X/2 - 580/2, screensize.Y/2 - 300/2, screensize.X/2 + 580/2, screensize.Y/2 + 300/2 ); DesiredRect = rect; recalculateAbsolutePosition(false); v2s32 size = rect.getSize(); v2s32 topleft_client(40, 0); v2s32 size_client = size - v2s32(40, 0); /* Add stuff */ s32 ypos = 50; changeCtype(""); { core::rect<s32> rect(0, 0, 110, 20); rect += topleft_client + v2s32(35, ypos+6); Environment->addStaticText(wgettext("Old Password"), rect, false, true, this, -1); } changeCtype("C"); { core::rect<s32> rect(0, 0, 230, 30); rect += topleft_client + v2s32(160, ypos); gui::IGUIEditBox *e = Environment->addEditBox(L"", rect, true, this, ID_oldPassword); Environment->setFocus(e); e->setPasswordBox(true); } ypos += 50; changeCtype(""); { core::rect<s32> rect(0, 0, 110, 20); rect += topleft_client + v2s32(35, ypos+6); Environment->addStaticText(wgettext("New Password"), rect, false, true, this, -1); } changeCtype("C"); { core::rect<s32> rect(0, 0, 230, 30); rect += topleft_client + v2s32(160, ypos); gui::IGUIEditBox *e = Environment->addEditBox(L"", rect, true, this, ID_newPassword1); e->setPasswordBox(true); } ypos += 50; changeCtype(""); { core::rect<s32> rect(0, 0, 110, 20); rect += topleft_client + v2s32(35, ypos+6); Environment->addStaticText(wgettext("Confirm Password"), rect, false, true, this, -1); } changeCtype("C"); { core::rect<s32> rect(0, 0, 230, 30); rect += topleft_client + v2s32(160, ypos); gui::IGUIEditBox *e = Environment->addEditBox(L"", rect, true, this, ID_newPassword2); e->setPasswordBox(true); } ypos += 50; changeCtype(""); { core::rect<s32> rect(0, 0, 140, 30); rect = rect + v2s32(size.X/2-140/2, ypos); Environment->addButton(rect, this, ID_change, wgettext("Change")); } ypos += 50; { core::rect<s32> rect(0, 0, 300, 20); rect += topleft_client + v2s32(35, ypos); IGUIElement *e = Environment->addStaticText( wgettext("Passwords do not match!"), rect, false, true, this, ID_message); e->setVisible(false); } changeCtype("C"); } void GUIPasswordChange::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 GUIPasswordChange::acceptInput() { std::wstring oldpass; std::wstring newpass; gui::IGUIElement *e; e = getElementFromId(ID_oldPassword); if(e != NULL) oldpass = e->getText(); e = getElementFromId(ID_newPassword1); if(e != NULL) newpass = e->getText(); e = getElementFromId(ID_newPassword2); if(e != NULL && newpass != e->getText()) { e = getElementFromId(ID_message); if(e != NULL) e->setVisible(true); return false; } m_client->sendChangePassword(oldpass, newpass); return true; } bool GUIPasswordChange::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) { if(acceptInput()) quitMenu(); return true; } } if(event.EventType==EET_GUI_EVENT) { if(event.GUIEvent.EventType==gui::EGET_ELEMENT_FOCUS_LOST && isVisible()) { if(!canTakeFocus(event.GUIEvent.Element)) { dstream<<"GUIPasswordChange: Not allowing focus change." <<std::endl; // Returning true disables focus change return true; } } if(event.GUIEvent.EventType==gui::EGET_BUTTON_CLICKED) { switch(event.GUIEvent.Caller->getID()) { case ID_change: if(acceptInput()) quitMenu(); return true; } } if(event.GUIEvent.EventType==gui::EGET_EDITBOX_ENTER) { switch(event.GUIEvent.Caller->getID()) { case ID_oldPassword: case ID_newPassword1: case ID_newPassword2: if(acceptInput()) quitMenu(); return true; } } } return Parent ? Parent->OnEvent(event) : false; }