Skip to content

Commit

Permalink
reduce binary size 3
Browse files Browse the repository at this point in the history
  • Loading branch information
katahiromz committed Jan 13, 2024
1 parent 71702c8 commit a9cbcb7
Showing 1 changed file with 34 additions and 58 deletions.
92 changes: 34 additions & 58 deletions GUI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5651,6 +5651,38 @@ void __fastcall XgDrawCaret(HDC hdc)
::DeleteObject(hCaretPen);
}

// 問題を生成する。
void __fastcall XgGenerate(HWND hwnd, bool show_answer)
{
bool flag = false;
auto sa1 = std::make_shared<XG_UndoData_SetAll>();
auto sa2 = std::make_shared<XG_UndoData_SetAll>();
sa1->Get();
// 候補ウィンドウを破棄する。
XgDestroyCandsWnd();
// ヒントウィンドウを破棄する。
XgDestroyHintsWnd();
// 二重マス単語の候補と配置を破棄する。
::DestroyWindow(xg_hMarkingDlg);
// 問題の作成。
if (XgOnGenerate(hwnd, show_answer, false)) {
flag = true;
sa2->Get();
xg_ubUndoBuffer.Commit(UC_SETALL, sa1, sa2);
// イメージを更新する。
XgSetCaretPos();
XgMarkUpdate();
// メッセージボックスを表示する。
XgShowResults(hwnd);
}
if (!flag) {
sa1->Apply();
}
// イメージを更新する。
XgSetCaretPos();
XgMarkUpdate();
}

// コマンドを実行する。
void __fastcall MainWnd_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT /*codeNotify*/)
{
Expand Down Expand Up @@ -5836,67 +5868,11 @@ void __fastcall MainWnd_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT /*codeNo
bUpdateImage = TRUE;
break;
case ID_GENERATE: // 問題を自動生成する。
{
bool flag = false;
auto sa1 = std::make_shared<XG_UndoData_SetAll>();
auto sa2 = std::make_shared<XG_UndoData_SetAll>();
sa1->Get();
// 候補ウィンドウを破棄する。
XgDestroyCandsWnd();
// ヒントウィンドウを破棄する。
XgDestroyHintsWnd();
// 二重マス単語の候補と配置を破棄する。
::DestroyWindow(xg_hMarkingDlg);
// 問題の作成。
if (XgOnGenerate(hwnd, false, false)) {
flag = true;
sa2->Get();
xg_ubUndoBuffer.Commit(UC_SETALL, sa1, sa2);
// イメージを更新する。
XgSetCaretPos();
XgMarkUpdate();
// メッセージボックスを表示する。
XgShowResults(hwnd);
}
if (!flag) {
sa1->Apply();
}
// イメージを更新する。
XgSetCaretPos();
XgMarkUpdate();
}
XgGenerate(hwnd, false);
bUpdateImage = TRUE;
break;
case ID_GENERATEANSWER: // 問題を自動生成する(答え付き)。
{
bool flag = false;
auto sa1 = std::make_shared<XG_UndoData_SetAll>();
auto sa2 = std::make_shared<XG_UndoData_SetAll>();
sa1->Get();
// 候補ウィンドウを破棄する。
XgDestroyCandsWnd();
// ヒントウィンドウを破棄する。
XgDestroyHintsWnd();
// 二重マス単語の候補と配置を破棄する。
::DestroyWindow(xg_hMarkingDlg);
// 問題の作成。
if (XgOnGenerate(hwnd, true, false)) {
flag = true;
sa2->Get();
xg_ubUndoBuffer.Commit(UC_SETALL, sa1, sa2);
// イメージを更新する。
XgSetCaretPos();
XgMarkUpdate();
// メッセージボックスを表示する。
XgShowResults(hwnd);
}
if (!flag) {
sa1->Apply();
}
// イメージを更新する。
XgSetCaretPos();
XgMarkUpdate();
}
XgGenerate(hwnd, true);
bUpdateImage = TRUE;
break;
case ID_GENERATEREPEATEDLY: // 問題を連続自動生成する
Expand Down

0 comments on commit a9cbcb7

Please sign in to comment.