aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/guiFormSpecMenu.cpp20
-rw-r--r--src/guiFormSpecMenu.h2
2 files changed, 16 insertions, 6 deletions
diff --git a/src/guiFormSpecMenu.cpp b/src/guiFormSpecMenu.cpp
index 02a4fcaad..b2fee9c0d 100644
--- a/src/guiFormSpecMenu.cpp
+++ b/src/guiFormSpecMenu.cpp
@@ -149,6 +149,7 @@ GUIFormSpecMenu::~GUIFormSpecMenu()
delete m_selected_item;
delete m_form_src;
+ delete m_text_dst;
}
void GUIFormSpecMenu::removeChildren()
@@ -398,7 +399,7 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
Environment->addStaticText(spec.flabel.c_str(), rect, false, true, this, spec.fid);
m_fields.push_back(spec);
}
- else if(type == "button")
+ else if(type == "button" || type == "button_exit")
{
v2s32 pos;
pos.X = stof(f.next(",")) * (float)spacing.X;
@@ -421,10 +422,12 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
258+m_fields.size()
);
spec.is_button = true;
+ if(type == "button_exit")
+ spec.is_exit = true;
Environment->addButton(rect, this, spec.fid, spec.flabel.c_str());
m_fields.push_back(spec);
}
- else if(type == "image_button")
+ else if(type == "image_button" || type == "image_button_exit")
{
v2s32 pos;
pos.X = stof(f.next(",")) * (float)spacing.X;
@@ -448,6 +451,8 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
258+m_fields.size()
);
spec.is_button = true;
+ if(type == "image_button_exit")
+ spec.is_exit = true;
video::ITexture *texture = m_gamedef->tsrc()->getTextureRaw(fimage);
gui::IGUIButton *e = Environment->addButton(rect, this, spec.fid, spec.flabel.c_str());
@@ -813,8 +818,6 @@ void GUIFormSpecMenu::acceptInput()
}
}
m_text_dst->gotText(fields);
- delete m_text_dst;
- m_text_dst = NULL;
}
}
@@ -1152,8 +1155,13 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
{
s.send = true;
acceptInput();
- quitMenu();
- return true;
+ if(s.is_exit){
+ quitMenu();
+ return true;
+ }else{
+ s.send = false;
+ return true;
+ }
}
}
}
diff --git a/src/guiFormSpecMenu.h b/src/guiFormSpecMenu.h
index 0830165a5..8e9557566 100644
--- a/src/guiFormSpecMenu.h
+++ b/src/guiFormSpecMenu.h
@@ -130,6 +130,7 @@ class GUIFormSpecMenu : public GUIModalMenu
{
send = false;
is_button = false;
+ is_exit = false;
}
std::wstring fname;
std::wstring flabel;
@@ -137,6 +138,7 @@ class GUIFormSpecMenu : public GUIModalMenu
int fid;
bool send;
bool is_button;
+ bool is_exit;
};
public: