mirror of
https://github.com/The-Powder-Toy/The-Powder-Toy.git
synced 2025-09-07 06:20:42 +02:00
Right clicking on reload button will show save preview.
This commit is contained in:
@@ -987,6 +987,15 @@ void GameController::OpenSavePreview(int saveID, int saveDate)
|
|||||||
ui::Engine::Ref().ShowWindow(activePreview->GetView());
|
ui::Engine::Ref().ShowWindow(activePreview->GetView());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GameController::OpenSavePreview()
|
||||||
|
{
|
||||||
|
if(gameModel->GetSave())
|
||||||
|
{
|
||||||
|
activePreview = new PreviewController(gameModel->GetSave()->GetID(), new SaveOpenCallback(this));
|
||||||
|
ui::Engine::Ref().ShowWindow(activePreview->GetView());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void GameController::OpenLocalBrowse()
|
void GameController::OpenLocalBrowse()
|
||||||
{
|
{
|
||||||
class LocalSaveOpenCallback: public FileSelectedCallback
|
class LocalSaveOpenCallback: public FileSelectedCallback
|
||||||
|
@@ -106,6 +106,7 @@ public:
|
|||||||
void OpenLogin();
|
void OpenLogin();
|
||||||
void OpenTags();
|
void OpenTags();
|
||||||
void OpenSavePreview(int saveID, int saveDate);
|
void OpenSavePreview(int saveID, int saveDate);
|
||||||
|
void OpenSavePreview();
|
||||||
void OpenLocalSaveWindow(bool asCurrent);
|
void OpenLocalSaveWindow(bool asCurrent);
|
||||||
void OpenLocalBrowse();
|
void OpenLocalBrowse();
|
||||||
void OpenOptions();
|
void OpenOptions();
|
||||||
|
@@ -223,6 +223,10 @@ GameView::GameView():
|
|||||||
{
|
{
|
||||||
v->c->ReloadSim();
|
v->c->ReloadSim();
|
||||||
}
|
}
|
||||||
|
void AltActionCallback(ui::Button * sender)
|
||||||
|
{
|
||||||
|
v->c->OpenSavePreview();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
reloadButton = new ui::Button(ui::Point(currentX, Size.Y-16), ui::Point(17, 15), "", "Reload the simulation");
|
reloadButton = new ui::Button(ui::Point(currentX, Size.Y-16), ui::Point(17, 15), "", "Reload the simulation");
|
||||||
reloadButton->SetIcon(IconReload);
|
reloadButton->SetIcon(IconReload);
|
||||||
|
@@ -156,26 +156,38 @@ void Button::Draw(const Point& screenPos)
|
|||||||
|
|
||||||
void Button::OnMouseUnclick(int x, int y, unsigned int button)
|
void Button::OnMouseUnclick(int x, int y, unsigned int button)
|
||||||
{
|
{
|
||||||
if(button != 1)
|
if(button == 1)
|
||||||
{
|
{
|
||||||
return;
|
if(isButtonDown)
|
||||||
|
{
|
||||||
|
isButtonDown = false;
|
||||||
|
DoAction();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else if(button == 3)
|
||||||
if(isButtonDown)
|
|
||||||
{
|
{
|
||||||
isButtonDown = false;
|
if(isAltButtonDown)
|
||||||
DoAction();
|
{
|
||||||
}
|
isAltButtonDown = false;
|
||||||
|
DoAltAction();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Button::OnMouseClick(int x, int y, unsigned int button)
|
void Button::OnMouseClick(int x, int y, unsigned int button)
|
||||||
{
|
{
|
||||||
if(button != 1) return;
|
if(button == 1)
|
||||||
if(isTogglable)
|
{
|
||||||
{
|
if(isTogglable)
|
||||||
toggle = !toggle;
|
{
|
||||||
|
toggle = !toggle;
|
||||||
|
}
|
||||||
|
isButtonDown = true;
|
||||||
|
}
|
||||||
|
else if(button == 3)
|
||||||
|
{
|
||||||
|
isAltButtonDown = true;
|
||||||
}
|
}
|
||||||
isButtonDown = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Button::OnMouseEnter(int x, int y)
|
void Button::OnMouseEnter(int x, int y)
|
||||||
@@ -206,6 +218,14 @@ void Button::DoAction()
|
|||||||
actionCallback->ActionCallback(this);
|
actionCallback->ActionCallback(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Button::DoAltAction()
|
||||||
|
{
|
||||||
|
if(!Enabled)
|
||||||
|
return;
|
||||||
|
if(actionCallback)
|
||||||
|
actionCallback->AltActionCallback(this);
|
||||||
|
}
|
||||||
|
|
||||||
void Button::SetActionCallback(ButtonAction * action)
|
void Button::SetActionCallback(ButtonAction * action)
|
||||||
{
|
{
|
||||||
if(actionCallback)
|
if(actionCallback)
|
||||||
|
@@ -20,6 +20,7 @@ class ButtonAction
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void ActionCallback(ui::Button * sender) {}
|
virtual void ActionCallback(ui::Button * sender) {}
|
||||||
|
virtual void AltActionCallback(ui::Button * sender) {}
|
||||||
virtual void MouseEnterCallback(ui::Button * sender) {}
|
virtual void MouseEnterCallback(ui::Button * sender) {}
|
||||||
virtual ~ButtonAction() {}
|
virtual ~ButtonAction() {}
|
||||||
};
|
};
|
||||||
@@ -45,6 +46,7 @@ public:
|
|||||||
virtual void TextPosition();
|
virtual void TextPosition();
|
||||||
inline bool GetState() { return state; }
|
inline bool GetState() { return state; }
|
||||||
virtual void DoAction(); //action of button what ever it may be
|
virtual void DoAction(); //action of button what ever it may be
|
||||||
|
virtual void DoAltAction(); //action of button what ever it may be
|
||||||
void SetTogglable(bool isTogglable);
|
void SetTogglable(bool isTogglable);
|
||||||
bool GetTogglable();
|
bool GetTogglable();
|
||||||
TPT_NO_INLINE bool GetToggleState();
|
TPT_NO_INLINE bool GetToggleState();
|
||||||
@@ -60,7 +62,7 @@ protected:
|
|||||||
std::string buttonDisplayText;
|
std::string buttonDisplayText;
|
||||||
std::string ButtonText;
|
std::string ButtonText;
|
||||||
|
|
||||||
bool isButtonDown, state, isMouseInside, isTogglable, toggle;
|
bool isButtonDown, isAltButtonDown, state, isMouseInside, isTogglable, toggle;
|
||||||
ButtonAction * actionCallback;
|
ButtonAction * actionCallback;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user