openclonk/src/gui/C4StartupMainDlg.h

66 lines
2.6 KiB
C++

/*
* OpenClonk, http://www.openclonk.org
*
* Copyright (c) 2005-2009, RedWolf Design GmbH, http://www.clonk.de/
* Copyright (c) 2013-2016, The OpenClonk Team and contributors
*
* Distributed under the terms of the ISC license; see accompanying file
* "COPYING" for details.
*
* "Clonk" is a registered trademark of Matthes Bender, used with permission.
* See accompanying file "TRADEMARK" for details.
*
* To redistribute this file separately, substitute the full license texts
* for the above references.
*/
// Startup screen for non-parameterized engine start
#ifndef INC_C4StartupMainDlg
#define INC_C4StartupMainDlg
#include "gui/C4Startup.h"
class C4StartupMainDlg : public C4StartupDlg
{
private:
C4KeyBinding *pKeyDown, *pKeyUp, *pKeyEnter;
C4GUI::Label *pParticipantsLbl;
C4GUI::Button *pStartButton;
bool fFirstShown;
protected:
void ConfirmMoveKey(const char *strKeyFilename);
void DrawElement(C4TargetFacet &cgo) override;
void OnClosed(bool fOK) override; // callback when dlg got closed: Abort startup
C4GUI::ContextMenu *OnPlayerSelContext(C4GUI::Element *pBtn, int32_t iX, int32_t iY); // preliminary player selection via simple context menu
C4GUI::ContextMenu *OnPlayerSelContextAdd(C4GUI::Element *pBtn, int32_t iX, int32_t iY);
C4GUI::ContextMenu *OnPlayerSelContextRemove(C4GUI::Element *pBtn, int32_t iX, int32_t iY);
void OnPlayerSelContextAddPlr(C4GUI::Element *pTarget, const StdCopyStrBuf &rsFilename);
void OnPlayerSelContextRemovePlr(C4GUI::Element *pTarget, const int &iIndex);
void UpdateParticipants();
void ShowParticipantCreationDlg();
void OnStartBtn(C4GUI::Control *btn); // callback: run default start button pressed
void OnPlayerSelectionBtn(C4GUI::Control *btn); // callback: player selection (preliminary version via context menus...)
void OnNetJoinBtn(C4GUI::Control *btn); // callback: join net work game (direct join only for now)
void OnNetJoin(const StdStrBuf &rsHostAddress);
void OnOptionsBtn(C4GUI::Control *btn); // callback: Show options screen
void OnEditorBtn(C4GUI::Control *btn); // callback: Editor
void OnAboutBtn(C4GUI::Control *btn); // callback: Show about screen
void OnExitBtn(C4GUI::Control *btn); // callback: exit button pressed
void OnTODO(C4GUI::Control *btn); // button not yet implemented
bool KeyEnterDown(); // return pressed -> reroute as space
bool KeyEnterUp(); // return released -> reroute as space
void OnShown() override; // callback when shown: Show log if restart after failure; show player creation dlg on first start
public:
C4StartupMainDlg(); // ctor
~C4StartupMainDlg() override; // dtor
};
#endif // INC_C4StartupMainDlg