18 #ifndef INC_C4StartupScenSelDlg
19 #define INC_C4StartupScenSelDlg
101 bool RenameTo(
const char *szNewName);
117 int32_t nAchievements;
118 bool fNoMissionAccess;
119 int32_t iMinPlrCount;
127 bool Start()
override;
173 bool Start()
override;
221 void Merge(
const char *szPath);
234 int32_t iLoading, iProgress, iMaxProgress;
236 bool fAbortThis, fAbortPrevious;
245 bool BeginActivity(
bool fAbortPrevious);
249 bool DoProcessCallback(int32_t iProgress, int32_t iMaxProgress,
const char *current_load_info);
253 bool Load(
Folder *pSpecifiedFolder,
bool fReload);
288 int32_t iTitleFontSize;
289 uint32_t dwTitleInactClr, dwTitleActClr;
290 int32_t iTitleOffX, iTitleOffY;
291 uint8_t byTitleAlign;
328 void MouseInput(
C4GUI::CMouse &rMouse, int32_t iButton, int32_t iX, int32_t iY,
DWORD dwKeyParam)
override;
336 bool fCoordinatesAdjusted{
false};
341 int32_t MinResX, MinResY;
342 bool fUseFullscreenMap;
343 Scenario **ppScenList{
nullptr}; int32_t iScenCount{0};
344 AccessGfx **ppAccessGfxList{
nullptr}; int32_t iAccessGfxCount{0};
352 void ConvertFacet2ScreenCoord(
const C4Rect &rc,
FLOAT_RECT *pfrc,
float fBGZoomX,
float fBGZoomY,
int iOffX,
int iOffY);
353 void ConvertFacet2ScreenCoord(int32_t *piValue,
float fBGZoom,
int iOff);
354 void ConvertFacet2ScreenCoord(
C4Rect &rcMapArea,
bool fAspect);
419 enum { ShowStyle_Book=0, ShowStyle_Map=1 };
420 enum { IconLabelSpacing = 2 };
430 C4KeyBinding *pKeyRefresh, *pKeyBack, *pKeyForward, *pKeyRename, *pKeyDelete, *pKeyCheat;
442 bool fIsInitialLoading;
443 bool fStartNetworkGame;
490 void UpdateSelection();
494 void SetOpenButtonDefaultText();
495 void FocusScenList();
496 void UpdateAchievements();
503 bool DoBack(
bool fAllowClose);
const char * LoadResStr(const char *id)
const int32_t C4StartupScenSel_DefaultIcon_WinFolder
const int32_t C4StartupScenSel_DefaultIcon_OldIconBG
const int32_t C4StartupScenSel_TitlePictureWdt
const int32_t C4StartupScenSel_DefaultIcon_Folder
const int32_t C4StartupScenSel_TitlePicturePadding
const int32_t C4StartupScenSel_IconCount
const int32_t C4StartupScenSel_TitlePictureHgt
const int32_t C4StartupScenSel_DefaultIcon_Scenario
const int32_t C4StartupScenSel_TitleOverlayMargin
const int32_t C4StartupScenSel_DefaultIcon_SavegamesFolder
const int32_t C4StartupScenSel_MaxAchievements
Element * GetNext() const
bool Load(C4Group &hGroup, C4ScenarioListLoader::Folder *pScenLoaderFolder)
C4MapFolderData()=default
void CompileFunc(StdCompiler *pComp)
C4GUI::TextWindow * GetSelectionInfoBox() const
void OnButtonScenario(C4GUI::Control *pEl)
C4ScenarioListLoader::Entry * GetSelectedEntry() const
void CreateGUIElements(C4StartupScenSelDlg *pMainDlg, C4GUI::Window &rContainer)
Entry(class C4ScenarioListLoader *pLoader, class Folder *pParent)
virtual Folder * GetIsFolder()
virtual bool CanOpen(StdStrBuf &sError, bool &CanHide)
virtual C4ScenarioParameterDefs * GetParameterDefs()
virtual bool HasMissionAccess() const
class Folder * GetParent() const
const StdStrBuf & GetEntryFilename() const
virtual const char * GetDefaultExtension()
virtual bool HasUnregisteredAccess() const
const C4Facet & GetTitlePicture() const
class C4ScenarioListLoader * pLoader
virtual bool GetAchievement(int32_t idx, C4Facet *out_facet, const char **out_description)
virtual StdStrBuf GetOpenTooltip()=0
virtual bool IsScenario()
bool Load(C4Group *pFromGrp, const StdStrBuf *psFilename, bool fLoadEx)
virtual bool LoadCustom(C4Group &rGrp, bool fNameLoaded, bool fIconLoaded)
virtual StdStrBuf GetOpenText()=0
bool RenameTo(const char *szNewName)
virtual bool SetTitleInGroup(C4Group &rGrp, const char *szNewTitle)
virtual C4ScenarioParameters * GetParameters()
const StdStrBuf & GetAuthor() const
const C4Facet & GetIconFacet() const
const StdStrBuf & GetDesc() const
static Entry * CreateEntryForFile(const StdStrBuf &sFilename, C4ScenarioListLoader *pLoader, Folder *pParent)
const StdStrBuf & GetName() const
virtual bool LoadCustomPre(C4Group &rGrp)
const StdStrBuf & GetVersion() const
virtual StdStrBuf GetTypeName()=0
bool LoadContents(C4ScenarioListLoader *pLoader, C4Group *pFromGrp, const StdStrBuf *psFilename, bool fLoadEx, bool fReload)
class C4MapFolderData * pMapData
Folder * GetIsFolder() override
StdStrBuf GetOpenText() override
uint32_t GetEntryCount() const
virtual bool DoLoadContents(C4ScenarioListLoader *pLoader, C4Group *pFromGrp, const StdStrBuf &sFilename, bool fLoadEx)=0
virtual const C4AchievementGraphics * GetAchievementGfx() const
bool CanOpen(StdStrBuf &sError, bool &CanHide) override
Entry * FindEntryByName(const char *szFilename) const
bool LoadCustomPre(C4Group &rGrp) override
Entry * GetFirstEntry() const
virtual const C4ScenarioParameterDefs * GetAchievementDefs() const
Folder(class C4ScenarioListLoader *pLoader, Folder *pParent)
StdStrBuf GetOpenTooltip() override
C4MapFolderData * GetMapData() const
bool LoadCustom(C4Group &rGrp, bool fNameLoaded, bool fIconLoaded) override
RegularFolder(class C4ScenarioListLoader *pLoader, Folder *pParent)
~RegularFolder() override
std::list< std::string > NameList
bool DoLoadContents(C4ScenarioListLoader *pLoader, C4Group *pFromGrp, const StdStrBuf &sFilename, bool fLoadEx) override
void Merge(const char *szPath)
StdStrBuf GetTypeName() override
~Scenario() override=default
bool LoadCustom(C4Group &rGrp, bool fNameLoaded, bool fIconLoaded) override
bool IsScenario() override
bool CanOpen(StdStrBuf &sError, bool &CanHide) override
bool LoadCustomPre(C4Group &rGrp) override
StdStrBuf GetOpenTooltip() override
C4ScenarioParameterDefs * GetParameterDefs() override
Scenario(class C4ScenarioListLoader *pLoader, class Folder *pParent)
const char * GetDefaultExtension() override
StdStrBuf GetTypeName() override
bool GetAchievement(int32_t idx, C4Facet *out_facet, const char **out_description) override
C4ScenarioParameters * GetParameters() override
bool HasMissionAccess() const override
StdStrBuf GetOpenText() override
const C4Scenario & GetC4S() const
const char * GetDefaultExtension() override
bool DoLoadContents(C4ScenarioListLoader *pLoader, C4Group *pFromGrp, const StdStrBuf &sFilename, bool fLoadEx) override
const C4ScenarioParameterDefs * GetAchievementDefs() const override
SubFolder(class C4ScenarioListLoader *pLoader, Folder *pParent)
bool LoadCustom(C4Group &rGrp, bool fNameLoaded, bool fIconLoaded) override
StdStrBuf GetTypeName() override
~SubFolder() override=default
const C4AchievementGraphics * GetAchievementGfx() const override
Folder * GetRootFolder() const
Entry * GetFirstEntry() const
int32_t GetProgress() const
C4ScenarioListLoader(const C4ScenarioParameters &Achievements)
const C4ScenarioParameters & GetAchievements() const
bool DoProcessCallback(int32_t iProgress, int32_t iMaxProgress, const char *current_load_info)
bool Load(const StdStrBuf &sRootFolder)
int32_t GetProgressPercent() const
Folder * GetCurrFolder() const
const char * GetProgressInfo() const
int32_t GetMaxProgress() const
bool LoadExtended(Entry *pEntry)
bool CheckNameHotkey(const char *c) override
C4ScenarioListLoader::Entry * GetEntry() const
C4GUI::RenameEdit::RenameResult DoRenaming(RenameParams par, const char *szNewName)
void MouseInput(C4GUI::CMouse &rMouse, int32_t iButton, int32_t iX, int32_t iY, DWORD dwKeyParam) override
void UpdateOwnPos() override
ScenListItem(C4GUI::ListBox *pForListBox, C4ScenarioListLoader::Entry *pForEntry, C4GUI::Element *pInsertBeforeElement=nullptr)
void AbortRenaming(RenameParams par)
void DeleteConfirm(ScenListItem *pSel)
static C4StartupScenSelDlg * pInstance
void StartRenaming(C4GUI::RenameEdit *pNewRenameEdit)
void DrawElement(C4TargetFacet &cgo) override
bool DoBack(bool fAllowClose)
void OnClosed(bool fOK) override
void OnSelChange(class C4GUI::Element *pEl)
~C4StartupScenSelDlg() override
friend class ScenListItem
void KeyCheat2(const StdStrBuf &rsCheatCode)
bool IsNetworkStart() const
C4StartupScenSelDlg(bool fNetwork)
bool StartScenario(C4ScenarioListLoader::Scenario *pStartScen)
void SetBackground(C4Facet *pNewBG)
void OnSelDblClick(class C4GUI::Element *pEl)
C4GUI::Edit::InputResult OnSearchBarEnter(C4GUI::Edit *edt, bool fPasting, bool fPastingMore)
int32_t GetMarginTop() override
void OnNextBtn(C4GUI::Control *btn)
void OnBackBtn(C4GUI::Control *btn)
bool HasBackground() override
void OnLeagueOptionChanged() override
void OnButtonScenario(C4GUI::Control *pEl)
bool OpenFolder(C4ScenarioListLoader::Folder *pNewFolder)
const char * getData() const