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