aboutsummaryrefslogtreecommitdiff
path: root/build/android/icons/checkbox_tick.svg
blob: 6b727bb52ffbb8626e4c162cc831f7f6405cdb38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="512"
   height="512"
   viewBox="0 0 135.46666 135.46667"
   version="1.1"
   id="svg8"
   inkscape:version="0.92.1 r15371"
   sodipodi:docname="checkbox_tick.svg">
  <defs
     id="defs2" />
  <sodipodi:namedview
     id="base"
     pagecolor="#404040"
     bordercolor="#666666"
     borderopacity="1.0"
     inkscape:pageopacity="0"
     inkscape:pageshadow="2"
     inkscape:zoom="0.7"
     inkscape:cx="-28.833943"
     inkscape:cy="228.57143"
     inkscape:document-units="mm"
     inkscape:current-layer="layer1"
     showgrid="true"
     units="px"
     inkscape:window-width="1920"
     inkscape:window-height="1023"
     inkscape:window-x="0"
     inkscape:window-y="34"
     inkscape:window-maximized="1"
     inkscape:pagecheckerboard="false">
    <inkscape:grid
       type="xygrid"
       id="grid16"
       spacingx="0.26458333"
       spacingy="0.26458333"
       empspacing="16"
       color="#40ff40"
       opacity="0.1254902"
       empcolor="#40ff40"
       empopacity="0.1254902" />
  </sodipodi:namedview>
  <metadata
     id="metadata5">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title></dc:title>
        <cc:license
           rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
      </cc:Work>
      <cc:License
         rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
        <cc:permits
           rdf:resource="http://creativecommons.org/ns#Reproduction" />
        <cc:permits
           rdf:resource="http://creativecommons.org/ns#Distribution" />
        <cc:requires
           rdf:resource="http://creativecommons.org/ns#Notice" />
        <cc:requires
           rdf:resource="http://creativecommons.org/ns#Attribution" />
        <cc:permits
           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
        <cc:requires
           rdf:resource="http://creativecommons.org/ns#ShareAlike" />
      </cc:License>
    </rdf:RDF>
  </metadata>
  <g
     inkscape:label="Layer 1"
     inkscape:groupmode="layer"
     id="layer1"
     transform="translate(0,-161.53332)">
    <path
       style="fill:#1a1a1a;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
       d="M 42.333333,284.29999 4.2333333,246.19999 21.166666,229.26665 42.333333,250.43332 114.3,178.46665 131.23333,195.39999 Z"
       id="path14"
       inkscape:connector-curvature="0"
       sodipodi:nodetypes="ccccccc" />
  </g>
</svg>
GUICheckBox.h> #include <IGUIEditBox.h> #include <IGUIButton.h> #include <IGUIStaticText.h> #include <IGUIFont.h> #ifdef HAVE_TOUCHSCREENGUI #include "client/renderingengine.h" #endif #include "porting.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; const int ID_cancel = 261; GUIPasswordChange::GUIPasswordChange(gui::IGUIEnvironment* env, gui::IGUIElement* parent, s32 id, IMenuManager *menumgr, Client* client, ISimpleTextureSource *tsrc ): GUIModalMenu(env, parent, id, menumgr), m_client(client), m_tsrc(tsrc) { } GUIPasswordChange::~GUIPasswordChange() { removeChildren(); } void GUIPasswordChange::removeChildren() { const core::list<gui::IGUIElement *> &children = getChildren(); core::list<gui::IGUIElement *> children_copy; for (gui::IGUIElement *i : children) { children_copy.push_back(i); } for (gui::IGUIElement *i : children_copy) { i->remove(); } } void GUIPasswordChange::regenerateGui(v2u32 screensize) { /* save current input */ acceptInput(); /* Remove stuff */ removeChildren(); /* Calculate new sizes and positions */ #ifdef HAVE_TOUCHSCREENGUI const float s = m_gui_scale * RenderingEngine::getDisplayDensity() / 2; #else const float s = m_gui_scale; #endif DesiredRect = core::rect<s32>( screensize.X / 2 - 580 * s / 2, screensize.Y / 2 - 300 * s / 2, screensize.X / 2 + 580 * s / 2, screensize.Y / 2 + 300 * s / 2 ); recalculateAbsolutePosition(false); v2s32 size = DesiredRect.getSize(); v2s32 topleft_client(40 * s, 0); const wchar_t *text; /* Add stuff */ s32 ypos = 50 * s; { core::rect<s32> rect(0, 0, 150 * s, 20 * s); rect += topleft_client + v2s32(25 * s, ypos + 6 * s); text = wgettext("Old Password"); Environment->addStaticText(text, rect, false, true, this, -1); delete[] text; } { core::rect<s32> rect(0, 0, 230 * s, 30 * s); rect += topleft_client + v2s32(160 * s, ypos); gui::IGUIEditBox *e = Environment->addEditBox( m_oldpass.c_str(), rect, true, this, ID_oldPassword); Environment->setFocus(e); e->setPasswordBox(true); } ypos += 50 * s; { core::rect<s32> rect(0, 0, 150 * s, 20 * s); rect += topleft_client + v2s32(25 * s, ypos + 6 * s); text = wgettext("New Password"); Environment->addStaticText(text, rect, false, true, this, -1); delete[] text; } { core::rect<s32> rect(0, 0, 230 * s, 30 * s); rect += topleft_client + v2s32(160 * s, ypos); gui::IGUIEditBox *e = Environment->addEditBox( m_newpass.c_str(), rect, true, this, ID_newPassword1); e->setPasswordBox(true); } ypos += 50 * s; { core::rect<s32> rect(0, 0, 150 * s, 20 * s); rect += topleft_client + v2s32(25 * s, ypos + 6 * s); text = wgettext("Confirm Password"); Environment->addStaticText(text, rect, false, true, this, -1); delete[] text; } { core::rect<s32> rect(0, 0, 230 * s, 30 * s); rect += topleft_client + v2s32(160 * s, ypos); gui::IGUIEditBox *e = Environment->addEditBox( m_newpass_confirm.c_str(), rect, true, this, ID_newPassword2); e->setPasswordBox(true); } ypos += 50 * s; { core::rect<s32> rect(0, 0, 100 * s, 30 * s); rect = rect + v2s32(size.X / 4 + 56 * s, ypos); text = wgettext("Change"); GUIButton::addButton(Environment, rect, m_tsrc, this, ID_change, text); delete[] text; } { core::rect<s32> rect(0, 0, 100 * s, 30 * s); rect = rect + v2s32(size.X / 4 + 185 * s, ypos); text = wgettext("Cancel"); GUIButton::addButton(Environment, rect, m_tsrc, this, ID_cancel, text); delete[] text; } ypos += 50 * s; { core::rect<s32> rect(0, 0, 300 * s, 20 * s); rect += topleft_client + v2s32(35 * s, ypos); text = wgettext("Passwords do not match!"); IGUIElement *e = Environment->addStaticText( text, rect, false, true, this, ID_message); e->setVisible(false); delete[] text; } } 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(); #ifdef __ANDROID__ getAndroidUIInput(); #endif } void GUIPasswordChange::acceptInput() { gui::IGUIElement *e; e = getElementFromId(ID_oldPassword); if (e != NULL) m_oldpass = e->getText(); e = getElementFromId(ID_newPassword1); if (e != NULL) m_newpass = e->getText(); e = getElementFromId(ID_newPassword2); if (e != NULL) m_newpass_confirm = e->getText(); } bool GUIPasswordChange::processInput() { if (m_newpass != m_newpass_confirm) { gui::IGUIElement *e = getElementFromId(ID_message); if (e != NULL) e->setVisible(true); return false; } m_client->sendChangePassword(wide_to_utf8(m_oldpass), wide_to_utf8(m_newpass)); return true; } bool GUIPasswordChange::OnEvent(const SEvent &event) { if (event.EventType == EET_KEY_INPUT_EVENT) { // clang-format off if ((event.KeyInput.Key == KEY_ESCAPE || event.KeyInput.Key == KEY_CANCEL) && event.KeyInput.PressedDown) { quitMenu(); return true; } // clang-format on if (event.KeyInput.Key == KEY_RETURN && event.KeyInput.PressedDown) { acceptInput(); if (processInput()) quitMenu(); return true; } } if (event.EventType == EET_GUI_EVENT) { if (event.GUIEvent.EventType == gui::EGET_ELEMENT_FOCUS_LOST && isVisible()) { if (!canTakeFocus(event.GUIEvent.Element)) { infostream << "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: acceptInput(); if (processInput()) quitMenu(); return true; case ID_cancel: 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: acceptInput(); if (processInput()) quitMenu(); return true; } } } return Parent ? Parent->OnEvent(event) : false; } std::string GUIPasswordChange::getNameByID(s32 id) { switch (id) { case ID_oldPassword: return "old_password"; case ID_newPassword1: return "new_password_1"; case ID_newPassword2: return "new_password_2"; } return ""; } #ifdef __ANDROID__ bool GUIPasswordChange::getAndroidUIInput() { if (!hasAndroidUIInput()) return false; // still waiting if (porting::getInputDialogState() == -1) return true; gui::IGUIElement *e = nullptr; if (m_jni_field_name == "old_password") e = getElementFromId(ID_oldPassword); else if (m_jni_field_name == "new_password_1") e = getElementFromId(ID_newPassword1); else if (m_jni_field_name == "new_password_2") e = getElementFromId(ID_newPassword2); m_jni_field_name.clear(); if (!e || e->getType() != irr::gui::EGUIET_EDIT_BOX) return false; std::string text = porting::getInputDialogValue(); e->setText(utf8_to_wide(text).c_str()); return false; } #endif