mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Separate out io actions from save dialog display.
This commit is contained in:
parent
32a11dc28d
commit
51909a3256
2 changed files with 142 additions and 129 deletions
|
@ -618,11 +618,6 @@ int PSPSaveDialog::Update(int animSpeed)
|
||||||
display = DS_SAVE_CONFIRM_OVERWRITE;
|
display = DS_SAVE_CONFIRM_OVERWRITE;
|
||||||
} else {
|
} else {
|
||||||
display = DS_SAVE_SAVING;
|
display = DS_SAVE_SAVING;
|
||||||
if (param.Save(param.GetPspParam(), GetSelectedSaveDirName())) {
|
|
||||||
param.SetPspParam(param.GetPspParam()); // Optim : Just Update modified save
|
|
||||||
display = DS_SAVE_DONE;
|
|
||||||
} else
|
|
||||||
display = DS_SAVE_LIST_CHOICE; // This will probably need error message ?
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EndDraw();
|
EndDraw();
|
||||||
|
@ -643,13 +638,6 @@ int PSPSaveDialog::Update(int animSpeed)
|
||||||
StartFade(false);
|
StartFade(false);
|
||||||
} else if (IsButtonPressed(okButtonFlag)) {
|
} else if (IsButtonPressed(okButtonFlag)) {
|
||||||
display = DS_SAVE_SAVING;
|
display = DS_SAVE_SAVING;
|
||||||
if (param.Save(param.GetPspParam(), GetSelectedSaveDirName())) {
|
|
||||||
param.SetPspParam(param.GetPspParam()); // Optim : Just Update modified save
|
|
||||||
display = DS_SAVE_DONE;
|
|
||||||
} else {
|
|
||||||
// TODO: This should probably show an error message?
|
|
||||||
StartFade(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EndDraw();
|
EndDraw();
|
||||||
|
@ -674,21 +662,13 @@ int PSPSaveDialog::Update(int animSpeed)
|
||||||
}
|
}
|
||||||
} else if (IsButtonPressed(okButtonFlag)) {
|
} else if (IsButtonPressed(okButtonFlag)) {
|
||||||
display = DS_SAVE_SAVING;
|
display = DS_SAVE_SAVING;
|
||||||
if (param.Save(param.GetPspParam(), GetSelectedSaveDirName())) {
|
|
||||||
param.SetPspParam(param.GetPspParam()); // Optim : Just Update modified save
|
|
||||||
display = DS_SAVE_DONE;
|
|
||||||
} else {
|
|
||||||
// TODO: This should probably show an error message?
|
|
||||||
if (param.GetPspParam()->mode != SCE_UTILITY_SAVEDATA_TYPE_SAVE)
|
|
||||||
display = DS_SAVE_LIST_CHOICE;
|
|
||||||
else
|
|
||||||
StartFade(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EndDraw();
|
EndDraw();
|
||||||
break;
|
break;
|
||||||
case DS_SAVE_SAVING:
|
case DS_SAVE_SAVING:
|
||||||
|
ExecuteIOAction();
|
||||||
|
|
||||||
StartDraw();
|
StartDraw();
|
||||||
|
|
||||||
DisplaySaveIcon();
|
DisplaySaveIcon();
|
||||||
|
@ -735,8 +715,6 @@ int PSPSaveDialog::Update(int animSpeed)
|
||||||
StartFade(false);
|
StartFade(false);
|
||||||
} else if (IsButtonPressed(okButtonFlag)) {
|
} else if (IsButtonPressed(okButtonFlag)) {
|
||||||
display = DS_LOAD_LOADING;
|
display = DS_LOAD_LOADING;
|
||||||
if (param.Load(param.GetPspParam(), GetSelectedSaveDirName(), currentSelectedSave))
|
|
||||||
display = DS_LOAD_DONE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EndDraw();
|
EndDraw();
|
||||||
|
@ -757,17 +735,13 @@ int PSPSaveDialog::Update(int animSpeed)
|
||||||
StartFade(false);
|
StartFade(false);
|
||||||
} else if (IsButtonPressed(okButtonFlag)) {
|
} else if (IsButtonPressed(okButtonFlag)) {
|
||||||
display = DS_LOAD_LOADING;
|
display = DS_LOAD_LOADING;
|
||||||
if (param.Load(param.GetPspParam(), GetSelectedSaveDirName(), currentSelectedSave))
|
|
||||||
display = DS_LOAD_DONE;
|
|
||||||
else {
|
|
||||||
param.GetPspParam()->common.result = SCE_UTILITY_DIALOG_RESULT_CANCEL;
|
|
||||||
StartFade(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EndDraw();
|
EndDraw();
|
||||||
break;
|
break;
|
||||||
case DS_LOAD_LOADING:
|
case DS_LOAD_LOADING:
|
||||||
|
ExecuteIOAction();
|
||||||
|
|
||||||
StartDraw();
|
StartDraw();
|
||||||
|
|
||||||
DisplaySaveIcon();
|
DisplaySaveIcon();
|
||||||
|
@ -857,17 +831,14 @@ int PSPSaveDialog::Update(int animSpeed)
|
||||||
display = DS_DELETE_LIST_CHOICE;
|
display = DS_DELETE_LIST_CHOICE;
|
||||||
else {
|
else {
|
||||||
display = DS_DELETE_DELETING;
|
display = DS_DELETE_DELETING;
|
||||||
if (param.Delete(param.GetPspParam(),currentSelectedSave)) {
|
|
||||||
param.SetPspParam(param.GetPspParam()); // Optim : Just Update modified save
|
|
||||||
display = DS_DELETE_DONE;
|
|
||||||
} else
|
|
||||||
display = DS_DELETE_LIST_CHOICE; // This will probably need error message ?
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EndDraw();
|
EndDraw();
|
||||||
break;
|
break;
|
||||||
case DS_DELETE_DELETING:
|
case DS_DELETE_DELETING:
|
||||||
|
ExecuteIOAction();
|
||||||
|
|
||||||
StartDraw();
|
StartDraw();
|
||||||
|
|
||||||
DisplayMessage(d->T("Deleting","Deleting\nPlease Wait..."));
|
DisplayMessage(d->T("Deleting","Deleting\nPlease Wait..."));
|
||||||
|
@ -910,99 +881,10 @@ int PSPSaveDialog::Update(int animSpeed)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DS_NONE: // For action which display nothing
|
case DS_NONE: // For action which display nothing
|
||||||
{
|
ExecuteNotVisibleIOAction();
|
||||||
switch ((SceUtilitySavedataType)(u32)param.GetPspParam()->mode)
|
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
||||||
{
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_LOAD: // Only load and exit
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_AUTOLOAD:
|
|
||||||
if (param.Load(param.GetPspParam(), GetSelectedSaveDirName(), currentSelectedSave))
|
|
||||||
param.GetPspParam()->common.result = 0;
|
|
||||||
else
|
|
||||||
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_LOAD_NO_DATA;
|
|
||||||
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
|
||||||
break;
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_SAVE: // Only save and exit
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_AUTOSAVE:
|
|
||||||
if (param.Save(param.GetPspParam(), GetSelectedSaveDirName()))
|
|
||||||
param.GetPspParam()->common.result = 0;
|
|
||||||
else
|
|
||||||
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_SAVE_MS_NOSPACE;
|
|
||||||
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
|
||||||
break;
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_SIZES:
|
|
||||||
param.GetPspParam()->common.result = param.GetSizes(param.GetPspParam());
|
|
||||||
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
|
||||||
break;
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_LIST:
|
|
||||||
param.GetList(param.GetPspParam());
|
|
||||||
param.GetPspParam()->common.result = 0;
|
|
||||||
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
|
||||||
break;
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_FILES:
|
|
||||||
param.GetPspParam()->common.result = param.GetFilesList(param.GetPspParam());
|
|
||||||
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
|
||||||
break;
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_GETSIZE:
|
|
||||||
{
|
|
||||||
bool result = param.GetSize(param.GetPspParam());
|
|
||||||
// TODO: According to JPCSP, should test/verify this part but seems edge casey.
|
|
||||||
if (MemoryStick_State() != PSP_MEMORYSTICK_STATE_DRIVER_READY)
|
|
||||||
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_RW_NO_MEMSTICK;
|
|
||||||
else if (result)
|
|
||||||
param.GetPspParam()->common.result = 0;
|
|
||||||
else
|
|
||||||
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_RW_NO_DATA;
|
|
||||||
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_DELETEDATA:
|
|
||||||
DEBUG_LOG(SCEUTILITY, "sceUtilitySavedata DELETEDATA: %s", param.GetPspParam()->saveName);
|
|
||||||
param.GetPspParam()->common.result = param.DeleteData(param.GetPspParam());
|
|
||||||
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
|
||||||
break;
|
|
||||||
//case SCE_UTILITY_SAVEDATA_TYPE_AUTODELETE:
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_SINGLEDELETE:
|
|
||||||
if (param.Delete(param.GetPspParam(), param.GetSelectedSave()))
|
|
||||||
param.GetPspParam()->common.result = 0;
|
|
||||||
else
|
|
||||||
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_DELETE_NO_DATA;
|
|
||||||
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
|
||||||
break;
|
|
||||||
// TODO: Should reset the directory's other files.
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_MAKEDATA:
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_MAKEDATASECURE:
|
|
||||||
if (param.Save(param.GetPspParam(), GetSelectedSaveDirName(), param.GetPspParam()->mode == SCE_UTILITY_SAVEDATA_TYPE_MAKEDATASECURE))
|
|
||||||
param.GetPspParam()->common.result = 0;
|
|
||||||
else
|
|
||||||
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_RW_NO_DATA;
|
|
||||||
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
|
||||||
break;
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_WRITEDATA:
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_WRITEDATASECURE:
|
|
||||||
if (param.Save(param.GetPspParam(), GetSelectedSaveDirName(), param.GetPspParam()->mode == SCE_UTILITY_SAVEDATA_TYPE_WRITEDATASECURE))
|
|
||||||
param.GetPspParam()->common.result = 0;
|
|
||||||
else
|
|
||||||
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_RW_NO_DATA;
|
|
||||||
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
|
||||||
break;
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_READDATA:
|
|
||||||
case SCE_UTILITY_SAVEDATA_TYPE_READDATASECURE:
|
|
||||||
if (param.Load(param.GetPspParam(), GetSelectedSaveDirName(), currentSelectedSave, param.GetPspParam()->mode == SCE_UTILITY_SAVEDATA_TYPE_READDATASECURE))
|
|
||||||
param.GetPspParam()->common.result = 0;
|
|
||||||
else if (param.secureCanSkip(param.GetPspParam(),param.GetPspParam()->mode == SCE_UTILITY_SAVEDATA_TYPE_READDATASECURE)) {
|
|
||||||
INFO_LOG(SCEUTILITY,"Has not been saved yet, just skip.");
|
|
||||||
param.GetPspParam()->common.result = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_RW_NO_DATA; // not sure if correct code
|
|
||||||
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
ChangeStatus(SCE_UTILITY_STATUS_FINISHED, 0);
|
||||||
break;
|
break;
|
||||||
|
@ -1014,8 +896,136 @@ int PSPSaveDialog::Update(int animSpeed)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int PSPSaveDialog::Shutdown(bool force)
|
void PSPSaveDialog::ExecuteIOAction() {
|
||||||
{
|
switch (display) {
|
||||||
|
case DS_LOAD_LOADING:
|
||||||
|
if (param.Load(param.GetPspParam(), GetSelectedSaveDirName(), currentSelectedSave)) {
|
||||||
|
display = DS_LOAD_DONE;
|
||||||
|
} else {
|
||||||
|
// TODO: This should probably show an error message?
|
||||||
|
param.GetPspParam()->common.result = SCE_UTILITY_DIALOG_RESULT_CANCEL;
|
||||||
|
StartFade(false);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case DS_SAVE_SAVING:
|
||||||
|
if (param.Save(param.GetPspParam(), GetSelectedSaveDirName())) {
|
||||||
|
param.SetPspParam(param.GetPspParam()); // Optim : Just Update modified save
|
||||||
|
display = DS_SAVE_DONE;
|
||||||
|
} else {
|
||||||
|
// TODO: This should probably show an error message?
|
||||||
|
if (param.GetPspParam()->mode != SCE_UTILITY_SAVEDATA_TYPE_SAVE) {
|
||||||
|
display = DS_SAVE_LIST_CHOICE;
|
||||||
|
} else {
|
||||||
|
StartFade(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case DS_DELETE_DELETING:
|
||||||
|
if (param.Delete(param.GetPspParam(),currentSelectedSave)) {
|
||||||
|
param.SetPspParam(param.GetPspParam()); // Optim : Just Update modified save
|
||||||
|
display = DS_DELETE_DONE;
|
||||||
|
} else {
|
||||||
|
display = DS_DELETE_LIST_CHOICE; // This will probably need error message ?
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case DS_NONE:
|
||||||
|
ExecuteNotVisibleIOAction();
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Nothing to do here.
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void PSPSaveDialog::ExecuteNotVisibleIOAction() {
|
||||||
|
switch ((SceUtilitySavedataType)(u32)param.GetPspParam()->mode) {
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_LOAD: // Only load and exit
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_AUTOLOAD:
|
||||||
|
if (param.Load(param.GetPspParam(), GetSelectedSaveDirName(), currentSelectedSave)) {
|
||||||
|
param.GetPspParam()->common.result = 0;
|
||||||
|
} else {
|
||||||
|
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_LOAD_NO_DATA;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_SAVE: // Only save and exit
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_AUTOSAVE:
|
||||||
|
if (param.Save(param.GetPspParam(), GetSelectedSaveDirName())) {
|
||||||
|
param.GetPspParam()->common.result = 0;
|
||||||
|
} else {
|
||||||
|
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_SAVE_MS_NOSPACE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_SIZES:
|
||||||
|
param.GetPspParam()->common.result = param.GetSizes(param.GetPspParam());
|
||||||
|
break;
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_LIST:
|
||||||
|
param.GetList(param.GetPspParam());
|
||||||
|
param.GetPspParam()->common.result = 0;
|
||||||
|
break;
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_FILES:
|
||||||
|
param.GetPspParam()->common.result = param.GetFilesList(param.GetPspParam());
|
||||||
|
break;
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_GETSIZE:
|
||||||
|
{
|
||||||
|
bool result = param.GetSize(param.GetPspParam());
|
||||||
|
// TODO: According to JPCSP, should test/verify this part but seems edge casey.
|
||||||
|
if (MemoryStick_State() != PSP_MEMORYSTICK_STATE_DRIVER_READY) {
|
||||||
|
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_RW_NO_MEMSTICK;
|
||||||
|
} else if (result) {
|
||||||
|
param.GetPspParam()->common.result = 0;
|
||||||
|
} else {
|
||||||
|
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_RW_NO_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_DELETEDATA:
|
||||||
|
DEBUG_LOG(SCEUTILITY, "sceUtilitySavedata DELETEDATA: %s", param.GetPspParam()->saveName);
|
||||||
|
param.GetPspParam()->common.result = param.DeleteData(param.GetPspParam());
|
||||||
|
break;
|
||||||
|
//case SCE_UTILITY_SAVEDATA_TYPE_AUTODELETE:
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_SINGLEDELETE:
|
||||||
|
if (param.Delete(param.GetPspParam(), param.GetSelectedSave())) {
|
||||||
|
param.GetPspParam()->common.result = 0;
|
||||||
|
} else {
|
||||||
|
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_DELETE_NO_DATA;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
// TODO: Should reset the directory's other files.
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_MAKEDATA:
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_MAKEDATASECURE:
|
||||||
|
if (param.Save(param.GetPspParam(), GetSelectedSaveDirName(), param.GetPspParam()->mode == SCE_UTILITY_SAVEDATA_TYPE_MAKEDATASECURE)) {
|
||||||
|
param.GetPspParam()->common.result = 0;
|
||||||
|
} else {
|
||||||
|
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_RW_NO_DATA;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_WRITEDATA:
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_WRITEDATASECURE:
|
||||||
|
if (param.Save(param.GetPspParam(), GetSelectedSaveDirName(), param.GetPspParam()->mode == SCE_UTILITY_SAVEDATA_TYPE_WRITEDATASECURE)) {
|
||||||
|
param.GetPspParam()->common.result = 0;
|
||||||
|
} else {
|
||||||
|
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_RW_NO_DATA;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_READDATA:
|
||||||
|
case SCE_UTILITY_SAVEDATA_TYPE_READDATASECURE:
|
||||||
|
if (param.Load(param.GetPspParam(), GetSelectedSaveDirName(), currentSelectedSave, param.GetPspParam()->mode == SCE_UTILITY_SAVEDATA_TYPE_READDATASECURE)) {
|
||||||
|
param.GetPspParam()->common.result = 0;
|
||||||
|
} else if (param.secureCanSkip(param.GetPspParam(),param.GetPspParam()->mode == SCE_UTILITY_SAVEDATA_TYPE_READDATASECURE)) {
|
||||||
|
// TODO: This makes loading/saving work in some games but also confuses them. Must be wrong in some way.
|
||||||
|
INFO_LOG(SCEUTILITY,"Has not been saved yet, just skip.");
|
||||||
|
param.GetPspParam()->common.result = 0;
|
||||||
|
} else {
|
||||||
|
param.GetPspParam()->common.result = SCE_UTILITY_SAVEDATA_ERROR_RW_NO_DATA; // not sure if correct code
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int PSPSaveDialog::Shutdown(bool force) {
|
||||||
if (GetStatus() != SCE_UTILITY_STATUS_FINISHED && !force)
|
if (GetStatus() != SCE_UTILITY_STATUS_FINISHED && !force)
|
||||||
return SCE_ERROR_UTILITY_INVALID_STATUS;
|
return SCE_ERROR_UTILITY_INVALID_STATUS;
|
||||||
|
|
||||||
|
|
|
@ -89,6 +89,9 @@ private:
|
||||||
void DisplayMessage(std::string text, bool hasYesNo = false);
|
void DisplayMessage(std::string text, bool hasYesNo = false);
|
||||||
const std::string GetSelectedSaveDirName() const;
|
const std::string GetSelectedSaveDirName() const;
|
||||||
|
|
||||||
|
void ExecuteIOAction();
|
||||||
|
void ExecuteNotVisibleIOAction();
|
||||||
|
|
||||||
enum DisplayState
|
enum DisplayState
|
||||||
{
|
{
|
||||||
DS_NONE,
|
DS_NONE,
|
||||||
|
|
Loading…
Add table
Reference in a new issue