]> repos.lx-s.de Git - winmute.git/commitdiff
Improved bluetooth add dialog
authorlx-s <lx-s@users.noreply.github.com>
Wed, 15 Nov 2023 15:52:14 +0000 (16:52 +0100)
committerlx-s <lx-s@users.noreply.github.com>
Wed, 15 Nov 2023 15:52:14 +0000 (16:52 +0100)
Translations/wm_de/resource.h
Translations/wm_de/wm_de.rc
WinMute/Settings_BluetoothDlg.cpp
WinMute/WinMute.rc
WinMute/resource.h

index c7a06a2e6df409e82435d77406e678538454a627..c3122f1166c4855723dd6da77d4d32700da78072 100644 (file)
@@ -61,7 +61,7 @@
 #define IDS_SETTINGS_BLUETOOTH_ADD_DLG_TITLE 1101
 #define IDS_SETTINGS_BLUETOOTH_EDIT_DLG_TITLE 1102
 #define IDS_SETTINGS_BLUETOOTH_ADD_DLG_DEVICE_NAME_LABEL 1103
-#define IDS_SETTINGS_BLUETOOTH_ADD_POPUP_ENTER_DEVICE_NAME_TITLE 1104
+#define IDS_SETTINGS_BLUETOOTH_ADD_DLG_ENTER_DEVICE_NAME_TEXT 1104
 #define IDS_SETTINGS_BLUETOOTH_ADD_POPUP_ENTER_DEVICE_NAME_TEXT 1105
 
 // Next default values for new objects
index 6594c99ca85e7b6edaa0c9ca4e26be18017dc20c..4f025cc2c1e9cd5580fc2098cc0fb723e0817521 100644 (file)
Binary files a/Translations/wm_de/wm_de.rc and b/Translations/wm_de/wm_de.rc differ
index 05f30cb3f91dca7b489f5a48f39dde1a06532e64..bc0c368417f2f8a8576d3e6278985551cc0c8599 100644 (file)
@@ -76,6 +76,10 @@ static void LoadBluetoothAddDlgTranslation(HWND hDlg, bool isEdit)
    i18n.SetItemText(hDlg, IDC_LABEL_BT_DEVICE_NAME, IDS_SETTINGS_BLUETOOTH_ADD_DLG_DEVICE_NAME_LABEL);
    i18n.SetItemText(hDlg, IDOK, IDS_SETTINGS_BTN_SAVE);
    i18n.SetItemText(hDlg, IDCANCEL, IDS_SETTINGS_BTN_CANCEL);
+
+   ComboBox_SetCueBannerText(
+      GetDlgItem(hDlg, IDC_BT_DEVICE_NAME),
+      i18n.GetTextW(IDS_SETTINGS_BLUETOOTH_ADD_DLG_ENTER_DEVICE_NAME_TEXT).c_str());
 }
 
 static INT_PTR CALLBACK Settings_BluetoothAddDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
@@ -88,7 +92,11 @@ static INT_PTR CALLBACK Settings_BluetoothAddDlgProc(HWND hDlg, UINT msg, WPARAM
          return FALSE;
       }
       SetWindowLongPtr(hDlg, GWLP_USERDATA, reinterpret_cast<LONG_PTR>(btDeviceData));
-      LoadBluetoothAddDlgTranslation(hDlg, btDeviceData->devName.length() == 0);
+      LoadBluetoothAddDlgTranslation(hDlg, btDeviceData->devName.length() != 0);
+
+      // Disable save button until at least one string change is made
+      EnableWindow(GetDlgItem(hDlg, IDOK), FALSE);
+
       // Fill Combobox
       std::vector<std::wstring> registeredBtDevices;
       if (GetPairedBtAudioDevices(registeredBtDevices)) {
@@ -96,32 +104,25 @@ static INT_PTR CALLBACK Settings_BluetoothAddDlgProc(HWND hDlg, UINT msg, WPARAM
             ComboBox_AddString(hBtDevName, devName.c_str());
          }
       }
+      ComboBox_SetExtendedUI(hBtDevName, TRUE);
 
       Edit_LimitText(hBtDevName, BT_DEV_NAME_MAX_LEN);
       if (GetDlgCtrlID(reinterpret_cast<HWND>(wParam)) != IDC_BT_DEVICE_NAME) {
          SetFocus(hBtDevName);
          return FALSE;
       }
-      ComboBox_SetCueBannerText(GetDlgItem(hDlg, IDC_BT_DEVICE_NAME), L"Test");
-
       return TRUE;
    }
-   case WM_COMMAND:
-      if (LOWORD(wParam) == IDOK) {
+   case WM_COMMAND: {
+      
+      if (LOWORD(wParam) == IDC_BT_DEVICE_NAME && HIWORD(wParam) == CBN_EDITUPDATE) {
+         HWND hDevName = GetDlgItem(hDlg, IDC_BT_DEVICE_NAME);
+         const int textLen = Edit_GetTextLength(hDevName);
+         EnableWindow(GetDlgItem(hDlg, IDOK), textLen > 0);
+      } else if (LOWORD(wParam) == IDOK) {
          HWND hDevName = GetDlgItem(hDlg, IDC_BT_DEVICE_NAME);
          const int textLen = Edit_GetTextLength(hDevName);
-         if (textLen == 0) {
-            WMi18n &i18n = WMi18n::GetInstance();
-            EDITBALLOONTIP ebt;
-            const auto popupTitle = i18n.GetTextW(IDS_SETTINGS_BLUETOOTH_ADD_POPUP_ENTER_DEVICE_NAME_TITLE);
-            const auto popupText = i18n.GetTextW(IDS_SETTINGS_BLUETOOTH_ADD_POPUP_ENTER_DEVICE_NAME_TEXT);
-            ZeroMemory(&ebt, sizeof(ebt));
-            ebt.cbStruct = sizeof(ebt);
-            ebt.pszTitle = L"Test"; //popupTitle.c_str();
-            ebt.pszText = L"Test"; //popupText.c_str();
-            ebt.ttiIcon = TTI_INFO;
-            Edit_ShowBalloonTip(hDevName, &ebt);
-         } else {
+         if (textLen != 0) {
             wchar_t devNameBuf[BT_DEV_NAME_MAX_LEN + 1] = { 'L\0' };
             BtDeviceData* btDevName = reinterpret_cast<BtDeviceData*>(GetWindowLongPtr(hDlg, GWLP_USERDATA));
             if (btDevName != nullptr) {
@@ -137,6 +138,7 @@ static INT_PTR CALLBACK Settings_BluetoothAddDlgProc(HWND hDlg, UINT msg, WPARAM
          EndDialog(hDlg, 1);
       }
       return FALSE;
+   }
    case WM_CLOSE:
       EndDialog(hDlg, 1);
       return TRUE;
index ca5df223af63328bc1cd73947dfee9322931cd31..a9cd8d040c8fafde445173ebea8869d99b9b7b4e 100644 (file)
@@ -657,9 +657,7 @@ END
 
 STRINGTABLE
 BEGIN
-    IDS_SETTINGS_BLUETOOTH_ADD_POPUP_ENTER_DEVICE_NAME_TITLE 
-                            "Bluetooth Device Name"
-    IDS_SETTINGS_BLUETOOTH_ADD_POPUP_ENTER_DEVICE_NAME_TEXT 
+    IDS_SETTINGS_BLUETOOTH_ADD_DLG_ENTER_DEVICE_NAME_TEXT 
                             "Please enter a bluetooth device name"
 END
 
index 49e9aa60c6da01bfa7716ef9e0ea06233077ab3d..23fe7ca1eeae084b4566cd0a171dcd1e23a5ead7 100644 (file)
 #define IDS_SETTINGS_BLUETOOTH_ADD_DLG_TITLE 1101
 #define IDS_SETTINGS_BLUETOOTH_EDIT_DLG_TITLE 1102
 #define IDS_SETTINGS_BLUETOOTH_ADD_DLG_DEVICE_NAME_LABEL 1103
-#define IDS_SETTINGS_BLUETOOTH_ADD_POPUP_ENTER_DEVICE_NAME_TITLE 1104
+#define IDS_SETTINGS_BLUETOOTH_ADD_DLG_ENTER_DEVICE_NAME_TEXT 1104
 #define IDS_SETTINGS_BLUETOOTH_ADD_POPUP_ENTER_DEVICE_NAME_TEXT 1105
 #define ID_TRAYMENU_INFO                40001
 #define ID_TRAYMENU_                    40002