Dmitry Timoshkov : msvfw32: Disable datarate,
keyframe and quality controls to not
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Feb 14 07:28:10 CST 2006
Module: wine
Branch: refs/heads/master
Commit: f1e120ba7ea514fbf8c916e7608f9f165fb84135
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=f1e120ba7ea514fbf8c916e7608f9f165fb84135
Author: Dmitry Timoshkov <dmitry at codeweavers.com>
Date: Tue Feb 14 11:36:19 2006 +0100
msvfw32: Disable datarate, keyframe and quality controls to not
confuse users by a not implemented functionality.
Add support for About codec control.
---
dlls/msvideo/msvideo_main.c | 55 ++++++++++++++++++++++++++++++++++------
dlls/msvideo/msvideo_private.h | 9 +++++++
2 files changed, 56 insertions(+), 8 deletions(-)
diff --git a/dlls/msvideo/msvideo_main.c b/dlls/msvideo/msvideo_main.c
index 1e1962a..647124d 100644
--- a/dlls/msvideo/msvideo_main.c
+++ b/dlls/msvideo/msvideo_main.c
@@ -772,17 +772,34 @@ static INT_PTR CALLBACK icm_choose_compr
WCHAR buf[128];
struct choose_compressor *choose_comp = (struct choose_compressor *)lparam;
+ SetWindowLongPtrW(hdlg, DWLP_USER, lparam);
+
+ /* FIXME */
+ choose_comp->flags &= ~(ICMF_CHOOSE_DATARATE | ICMF_CHOOSE_KEYFRAME);
+
if (choose_comp->title)
SetWindowTextA(hdlg, choose_comp->title);
if (!(choose_comp->flags & ICMF_CHOOSE_DATARATE))
- EnableWindow(GetDlgItem(hdlg, IDC_DATARATE), FALSE);
+ {
+ ShowWindow(GetDlgItem(hdlg, IDC_DATARATE_CHECKBOX), SW_HIDE);
+ ShowWindow(GetDlgItem(hdlg, IDC_DATARATE), SW_HIDE);
+ ShowWindow(GetDlgItem(hdlg, IDC_DATARATE_KB), SW_HIDE);
+ }
if (!(choose_comp->flags & ICMF_CHOOSE_KEYFRAME))
- EnableWindow(GetDlgItem(hdlg, IDC_KEYFRAME), FALSE);
+ {
+ ShowWindow(GetDlgItem(hdlg, IDC_KEYFRAME_CHECKBOX), SW_HIDE);
+ ShowWindow(GetDlgItem(hdlg, IDC_KEYFRAME), SW_HIDE);
+ ShowWindow(GetDlgItem(hdlg, IDC_KEYFRAME_FRAMES), SW_HIDE);
+ }
+
+ /* FIXME */
+ EnableWindow(GetDlgItem(hdlg, IDC_QUALITY_SCROLL), FALSE);
+ EnableWindow(GetDlgItem(hdlg, IDC_QUALITY_TXT), FALSE);
/*if (!(choose_comp->flags & ICMF_CHOOSE_PREVIEW))
- EnableWindow(GetDlgItem(hdlg, IDC_PREVIEW), FALSE);*/
+ ShowWindow(GetDlgItem(hdlg, IDC_PREVIEW), SW_HIDE);*/
LoadStringW(MSVFW32_hModule, IDS_FULLFRAMES, buf, 128);
SendDlgItemMessageW(hdlg, IDC_COMP_LIST, CB_ADDSTRING, 0, (LPARAM)buf);
@@ -809,24 +826,41 @@ static INT_PTR CALLBACK icm_choose_compr
{
INT cur_sel;
struct codec_info *ic;
- BOOL enable = FALSE;
+ BOOL can_configure = FALSE, can_about = FALSE;
+ struct choose_compressor *choose_comp;
- if (HIWORD(wparam) != CBN_SELCHANGE)
+ if (HIWORD(wparam) != CBN_SELCHANGE && HIWORD(wparam) != CBN_SETFOCUS)
break;
+ choose_comp = (struct choose_compressor *)GetWindowLongPtrW(hdlg, DWLP_USER);
+
cur_sel = SendMessageW((HWND)lparam, CB_GETCURSEL, 0, 0);
ic = (struct codec_info *)SendMessageW((HWND)lparam, CB_GETITEMDATA, cur_sel, 0);
if (ic && ic->hic)
{
if (ICQueryConfigure(ic->hic) == DRVCNF_OK)
- enable = TRUE;
+ can_configure = TRUE;
+ if (ICQueryAbout(ic->hic) == DRVCNF_OK)
+ can_about = TRUE;
}
- EnableWindow(GetDlgItem(hdlg, IDC_CONFIGURE), enable);
+ EnableWindow(GetDlgItem(hdlg, IDC_CONFIGURE), can_configure);
+ EnableWindow(GetDlgItem(hdlg, IDC_ABOUT), can_about);
+
+ if (choose_comp->flags & ICMF_CHOOSE_DATARATE)
+ {
+ /* FIXME */
+ }
+ if (choose_comp->flags & ICMF_CHOOSE_KEYFRAME)
+ {
+ /* FIXME */
+ }
+
break;
}
case IDC_CONFIGURE:
+ case IDC_ABOUT:
{
HWND list = GetDlgItem(hdlg, IDC_COMP_LIST);
INT cur_sel;
@@ -839,7 +873,12 @@ static INT_PTR CALLBACK icm_choose_compr
ic = (struct codec_info *)SendMessageW(list, CB_GETITEMDATA, cur_sel, 0);
if (ic && ic->hic)
- ICConfigure(ic->hic, hdlg);
+ {
+ if (LOWORD(wparam) == IDC_CONFIGURE)
+ ICConfigure(ic->hic, hdlg);
+ else
+ ICAbout(ic->hic, hdlg);
+ }
break;
}
diff --git a/dlls/msvideo/msvideo_private.h b/dlls/msvideo/msvideo_private.h
index 6631ef8..264bd27 100644
--- a/dlls/msvideo/msvideo_private.h
+++ b/dlls/msvideo/msvideo_private.h
@@ -58,7 +58,16 @@ extern LRESULT (CALLBACK *pFnCallTo16)(
#define HIC_16(h32) (LOWORD(h32))
#define IDC_CONFIGURE 882
+#define IDC_ABOUT 883
+
+#define IDC_QUALITY_SCROLL 884
+#define IDC_QUALITY_TXT 886
+
+#define IDC_KEYFRAME_CHECKBOX 887
#define IDC_KEYFRAME 888
+#define IDC_KEYFRAME_FRAMES 889
+#define IDC_DATARATE_CHECKBOX 894
#define IDC_DATARATE 895
+#define IDC_DATARATE_KB 896
#endif /* __WINE_MSVIDEO_PRIVATE_H */
More information about the wine-cvs
mailing list