LRESULT SettingPageMyINFO::SettingPageProc(UINT uMsg, WPARAM wParam, LPARAM lParam) { if(uMsg == WM_COMMAND) { switch(LOWORD(wParam)) { case CB_NO_TAG_ACTION: if(HIWORD(wParam) == CBN_SELCHANGE) { uint32_t ui32NoTagAction = (uint32_t)::SendMessage(hWndPageItems[CB_NO_TAG_ACTION], CB_GETCURSEL, 0, 0); ::EnableWindow(hWndPageItems[EDT_NO_TAG_MESSAGE], ui32NoTagAction != 0 ? TRUE : FALSE); ::EnableWindow(hWndPageItems[EDT_NO_TAG_REDIRECT], ui32NoTagAction == 2 ? TRUE : FALSE); ::EnableWindow(hWndPageItems[BTN_REPORT_SUSPICIOUS_TAG], ui32NoTagAction == 0 ? TRUE : FALSE); } break; case EDT_NO_TAG_MESSAGE: case EDT_NO_TAG_REDIRECT: if(HIWORD(wParam) == EN_CHANGE) { RemovePipes((HWND)lParam); return 0; } break; case EDT_MINUTES_BEFORE_ACCEPT_NEW_MYINFO: if(HIWORD(wParam) == EN_CHANGE) { MinMaxCheck((HWND)lParam, 0, 999); return 0; } break; case CB_ORIGINAL_MYINFO_ACTION: if(HIWORD(wParam) == CBN_SELCHANGE) { BOOL bEnable = ((uint32_t)::SendMessage(hWndPageItems[CB_ORIGINAL_MYINFO_ACTION], CB_GETCURSEL, 0, 0) == 0 ? FALSE : TRUE); ::EnableWindow(hWndPageItems[BTN_REMOVE_DESCRIPTION], bEnable); ::EnableWindow(hWndPageItems[BTN_REMOVE_TAG], bEnable); ::EnableWindow(hWndPageItems[BTN_REMOVE_CONNECTION], bEnable); ::EnableWindow(hWndPageItems[BTN_REMOVE_EMAIL], bEnable); ::EnableWindow(hWndPageItems[BTN_MODE_TO_MYINFO], bEnable); ::EnableWindow(hWndPageItems[BTN_MODE_TO_DESCRIPTION], bEnable); } break; } } return ::DefWindowProc(m_hWnd, uMsg, wParam, lParam); }
LRESULT SettingPageAdvanced::SettingPageProc(UINT uMsg, WPARAM wParam, LPARAM lParam) { if(uMsg == WM_COMMAND) { switch(LOWORD(wParam)) { case BTN_ENABLE_TRAY_ICON: if(HIWORD(wParam) == BN_CLICKED) { ::EnableWindow(m_hWndPageItems[BTN_MINIMIZE_ON_STARTUP], ::SendMessage(m_hWndPageItems[BTN_ENABLE_TRAY_ICON], BM_GETCHECK, 0, 0) == BST_CHECKED ? TRUE : FALSE); } break; case BTN_ENABLE_SCRIPTING: if(HIWORD(wParam) == BN_CLICKED) { BOOL bEnable = ::SendMessage(m_hWndPageItems[BTN_ENABLE_SCRIPTING], BM_GETCHECK, 0, 0) == BST_CHECKED ? TRUE : FALSE; ::EnableWindow(m_hWndPageItems[BTN_STOP_SCRIPT_ON_ERROR], bEnable); ::EnableWindow(m_hWndPageItems[BTN_SAVE_SCRIPT_ERRORS_TO_LOG], bEnable); } break; case BTN_FILTER_KICK_MESSAGES: if(HIWORD(wParam) == BN_CLICKED) { ::EnableWindow(m_hWndPageItems[BTN_SEND_KICK_MESSAGES_TO_OPS], ::SendMessage(m_hWndPageItems[BTN_FILTER_KICK_MESSAGES], BM_GETCHECK, 0, 0) == BST_CHECKED ? TRUE : FALSE); } break; case BTN_SEND_STATUS_MESSAGES_TO_OPS: if(HIWORD(wParam) == BN_CLICKED) { ::EnableWindow(m_hWndPageItems[BTN_SEND_STATUS_MESSAGES_IN_PM], ::SendMessage(m_hWndPageItems[BTN_SEND_STATUS_MESSAGES_TO_OPS], BM_GETCHECK, 0, 0) == BST_CHECKED ? TRUE : FALSE); } break; case EDT_PREFIXES_FOR_HUB_COMMANDS: if(HIWORD(wParam) == EN_CHANGE) { char buf[6]; ::GetWindowText((HWND)lParam, buf, 6); bool bChanged = false; for(uint16_t ui16i = 0; buf[ui16i] != '\0'; ui16i++) { if(buf[ui16i] == '|' || buf[ui16i] == ' ') { strcpy(buf+ui16i, buf+ui16i+1); bChanged = true; ui16i--; continue; } for(uint16_t ui16j = 0; buf[ui16j] != '\0'; ui16j++) { if(ui16j == ui16i) { continue; } if(buf[ui16j] == buf[ui16i]) { strcpy(buf+ui16j, buf+ui16j+1); bChanged = true; if(ui16i > ui16j) { ui16i--; } ui16j--; } } } if(bChanged == true) { int iStart, iEnd; ::SendMessage((HWND)lParam, EM_GETSEL, (WPARAM)&iStart, (LPARAM)&iEnd); ::SetWindowText((HWND)lParam, buf); ::SendMessage((HWND)lParam, EM_SETSEL, iStart, iEnd); } return 0; } break; case EDT_ADMIN_NICK: if(HIWORD(wParam) == EN_CHANGE) { RemovePipes((HWND)lParam); return 0; } break; #if defined(_WITH_SQLITE) || defined(_WITH_POSTGRES) || defined(_WITH_MYSQL) case CHK_ENABLE_DATABASE: if(HIWORD(wParam) == BN_CLICKED) { BOOL bEnabled = ::SendMessage(m_hWndPageItems[CHK_ENABLE_DATABASE], BM_GETCHECK, 0, 0) == BST_CHECKED ? TRUE : FALSE; ::EnableWindow(m_hWndPageItems[LBL_REMOVE_OLD_RECORDS], bEnabled); ::EnableWindow(m_hWndPageItems[EDT_REMOVE_OLD_RECORDS], bEnabled); ::EnableWindow(m_hWndPageItems[UD_REMOVE_OLD_RECORDS], bEnabled); } break; case EDT_REMOVE_OLD_RECORDS: if(HIWORD(wParam) == EN_CHANGE) { MinMaxCheck((HWND)lParam, 0, 32767); return 0; } break; #endif } } return ::DefWindowProc(m_hWnd, uMsg, wParam, lParam); }
LRESULT SettingPageGeneral::SettingPageProc(UINT uMsg, WPARAM wParam, LPARAM lParam) { if(uMsg == WM_COMMAND) { switch(LOWORD(wParam)) { case EDT_HUB_NAME: case EDT_HUB_TOPIC: case EDT_HUB_DESCRIPTION: case EDT_HUB_ADDRESS: if(HIWORD(wParam) == EN_CHANGE) { RemoveDollarsPipes((HWND)lParam); return 0; } break; case EDT_TCP_PORTS: if(HIWORD(wParam) == EN_CHANGE) { char buf[65]; ::GetWindowText((HWND)lParam, buf, 65); bool bChanged = false; for(uint16_t ui16i = 0; buf[ui16i] != '\0'; ui16i++) { if(isdigit(buf[ui16i]) == 0 && buf[ui16i] != ';') { strcpy(buf+ui16i, buf+ui16i+1); bChanged = true; ui16i--; } } if(bChanged == true) { int iStart, iEnd; ::SendMessage((HWND)lParam, EM_GETSEL, (WPARAM)&iStart, (LPARAM)&iEnd); ::SetWindowText((HWND)lParam, buf); ::SendMessage((HWND)lParam, EM_SETSEL, iStart, iEnd); } return 0; } break; case EDT_UDP_PORT: if(HIWORD(wParam) == EN_CHANGE) { MinMaxCheck((HWND)lParam, 0, 65535); return 0; } break; case EDT_MAX_USERS: if(HIWORD(wParam) == EN_CHANGE) { MinMaxCheck((HWND)lParam, 1, 32767); return 0; } break; case BTN_RESOLVE_ADDRESS: if(HIWORD(wParam) == BN_CLICKED) { BOOL bEnable = ::SendMessage(hWndPageItems[BTN_RESOLVE_ADDRESS], BM_GETCHECK, 0, 0) == BST_CHECKED ? FALSE : TRUE; ::SetWindowText(hWndPageItems[EDT_IPV4_ADDRESS], bEnable == FALSE ? clsServerManager::sHubIP : (clsSettingManager::mPtr->sTexts[SETTXT_IPV4_ADDRESS] != NULL ? clsSettingManager::mPtr->sTexts[SETTXT_IPV4_ADDRESS] : "")); ::EnableWindow(hWndPageItems[EDT_IPV4_ADDRESS], bEnable); ::SetWindowText(hWndPageItems[EDT_IPV6_ADDRESS], bEnable == FALSE ? clsServerManager::sHubIP6 : (clsSettingManager::mPtr->sTexts[SETTXT_IPV6_ADDRESS] != NULL ? clsSettingManager::mPtr->sTexts[SETTXT_IPV6_ADDRESS] : "")); ::EnableWindow(hWndPageItems[EDT_IPV6_ADDRESS], bEnable); } break; } } return ::DefWindowProc(m_hWnd, uMsg, wParam, lParam); }