Пример #1
0
void TffdshowPageDec::onApplyChanges(void)
{
    deciD->saveKeysSettings();
    deciD->saveRemoteSettings();
    if (localPresets) {
        deciD->setPresets(localPresets);
        deciD->savePresets();
        const wchar_t *src = cbxGetCurText(IDC_CBX_PRESETS);
        if (src) {
            ff_strncpy(oldActivePresetName, src, countof(oldActivePresetName));
        }
    }
}
Пример #2
0
INT_PTR TdlgMiscPage::msgProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg) {
        case WM_COMMAND:
            switch (LOWORD(wParam)) {
                case IDC_CHB_DLG_SHOWHINTS:
                    parent->enableHints(!!getCheck(IDC_CHB_DLG_SHOWHINTS));
                    return TRUE;
                case IDC_CBX_LANG:
                    if (HIWORD(wParam) == CBN_SELCHANGE) {
                        const char_t *newlang = cbxGetCurText(IDC_CBX_LANG);
                        if (newlang[0]) {
                            int langint = (int)cbxGetCurItemData(IDC_CBX_LANG);
                            if (langint == 20554/*JP*/ || langint == 16714/*JA*/)
#ifdef UNICODE
                                langint = 16714; // JA Unicode
#else
                                langint = 20554; // JP ANSI
#endif
                            Twindow::cfgSet(IDFF_lang, text<char_t>((const char*)&langint));
                            parent->translate();
                        }
                        return TRUE;
                    }
                    break;
                case IDC_BT_PATH_DSCALER:
                    if (HIWORD(wParam) == BN_CLICKED) {
                        if (changeDir(IDFF_dscalerPath, _(-IDD_DLGMISC, _l("Select directory with installed DScaler")))) {
                            paths2dlg();
                        }
                        return TRUE;
                    }
                    break;
                case IDC_BT_PATH_FFDSHOW:
                    if (HIWORD(wParam) == BN_CLICKED) {
                        if (changeDir(IDFF_installPath, _(-IDD_DLGMISC, _l("Select ffdshow instalation directory")))) {
                            paths2dlg();
                        }
                        return TRUE;
                    }
                    break;
            }
            break;
    }
    return TconfPageBase::msgProc(uMsg, wParam, lParam);
}
Пример #3
0
void TdeinterlacePage::getTip(char_t *tipS, size_t len)
{
    tsnprintf_s(tipS, len, _TRUNCATE, _l("Method: %s"), cbxGetItemCount(IDC_CBX_DEINT_METHOD) ? cbxGetCurText(IDC_CBX_DEINT_METHOD) : _l("DScaler"));
}
Пример #4
0
INT_PTR Twindow::msgProc(UINT uMsg,WPARAM wParam,LPARAM lParam)
{
    switch (uMsg) {
        case WM_INITDIALOG:
            resizeDialog();
            init();
            //subClass();
            break;
        case WM_DESTROY: {
            THWNDs wnds;
            getChildWindows(m_hwnd,wnds);
            for (THWNDs::const_iterator wnd=wnds.begin(); wnd!=wnds.end(); wnd++) {
                ::Twidget *item=Twidget::getDlgItem(*wnd);
                if (item) {
                    item->restore();
                    delete item;
                }
            }
            ::Twidget *item=Twidget::getDlgItem(m_hwnd);
            if (item) {
                item->restore();
                delete item;
            }
            if (red) {
                DeleteObject(red);
            }
            red=NULL;
            break;
        }
        case WM_HSCROLL:
            if (onTrack(bindsHtrack,lParam)) {
                return TRUE;
            }
            break;
        case WM_VSCROLL:
            if (onTrack(bindsVtrack,lParam)) {
                return TRUE;
            }
            break;
        case WM_COMMAND: {
            if (bindsCheckbox)
                for (int i=0; bindsCheckbox[i].idc; i++)
                    if (bindsCheckbox[i].idc==LOWORD(wParam)) {
                        if (bindsCheckbox[i].idff<0) {
                            cfgSet(-bindsCheckbox[i].idff,!getCheck(LOWORD(wParam)));
                        } else {
                            cfgSet(bindsCheckbox[i].idff,getCheck(LOWORD(wParam)));
                        }
                        if (bindsCheckbox[i].onClick) {
                            (this->*bindsCheckbox[i].onClick)();
                        }
                        return TRUE;
                    }
            if (bindsRadiobutton)
                for (int i=0; bindsRadiobutton[i].idc; i++)
                    if (bindsRadiobutton[i].idc==LOWORD(wParam) && getCheck(LOWORD(bindsRadiobutton[i].idc))) {
                        cfgSet(bindsRadiobutton[i].idff,bindsRadiobutton[i].val);
                        if (bindsRadiobutton[i].onClick) {
                            (this->*bindsRadiobutton[i].onClick)();
                        }
                        return TRUE;
                    }
            if (bindsButton)
                if (HIWORD(wParam)==BN_CLICKED) // works also for static
                    for (int i=0; bindsButton[i].idc; i++)
                        if (bindsButton[i].idc==LOWORD(wParam) && bindsButton[i].onClick) {
                            (this->*bindsButton[i].onClick)();
                            return TRUE;
                        }
            if (HIWORD(wParam)==EN_CHANGE && !isSetWindowText) {
                if (LOWORD(wParam)==IDC_ED_HELP && tr->translateMode) {
                    onEditChange();
                }
                if (bindsEditInt)
                    for (int i=0; bindsEditInt[i].idc; i++)
                        if (bindsEditInt[i].idc==LOWORD(wParam)) {
                            HWND hed=GetDlgItem(m_hwnd,bindsEditInt[i].idc);
                            if (hed!=GetFocus()) {
                                return FALSE;
                            }
                            repaint(hed);
                            eval(hed,bindsEditInt[i].min,bindsEditInt[i].max,bindsEditInt[i].idff);
                            if (bindsEditInt[i].onClick) {
                                (this->*bindsEditInt[i].onClick)();
                            }
                            return TRUE;
                        }
                if (bindsEditReal)
                    for (int i=0; bindsEditReal[i].idc; i++)
                        if (bindsEditReal[i].idc==LOWORD(wParam)) {
                            HWND hed=GetDlgItem(m_hwnd,bindsEditReal[i].idc);
                            if (hed!=GetFocus()) {
                                return FALSE;
                            }
                            repaint(hed);
                            eval(hed,bindsEditReal[i].min,bindsEditReal[i].max,bindsEditReal[i].idff,bindsEditReal[i].mult);
                            if (bindsEditReal[i].onClick) {
                                (this->*bindsEditReal[i].onClick)();
                            }
                            return TRUE;
                        }
            } else if (HIWORD(wParam)==CBN_SELCHANGE) {
                if (bindsCombobox)
                    for (int i=0; bindsCombobox[i].idc; i++)
                        if (bindsCombobox[i].idc==LOWORD(wParam)) {
                            switch (bindsCombobox[i].mode) {
                                case BINDCBX_DATA:
                                    cfgSet(bindsCombobox[i].idff,(int)cbxGetCurItemData(bindsCombobox[i].idc));
                                    break;
                                case BINDCBX_SEL:
                                    cfgSet(bindsCombobox[i].idff,cbxGetCurSel(bindsCombobox[i].idc));
                                    break;
                                case BINDCBX_TEXT:
                                    cfgSet(bindsCombobox[i].idff,cbxGetCurText(bindsCombobox[i].idc));
                                    break;
                                case BINDCBX_DATATEXT:
                                    cfgSet(bindsCombobox[i].idff,(const char_t*)cbxGetCurItemData(bindsCombobox[i].idc));
                                    break;
                            }
                            if (bindsCombobox[i].onClick) {
                                (this->*bindsCombobox[i].onClick)();
                            }
                            return TRUE;
                        }
            }
            break;
        }
        case WM_CTLCOLOREDIT:
            if (bindsEditInt)
                if (onCtlColorEdit(bindsEditInt,lParam,wParam)) {
                    return INT_PTR(getRed());
                }
            if (bindsEditReal)
                if (onCtlColorEdit(bindsEditReal,lParam,wParam)) {
                    return INT_PTR(getRed());
                }
            break;
    }
    return defMsgProc(uMsg,wParam,lParam);
}