Right clicking on reload button will show save preview.

This commit is contained in:
Simon Robertshaw 2012-11-26 11:48:27 +00:00
parent b08812569c
commit 3664a22f98
5 changed files with 49 additions and 13 deletions

View File

@ -987,6 +987,15 @@ void GameController::OpenSavePreview(int saveID, int saveDate)
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()
{
class LocalSaveOpenCallback: public FileSelectedCallback

View File

@ -106,6 +106,7 @@ public:
void OpenLogin();
void OpenTags();
void OpenSavePreview(int saveID, int saveDate);
void OpenSavePreview();
void OpenLocalSaveWindow(bool asCurrent);
void OpenLocalBrowse();
void OpenOptions();

View File

@ -223,6 +223,10 @@ GameView::GameView():
{
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->SetIcon(IconReload);

View File

@ -156,26 +156,38 @@ void Button::Draw(const Point& screenPos)
void Button::OnMouseUnclick(int x, int y, unsigned int button)
{
if(button != 1)
if(button == 1)
{
return;
if(isButtonDown)
{
isButtonDown = false;
DoAction();
}
}
if(isButtonDown)
else if(button == 3)
{
isButtonDown = false;
DoAction();
}
if(isAltButtonDown)
{
isAltButtonDown = false;
DoAltAction();
}
}
}
void Button::OnMouseClick(int x, int y, unsigned int button)
{
if(button != 1) return;
if(isTogglable)
{
toggle = !toggle;
if(button == 1)
{
if(isTogglable)
{
toggle = !toggle;
}
isButtonDown = true;
}
else if(button == 3)
{
isAltButtonDown = true;
}
isButtonDown = true;
}
void Button::OnMouseEnter(int x, int y)
@ -206,6 +218,14 @@ void Button::DoAction()
actionCallback->ActionCallback(this);
}
void Button::DoAltAction()
{
if(!Enabled)
return;
if(actionCallback)
actionCallback->AltActionCallback(this);
}
void Button::SetActionCallback(ButtonAction * action)
{
if(actionCallback)

View File

@ -20,6 +20,7 @@ class ButtonAction
{
public:
virtual void ActionCallback(ui::Button * sender) {}
virtual void AltActionCallback(ui::Button * sender) {}
virtual void MouseEnterCallback(ui::Button * sender) {}
virtual ~ButtonAction() {}
};
@ -45,6 +46,7 @@ public:
virtual void TextPosition();
inline bool GetState() { return state; }
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);
bool GetTogglable();
TPT_NO_INLINE bool GetToggleState();
@ -60,7 +62,7 @@ protected:
std::string buttonDisplayText;
std::string ButtonText;
bool isButtonDown, state, isMouseInside, isTogglable, toggle;
bool isButtonDown, isAltButtonDown, state, isMouseInside, isTogglable, toggle;
ButtonAction * actionCallback;
};