コード例 #1
0
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);
}
コード例 #2
0
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);
}