From 0505f7948fdc0f375e3305cc1c860b02eb123fa8 Mon Sep 17 00:00:00 2001 From: lltcggie Date: Sat, 19 Mar 2016 17:51:38 +0900 Subject: [PATCH] =?UTF-8?q?UI=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/lang/english.json | 3 + bin/lang/japanese.json | 4 + waifu2x-caffe-gui/Resource.rc | Bin 11780 -> 13140 bytes waifu2x-caffe-gui/Source.cpp | 245 ++++++++++++++++++++++++++++++---- waifu2x-caffe-gui/resource.h | Bin 5586 -> 6138 bytes 5 files changed, 229 insertions(+), 23 deletions(-) diff --git a/bin/lang/english.json b/bin/lang/english.json index 6099803..a9df91c 100644 --- a/bin/lang/english.json +++ b/bin/lang/english.json @@ -17,6 +17,9 @@ "IDC_RADIONOISE_LEVEL1":"Level 1", "IDC_RADIONOISE_LEVEL2":"Level 2", "IDC_STATIC_SCALE_RATE":"Magnification rate", +"IDC_RADIO_SCALE_RATIO":"Set rate", +"IDC_RADIO_SCALE_WIDTH":"Set trans width", +"IDC_RADIO_SCALE_HEIGHT":"Set trans height", "IDC_STATIC_MODEL":"Model", "IDC_RADIO_MODEL_RGB":"2-D illust (RGB Model)", "IDC_RADIO_MODEL_PHOTO":"Photography, Anime", diff --git a/bin/lang/japanese.json b/bin/lang/japanese.json index b0df903..72a1eb9 100644 --- a/bin/lang/japanese.json +++ b/bin/lang/japanese.json @@ -17,6 +17,9 @@ "IDC_RADIONOISE_LEVEL1":"レベル1", "IDC_RADIONOISE_LEVEL2":"レベル2", "IDC_STATIC_SCALE_RATE":"拡大率", +"IDC_RADIO_SCALE_RATIO":"拡大率で指定", +"IDC_RADIO_SCALE_WIDTH":"変換後の横幅で指定", +"IDC_RADIO_SCALE_HEIGHT":"変換後の縦幅で指定", "IDC_STATIC_MODEL":"モデル", "IDC_RADIO_MODEL_RGB":"2次元イラスト (RGBモデル)", "IDC_RADIO_MODEL_PHOTO":"写真・アニメ (Photoモデル)", @@ -37,6 +40,7 @@ "MessagecuDNNCheckTime":"cuDNNチェック時間: %02d:%02d:%02d.%03d", "MessageTitleError":"エラー", "MessageScaleRateCheckError":"拡大率は0.0より大きい正数である必要があります", +"MessageScaleWidthCheckError":"拡大サイズは0より大きい整数である必要があります", "MessageCropSizeCheckError":"分割サイズは0より大きい整数である必要があります", "MessageInputPathCheckError":"入力パスを指定して下さい", "MessageOutputPathCheckError":"出力パスを指定して下さい", diff --git a/waifu2x-caffe-gui/Resource.rc b/waifu2x-caffe-gui/Resource.rc index 335976e4ab71a47f97975a49a07ed0c598fc45b3..493d0c037cf69347bfd7abd12138affe29c67d77 100644 GIT binary patch delta 1178 zcma)5OH31C5T0!<58Ew$u%)FyOH~#q4ZGX!ZmSa0$kPxBTB1atK@uPy2n1t1806sV zfC*$04;l}ec;X`2iw7g=g~S6!5-(niUW`{Ro-}d(U23-n6Hhz;{NH@@{ol;qoBA~W zda$lRhYaMP2jZZB4w^AhH|=m~AVC(#Jrn407u*_TK_!R+Y21%R@qv4f5E`V7anCEK zTV-In&Ort_--_Ql$pn`vOPt6Fz4$9|+<5D|z;Qb628QrrV9BWx-)`VNz6-SA2R?y& z!I=ih6q6;&9ulTdsfvq@n@)|$cOoiE!kt>3?$~)NsNxSni;ymA(?jj7YMCmTAPrM| z9&d%h!89Qh6Cs=Y8LEB}x*JW?iM^~+DVw5Isyz(%;q9gkSB6++tPk%CW@Mr({UlRW zJhJAm+|s)UmBSrDz-4~|zem=1nfh27HM&`8ejHIrQHJ5Fv@;V+d@l}0PrDe8g7>4J z%}B$!mTjKpw6X?_wyv5P>uoAAKWm+}VRVr2_lX5uZky++?~w;8&2~C=2HRo^Wtj)e z0UdP8&e?D*vmbk2&-&?vQ*p%|#IwADZ{ogsrrpdM2XQCoHbY8f$vXA`Zz4lWLZ;wQ zqG(3Cv7K0O;M7SEehIXBzFik5AFeJ)wR2Ce(K>{M%Wxj@FbV@ugi90^U*9 z#&D3C#afp4iiBGW;XCHtC@x9eHwI?@L3V|R`iX9s$ognb7L7GS+UzQtjx{??lU>s= zDI0+y7=}U>ku`2cv=ub%>9SY-ZBE)NYe;6&IfLgK(#+7Ly~5U~szx=MoaFwRjPrk6pjgdP=`sQJh;tBGJ Vs}uhNRdPi+2@h*hh9l{4{sEBc^1A>4 delta 728 zcmYk4%WD%+6vpp#NNAl-n@pUvagrvc2vVla%$>~3iXwj`d6x;}cRFqjM((0z*Lc7q7xY2*WWmlqp=O(r?5YG9|chC9Vllx`i#;KQw`iCRo z<8wtrND+%5o9jQ_mun-GG&49yzsH(1Wk@3wZIQqxML_Fyhi)2cxe!^D%?v)(jX*>q zKsgaHX@ySF7alSn2JRh+lr+0VzpQQ9+rlwT3u)ClOed_%dK;xx>jSM=Rr+K$X{~fd z$6>nbOp|Bl>B9DVT1=g4jO==jN5u51Vk_^yU3vOxdlkRO=8I5`O%;kn=a#vju9Zhi zT;a1mP#7o?J{=gIrH!)dNSsbpt-A>RWlsnXLth$soRi36GDbhzDpKwM8h7+Sd%skA zP&MJlH@r5P*8DCU?KG;3Yf5_4C=7I01vUHJ&^5dXHhkN85s`<{N1O91O0wnVVjpef zhq6bzziYV&)ixC;ZF)CRre_l?coRR|5zcy7?bUD^-#;fZJW`bnxyQ8#(PVbpy`s^b Ksf8@@s`_8_u%3Sa diff --git a/waifu2x-caffe-gui/Source.cpp b/waifu2x-caffe-gui/Source.cpp index 3f5f92c..c01e679 100644 --- a/waifu2x-caffe-gui/Source.cpp +++ b/waifu2x-caffe-gui/Source.cpp @@ -119,6 +119,8 @@ private: std::string mode; int noise_level; double scale_ratio; + int scale_width; + int scale_height; tstring model_dir; std::string process; tstring outputExt; @@ -147,6 +149,16 @@ private: std::chrono::system_clock::duration InitTime; std::chrono::system_clock::duration ProcessTime; + enum eScaleType + { + eScaleTypeRatio, + eScaleTypeWidth, + eScaleTypeHeight, + eScaleTypeEnd, + }; + + eScaleType scaleType; + enum eModelType { eModelTypeRGB, @@ -207,15 +219,24 @@ private: addstr += TEXT("(Level") + to_tstring(noise_level) + TEXT(")"); if (use_tta) addstr += TEXT("(tta)"); + if (mode.find("scale") != mode.npos) - addstr += TEXT("(x") + to_tstring(scale_ratio) + TEXT(")"); + { + if (scaleType == eScaleTypeRatio) + addstr += TEXT("(x") + to_tstring(scale_ratio) + TEXT(")"); + else if (scaleType == eScaleTypeWidth) + addstr += TEXT("(width ") + to_tstring(scale_width) + TEXT(")"); + else + addstr += TEXT("(height ") + to_tstring(scale_height) + TEXT(")"); + } + if (output_depth != 8) addstr += TEXT("(") + boost::lexical_cast(output_depth) + TEXT("bit)"); return addstr; } - bool SyncMember(const bool NotSyncCropSize) + bool SyncMember(const bool NotSyncCropSize, const bool silent = false) { bool ret = true; @@ -249,20 +270,74 @@ private: else noise_level = 2; + if (SendMessage(GetDlgItem(dh, IDC_RADIO_SCALE_RATIO), BM_GETCHECK, 0, 0)) + scaleType = eScaleTypeRatio; + else if(SendMessage(GetDlgItem(dh, IDC_RADIO_SCALE_WIDTH), BM_GETCHECK, 0, 0)) + scaleType = eScaleTypeWidth; + else + scaleType = eScaleTypeHeight; + { TCHAR buf[AR_PATH_MAX] = TEXT(""); GetWindowText(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), buf, _countof(buf)); buf[_countof(buf) - 1] = TEXT('\0'); TCHAR *ptr = nullptr; - scale_ratio = _tcstod(buf, &ptr); - if (!ptr || *ptr != TEXT('\0') || scale_ratio <= 0.0) + const double d = _tcstod(buf, &ptr); + if (!ptr || *ptr != TEXT('\0') || d <= 0.0) { - scale_ratio = 2.0; - ret = false; + if (scaleType == eScaleTypeRatio) + { + ret = false; - MessageBox(dh, langStringList.GetString(L"MessageScaleRateCheckError").c_str(), langStringList.GetString(L"MessageTitleError").c_str(), MB_OK | MB_ICONERROR); + if(!silent) + MessageBox(dh, langStringList.GetString(L"MessageScaleRateCheckError").c_str(), langStringList.GetString(L"MessageTitleError").c_str(), MB_OK | MB_ICONERROR); + } } + else + scale_ratio = d; + } + + { + TCHAR buf[AR_PATH_MAX] = TEXT(""); + GetWindowText(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), buf, _countof(buf)); + buf[_countof(buf) - 1] = TEXT('\0'); + + TCHAR *ptr = nullptr; + const long l = _tcstol(buf, &ptr, 10); + if (!ptr || *ptr != TEXT('\0') || l <= 0) + { + if (scaleType == eScaleTypeWidth) + { + ret = false; + + if (!silent) + MessageBox(dh, langStringList.GetString(L"MessageScaleWidthCheckError").c_str(), langStringList.GetString(L"MessageTitleError").c_str(), MB_OK | MB_ICONERROR); + } + } + else + scale_width = l; + } + + { + TCHAR buf[AR_PATH_MAX] = TEXT(""); + GetWindowText(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), buf, _countof(buf)); + buf[_countof(buf) - 1] = TEXT('\0'); + + TCHAR *ptr = nullptr; + const long l = _tcstol(buf, &ptr, 10); + if (!ptr || *ptr != TEXT('\0') || l <= 0) + { + if (scaleType == eScaleTypeHeight) + { + ret = false; + + if (!silent) + MessageBox(dh, langStringList.GetString(L"MessageScaleHeightCheckError").c_str(), langStringList.GetString(L"MessageTitleError").c_str(), MB_OK | MB_ICONERROR); + } + } + else + scale_height = l; } if (SendMessage(GetDlgItem(dh, IDC_RADIO_MODEL_RGB), BM_GETCHECK, 0, 0)) @@ -612,7 +687,7 @@ private: void ReplaceAddString() // t@C̎ݒ蕔 { - SyncMember(true); + SyncMember(true, true); const boost::filesystem::path output_path(output_str); tstring stem; @@ -710,11 +785,27 @@ private: const boost::filesystem::path SettingFilePath(exeDir / SettingFileName); - tstring tScale; + tstring tScaleRatio; + tstring tScaleWidth; + tstring tScaleHeight; tstring tmode; + tstring tScaleMode; tstring tprcess; - tScale = to_tstring(scale_ratio); + if (scale_ratio > 0.0) + tScaleRatio = to_tstring(scale_ratio); + else + tScaleRatio = TEXT(""); + + if(scale_width > 0) + tScaleWidth = to_tstring(scale_width); + else + tScaleWidth = TEXT(""); + + if(scale_height > 0) + tScaleHeight = to_tstring(scale_height); + else + tScaleHeight = TEXT(""); if (mode == ("noise")) tmode = TEXT("noise"); @@ -730,7 +821,20 @@ private: else tprcess = TEXT("cpu"); - WritePrivateProfileString(TEXT("Setting"), TEXT("LastScale"), tScale.c_str(), getTString(SettingFilePath).c_str()); + if (scaleType == eScaleTypeRatio) + tScaleMode = TEXT("Ratio"); + else if (scaleType == eScaleTypeWidth) + tScaleMode = TEXT("Width"); + else + tScaleMode = TEXT("Height"); + + WritePrivateProfileString(TEXT("Setting"), TEXT("LastScaleMode"), tScaleMode.c_str(), getTString(SettingFilePath).c_str()); + + WritePrivateProfileString(TEXT("Setting"), TEXT("LastScale"), tScaleRatio.c_str(), getTString(SettingFilePath).c_str()); + + WritePrivateProfileString(TEXT("Setting"), TEXT("LastScaleWidth"), tScaleWidth.c_str(), getTString(SettingFilePath).c_str()); + + WritePrivateProfileString(TEXT("Setting"), TEXT("LastScaleHeight"), tScaleHeight.c_str(), getTString(SettingFilePath).c_str()); WritePrivateProfileString(TEXT("Setting"), TEXT("LastOutputExt"), outputExt.c_str(), getTString(SettingFilePath).c_str()); @@ -822,9 +926,9 @@ private: } public: - DialogEvent() : dh(nullptr), mode("noise_scale"), noise_level(1), scale_ratio(2.0), model_dir(TEXT("models/anime_style_art_rgb")), + DialogEvent() : dh(nullptr), mode("noise_scale"), noise_level(1), scale_ratio(2.0), scale_width(0), scale_height(0), model_dir(TEXT("models/anime_style_art_rgb")), process("gpu"), outputExt(TEXT(".png")), inputFileExt(TEXT("png:jpg:jpeg:tif:tiff:bmp:tga")), - use_tta(false), output_quality(100), output_depth(8), crop_size(128), batch_size(1), isLastError(false) + use_tta(false), output_quality(100), output_depth(8), crop_size(128), batch_size(1), isLastError(false), scaleType(eScaleTypeEnd) { } @@ -1007,6 +1111,9 @@ public: SET_WINDOW_TEXT(IDC_RADIONOISE_LEVEL1); SET_WINDOW_TEXT(IDC_RADIONOISE_LEVEL2); SET_WINDOW_TEXT(IDC_STATIC_SCALE_RATE); + SET_WINDOW_TEXT(IDC_RADIO_SCALE_RATIO); + SET_WINDOW_TEXT(IDC_RADIO_SCALE_WIDTH); + SET_WINDOW_TEXT(IDC_RADIO_SCALE_HEIGHT); SET_WINDOW_TEXT(IDC_STATIC_MODEL); SET_WINDOW_TEXT(IDC_RADIO_MODEL_RGB); SET_WINDOW_TEXT(IDC_RADIO_MODEL_PHOTO); @@ -1223,7 +1330,11 @@ public: SendMessage(hcrop, CB_SETCURSEL, defaultListIndex, 0); } - tstring tScale; + tstring tScaleRatio; + tstring tScaleWidth; + tstring tScaleHeight; + + tstring tScaleMode; tstring tmode; tstring tprcess; { @@ -1231,7 +1342,19 @@ public: GetPrivateProfileString(TEXT("Setting"), TEXT("LastScale"), TEXT("2.00"), tmp, _countof(tmp), getTString(SettingFilePath).c_str()); tmp[_countof(tmp) - 1] = TEXT('\0'); - tScale = tmp; + tScaleRatio = tmp; + + GetPrivateProfileString(TEXT("Setting"), TEXT("LastScaleWidth"), TEXT("0"), tmp, _countof(tmp), getTString(SettingFilePath).c_str()); + tmp[_countof(tmp) - 1] = TEXT('\0'); + tScaleWidth = tmp; + + GetPrivateProfileString(TEXT("Setting"), TEXT("LastScaleHeight"), TEXT("0"), tmp, _countof(tmp), getTString(SettingFilePath).c_str()); + tmp[_countof(tmp) - 1] = TEXT('\0'); + tScaleHeight = tmp; + + GetPrivateProfileString(TEXT("Setting"), TEXT("LastScaleMode"), TEXT("Ratio"), tmp, _countof(tmp), getTString(SettingFilePath).c_str()); + tmp[_countof(tmp) - 1] = TEXT('\0'); + tScaleMode = tmp; GetPrivateProfileString(TEXT("Setting"), TEXT("LastOutputExt"), TEXT("png"), tmp, _countof(tmp), getTString(SettingFilePath).c_str()); tmp[_countof(tmp) - 1] = TEXT('\0'); @@ -1261,9 +1384,17 @@ public: } TCHAR *ptr = nullptr; - const double tempScale = _tcstod(tScale.c_str(), &ptr); + const double tempScale = _tcstod(tScaleRatio.c_str(), &ptr); if (!ptr || *ptr != TEXT('\0') || tempScale <= 0.0) - tScale = TEXT("2.00"); + tScaleRatio = TEXT("2.00"); + + const long tempScaleWidth = _tcstol(tScaleWidth.c_str(), &ptr, 10); + if (!ptr || *ptr != TEXT('\0') || tempScaleWidth <= 0) + tScaleWidth = TEXT(""); + + const long tempScaleHeight = _tcstol(tScaleHeight.c_str(), &ptr, 10); + if (!ptr || *ptr != TEXT('\0') || tempScaleHeight <= 0) + tScaleHeight = TEXT(""); if (outputExt.length() > 0 && outputExt[0] != TEXT('.')) outputExt = L"." + outputExt; @@ -1308,6 +1439,37 @@ public: SendMessage(GetDlgItem(hWnd, IDC_RADIO_AUTO_SCALE), BM_SETCHECK, BST_UNCHECKED, 0); } + if(tScaleMode == TEXT("Ratio")) + { + SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_RATIO), BM_SETCHECK, BST_CHECKED, 0); + SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH), BM_SETCHECK, BST_UNCHECKED, 0); + SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_HEIGHT), BM_SETCHECK, BST_UNCHECKED, 0); + + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), TRUE); + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE); + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE); + } + else if (tScaleMode == TEXT("Width")) + { + SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_RATIO), BM_SETCHECK, BST_UNCHECKED, 0); + SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH), BM_SETCHECK, BST_CHECKED, 0); + SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_HEIGHT), BM_SETCHECK, BST_UNCHECKED, 0); + + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE); + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), TRUE); + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE); + } + else + { + SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_RATIO), BM_SETCHECK, BST_UNCHECKED, 0); + SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_WIDTH), BM_SETCHECK, BST_UNCHECKED, 0); + SendMessage(GetDlgItem(hWnd, IDC_RADIO_SCALE_HEIGHT), BM_SETCHECK, BST_CHECKED, 0); + + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE); + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE); + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), TRUE); + } + if (noise_level == 1) { SendMessage(GetDlgItem(hWnd, IDC_RADIONOISE_LEVEL1), BM_SETCHECK, BST_CHECKED, 0); @@ -1354,7 +1516,10 @@ public: else SendMessage(GetDlgItem(hWnd, IDC_CHECK_TTA), BM_SETCHECK, BST_UNCHECKED, 0); - SetWindowText(GetDlgItem(hWnd, IDC_EDIT_SCALE_RATIO), tScale.c_str()); + SetWindowText(GetDlgItem(hWnd, IDC_EDIT_SCALE_RATIO), tScaleRatio.c_str()); + SetWindowText(GetDlgItem(hWnd, IDC_EDIT_SCALE_WIDTH), tScaleWidth.c_str()); + SetWindowText(GetDlgItem(hWnd, IDC_EDIT_SCALE_HEIGHT), tScaleHeight.c_str()); + SetWindowText(GetDlgItem(hWnd, IDC_EDIT_INPUT_EXT_LIST), inputFileExt.c_str()); EnableWindow(GetDlgItem(dh, IDC_BUTTON_CANCEL), FALSE); @@ -1393,6 +1558,30 @@ public: ReplaceAddString(); } + void ScaleRadio(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData) + { + if (SendMessage(GetDlgItem(dh, IDC_RADIO_SCALE_RATIO), BM_GETCHECK, 0, 0)) + { + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), TRUE); + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE); + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE); + } + else if (SendMessage(GetDlgItem(dh, IDC_RADIO_SCALE_WIDTH), BM_GETCHECK, 0, 0)) + { + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE); + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), TRUE); + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), FALSE); + } + else + { + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_RATIO), FALSE); + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_WIDTH), FALSE); + EnableWindow(GetDlgItem(dh, IDC_EDIT_SCALE_HEIGHT), TRUE); + } + + ReplaceAddString(); + } + void CheckCUDNN(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData) { const auto flag = Waifu2x::can_use_CUDA(); @@ -1445,8 +1634,7 @@ public: return 0L; } - if (!SyncMember(true)) - return 0L; + SyncMember(true, true); if (boost::filesystem::is_directory(path)) { @@ -1659,7 +1847,9 @@ int WINAPI WinMain(HINSTANCE hInstance, // IDC_EDIT̃TuNX CControl cControlInput(IDC_EDIT_INPUT); CControl cControlOutput(IDC_EDIT_OUTPUT); - CControl cControlScale(IDC_EDIT_SCALE_RATIO); + CControl cControlScaleRatio(IDC_EDIT_SCALE_RATIO); + CControl cControlScaleWidth(IDC_EDIT_SCALE_WIDTH); + CControl cControlScaleHeight(IDC_EDIT_SCALE_HEIGHT); // o^֐܂Ƃ߂ꂽNX // O[o֐g΃NXɂ܂Ƃ߂Kv͂Ȃ̕@𗧂‚Ƃ͂ @@ -1670,12 +1860,17 @@ int WINAPI WinMain(HINSTANCE hInstance, // IDC_EDITWM_DROPFILESĂƂɎs֐̓o^ cControlInput.SetEventCallBack(SetClassCustomFunc(DialogEvent::DropInput, &cDialogEvent), NULL, WM_DROPFILES); cControlOutput.SetEventCallBack(SetClassCustomFunc(DialogEvent::DropOutput, &cDialogEvent), NULL, WM_DROPFILES); - cControlScale.SetEventCallBack(SetClassCustomFunc(DialogEvent::TextInput, &cDialogEvent), NULL, WM_CHAR); + + cControlScaleRatio.SetEventCallBack(SetClassCustomFunc(DialogEvent::TextInput, &cDialogEvent), NULL, WM_CHAR); + cControlScaleWidth.SetEventCallBack(SetClassCustomFunc(DialogEvent::TextInput, &cDialogEvent), NULL, WM_CHAR); + cControlScaleHeight.SetEventCallBack(SetClassCustomFunc(DialogEvent::TextInput, &cDialogEvent), NULL, WM_CHAR); // Rg[̃TuNXo^ cDialog.AddControl(&cControlInput); cDialog.AddControl(&cControlOutput); - cDialog.AddControl(&cControlScale); + cDialog.AddControl(&cControlScaleRatio); + cDialog.AddControl(&cControlScaleWidth); + cDialog.AddControl(&cControlScaleHeight); // eRg[̃CxgŎs֐̓o^ cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::Exec, &cDialogEvent), NULL, IDC_BUTTON_EXEC); @@ -1696,6 +1891,10 @@ int WINAPI WinMain(HINSTANCE hInstance, cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_CHECK_TTA); cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_COMBO_OUTPUT_DEPTH); + cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::ScaleRadio, &cDialogEvent), NULL, IDC_RADIO_SCALE_RATIO); + cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::ScaleRadio, &cDialogEvent), NULL, IDC_RADIO_SCALE_WIDTH); + cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::ScaleRadio, &cDialogEvent), NULL, IDC_RADIO_SCALE_HEIGHT); + cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::CheckCUDNN, &cDialogEvent), NULL, IDC_BUTTON_CHECK_CUDNN); cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::LangChange, &cDialogEvent), NULL, IDC_COMBO_LANG); diff --git a/waifu2x-caffe-gui/resource.h b/waifu2x-caffe-gui/resource.h index 1b0242355afd3c1599efb9602d470d4025edfb0f..115ac8459ea402672aa142ed918337dbe45cab28 100644 GIT binary patch delta 232 zcmcbl{Y!sC73<_aHjc@sSom1O89W(WCO7g*PF4`$U^ZkhnXJepySa+hh8d=W8?1yO zgu#QsX!1l+X=Wn^!^wqgsvzy09t^HP1Kb%rCOZmCPHqrj0m~ZlsBb>Nv5sqU1;4~( zJ0_mVXIOMVl9K~OB_=xvaDc=FgBhF|92tCo2E;QUT=7AWgV6%$22D|9d1PzE!Pb~C hSZ>Y~)@Pioz$7+#oya0)Qw9T|Hc=p3WO9vY7yv{?H@*M> delta 46 zcmeyRe@S~o73=0}tTxP(?L@dXU*TNGwRxJT7USe2jAD}~h>J{qCDu3jnur9Dodp20 Ca}oIf