mirror of
https://github.com/luanti-org/luanti.git
synced 2025-07-22 17:18:39 +00:00
Formspecs: volume and key settings windows can now be closed by doubleclicking/tapping (#10128)
Co-authored-by: Xx_Crazyminer_xX <carlo.digioia@hotmail.it> Co-authored-by: Marco <4279489-marco_a@users.noreply.gitlab.com>
This commit is contained in:
parent
4b4513a67d
commit
cfaef5b1cf
10 changed files with 119 additions and 130 deletions
|
@ -39,7 +39,7 @@ class GUIModalMenu : public gui::IGUIElement
|
|||
{
|
||||
public:
|
||||
GUIModalMenu(gui::IGUIEnvironment* env, gui::IGUIElement* parent, s32 id,
|
||||
IMenuManager *menumgr);
|
||||
IMenuManager *menumgr, bool remap_dbl_click = true);
|
||||
virtual ~GUIModalMenu();
|
||||
|
||||
void allowFocusRemoval(bool allow);
|
||||
|
@ -50,8 +50,8 @@ public:
|
|||
|
||||
virtual void regenerateGui(v2u32 screensize) = 0;
|
||||
virtual void drawMenu() = 0;
|
||||
virtual bool preprocessEvent(const SEvent& event);
|
||||
virtual bool OnEvent(const SEvent& event) { return false; };
|
||||
virtual bool preprocessEvent(const SEvent &event);
|
||||
virtual bool OnEvent(const SEvent &event) { return false; };
|
||||
virtual bool pausesGame() { return false; } // Used for pause menu
|
||||
#ifdef __ANDROID__
|
||||
virtual bool getAndroidUIInput() { return false; }
|
||||
|
@ -62,6 +62,13 @@ protected:
|
|||
virtual std::wstring getLabelByID(s32 id) = 0;
|
||||
virtual std::string getNameByID(s32 id) = 0;
|
||||
|
||||
/**
|
||||
* check if event is part of a double click
|
||||
* @param event event to evaluate
|
||||
* @return true/false if a doubleclick was detected
|
||||
*/
|
||||
bool DoubleClickDetection(const SEvent &event);
|
||||
|
||||
v2s32 m_pointer;
|
||||
v2s32 m_old_pointer; // Mouse position after previous mouse event
|
||||
v2u32 m_screensize_old;
|
||||
|
@ -73,8 +80,23 @@ protected:
|
|||
#ifdef HAVE_TOUCHSCREENGUI
|
||||
bool m_touchscreen_visible = true;
|
||||
#endif
|
||||
|
||||
private:
|
||||
struct clickpos
|
||||
{
|
||||
v2s32 pos;
|
||||
s64 time;
|
||||
};
|
||||
clickpos m_doubleclickdetect[2];
|
||||
|
||||
IMenuManager *m_menumgr;
|
||||
/* If true, remap a double-click (or double-tap) action to ESC. This is so
|
||||
* that, for example, Android users can double-tap to close a formspec.
|
||||
*
|
||||
* This value can (currently) only be set by the class constructor
|
||||
* and the default value for the setting is true.
|
||||
*/
|
||||
bool m_remap_dbl_click;
|
||||
// This might be necessary to expose to the implementation if it
|
||||
// wants to launch other menus
|
||||
bool m_allow_focus_removal = false;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue