diff options
Diffstat (limited to 'media/tools/player_wtl/props.h')
-rw-r--r-- | media/tools/player_wtl/props.h | 325 |
1 files changed, 0 insertions, 325 deletions
diff --git a/media/tools/player_wtl/props.h b/media/tools/player_wtl/props.h deleted file mode 100644 index d2b7dbb..0000000 --- a/media/tools/player_wtl/props.h +++ /dev/null @@ -1,325 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this -// source code is governed by a BSD-style license that can be found in the -// LICENSE file. - -#ifndef MEDIA_TOOLS_PLAYER_WTL_PROPS_H_ -#define MEDIA_TOOLS_PLAYER_WTL_PROPS_H_ - -#include "media/tools/player_wtl/movie.h" - -#include "resource.h" - -// Movie properties dialog -class CFileName : public CWindowImpl<CFileName> { - public: - - CFileName() : file_name_(NULL) { - } - - void Init(HWND hwnd, wchar_t* str_name) { - ATLASSERT(::IsWindow(hwnd)); - SubclassWindow(hwnd); - - // Set tooltip. - tooltip_.Create(m_hWnd); - ATLASSERT(tooltip_.IsWindow()); - RECT rect; - GetClientRect(&rect); - CToolInfo ti(0, m_hWnd, tooltip_id_, &rect, NULL); - tooltip_.AddTool(&ti); - - // Set text. - file_name_ = str_name; - if (file_name_ == NULL) - return; - - CClientDC dc(m_hWnd); // will not really paint - HFONT old_font = dc.SelectFont(AtlGetDefaultGuiFont()); - - RECT rect_text = rect; - dc.DrawText(file_name_, -1, &rect_text, - DT_SINGLELINE | DT_LEFT | DT_VCENTER | DT_NOPREFIX | - DT_CALCRECT); - BOOL is_too_long = (rect_text.right > rect.right); - if (is_too_long) - tooltip_.UpdateTipText(file_name_, m_hWnd, tooltip_id_); - tooltip_.Activate(is_too_long); - - dc.SelectFont(old_font); - - Invalidate(); - UpdateWindow(); - } - - BEGIN_MSG_MAP(CFileName) - MESSAGE_RANGE_HANDLER(WM_MOUSEFIRST, WM_MOUSELAST, OnMouseMessage) - MESSAGE_HANDLER(WM_PAINT, OnPaint) - END_MSG_MAP() - - LRESULT OnMouseMessage(UINT message, WPARAM wparam, LPARAM lparam, - BOOL& handled) { - if (tooltip_.IsWindow()) { - MSG msg = { m_hWnd, message, wparam, lparam }; - tooltip_.RelayEvent(&msg); - } - handled = FALSE; - return 1; - } - - LRESULT OnPaint(UINT /*message*/, WPARAM /*wparam*/, LPARAM /*lparam*/, - BOOL& /*handled*/) { - CPaintDC dc(m_hWnd); - if (file_name_ != NULL) { - RECT rect; - GetClientRect(&rect); - - dc.SetTextColor(::GetSysColor(COLOR_WINDOWTEXT)); - dc.SetBkMode(TRANSPARENT); - HFONT old_font = dc.SelectFont(AtlGetDefaultGuiFont()); - - dc.DrawText(file_name_, -1, &rect, DT_SINGLELINE | DT_LEFT | - DT_VCENTER | DT_NOPREFIX | DT_PATH_ELLIPSIS); - - dc.SelectFont(old_font); - } - return 0; - } - - DECLARE_WND_CLASS_EX(NULL, 0, COLOR_3DFACE) - - wchar_t* file_name_; - - enum { tooltip_id_ = 1313 }; - CToolTipCtrl tooltip_; -}; - -// Movie properties. -// TODO(fbarchard): Add movie duration in seconds. -class CPageOne : public CPropertyPageImpl<CPageOne> { - public: - enum { IDD = IDD_PROP_PAGE1 }; - - CPageOne() : file_name_(NULL) { - } - - BEGIN_MSG_MAP(CPageOne) - MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) - CHAIN_MSG_MAP(CPropertyPageImpl<CPageOne>) - END_MSG_MAP() - - LRESULT OnInitDialog(UINT /*message*/, WPARAM /*wparam*/, LPARAM /*lparam*/, - BOOL& /*handled*/) { - if (file_name_ != NULL) { - file_location_.Init(GetDlgItem(IDC_FILELOCATION), file_name_); - - WIN32_FIND_DATA find_data; - HANDLE find_handle = ::FindFirstFile(file_name_, &find_data); - if (find_handle != INVALID_HANDLE_VALUE) { - // TODO(fbarchard): Support files larger than 2 GB - int size_k = (find_data.nFileSizeLow / 1024); - if (size_k == 0 && find_data.nFileSizeLow != 0) - size_k = 1; - wchar_t szBuff[100]; - wsprintf(szBuff, L"%i KB", size_k); - SetDlgItemText(IDC_FILESIZE, szBuff); - - // TODO(fbarchard): We need a pipeline property for frame rate. - float duration = media::Movie::GetInstance()->GetDuration(); - float fps = 29.97f; - wsprintf(szBuff, L"%i.%2i Seconds, %i Frames", - static_cast<int>(duration), - static_cast<int>(duration * 100) % 100, - static_cast<int>(duration * fps)); - SetDlgItemText(IDC_FILEDURATION, szBuff); - - SYSTEMTIME st; - ::FileTimeToSystemTime(&find_data.ftCreationTime, &st); - ::GetDateFormat(LOCALE_USER_DEFAULT, 0, &st, - L"dddd, MMMM dd',' yyyy',' ", - szBuff, sizeof(szBuff) / sizeof(szBuff[0])); - wchar_t szBuff1[50]; - ::GetTimeFormat(LOCALE_USER_DEFAULT, 0, &st, - L"hh':'mm':'ss tt", szBuff1, - sizeof(szBuff1) / sizeof(szBuff1[0])); - lstrcat(szBuff, szBuff1); - SetDlgItemText(IDC_FILEDATE, szBuff); - - szBuff[0] = 0; - if ((find_data.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) != 0) - lstrcat(szBuff, L"Archive, "); - if ((find_data.dwFileAttributes & FILE_ATTRIBUTE_READONLY) != 0) - lstrcat(szBuff, L"Read-only, "); - if ((find_data.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) != 0) - lstrcat(szBuff, L"Hidden, "); - if ((find_data.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) != 0) - lstrcat(szBuff, L"System"); - int length = lstrlen(szBuff); - if (length >= 2 && szBuff[length - 2] == L',') - szBuff[length - 2] = 0; - SetDlgItemText(IDC_FILEATTRIB, szBuff); - - ::FindClose(find_handle); - } - } else { - SetDlgItemText(IDC_FILELOCATION, L"(Clipboard)"); - SetDlgItemText(IDC_FILESIZE, L"N/A"); - SetDlgItemText(IDC_FILEDATE, L"N/A"); - SetDlgItemText(IDC_FILEATTRIB, L"N/A"); - } - return TRUE; - } - - CFileName file_location_; - wchar_t* file_name_; -}; - -// Frame properties. -// TODO(fbarchard): This is not implemented for movies yet. -class CPageTwo : public CPropertyPageImpl<CPageTwo> { - public: - enum { IDD = IDD_PROP_PAGE2 }; - - CPageTwo() : file_name_(NULL) { - } - - BEGIN_MSG_MAP(CPageTwo) - MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) - CHAIN_MSG_MAP(CPropertyPageImpl<CPageTwo>) - END_MSG_MAP() - - LRESULT OnInitDialog(UINT /*message*/, WPARAM /*wparam*/, LPARAM /*lparam*/, - BOOL& /*handled*/) { - // Special - remove unused buttons, move Close button, center wizard - CPropertySheetWindow sheet = GetPropertySheet(); -#if !defined(_AYGSHELL_H_) && !defined(__AYGSHELL_H__) // PPC specific. - sheet.CancelToClose(); - RECT rect; - CButton btn_cancel = sheet.GetDlgItem(IDCANCEL); - btn_cancel.GetWindowRect(&rect); - sheet.ScreenToClient(&rect); - btn_cancel.ShowWindow(SW_HIDE); - CButton btn_close = sheet.GetDlgItem(IDOK); - btn_close.SetWindowPos(NULL, &rect, SWP_NOZORDER | SWP_NOSIZE); - sheet.CenterWindow(GetPropertySheet().GetParent()); - - sheet.ModifyStyleEx(WS_EX_CONTEXTHELP, 0); -#endif // (_AYGSHELL_H_) || defined(__AYGSHELL_H__) // PPC specific. - - // Get and display movie prperties. - SetDlgItemText(IDC_TYPE, L"MP4 Movie"); - wchar_t* compression_text = L"H.264"; - - if (file_name_ != NULL) { - HANDLE file_handle = ::CreateFile(file_name_, GENERIC_READ, - FILE_SHARE_READ, NULL, OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL | - FILE_FLAG_SEQUENTIAL_SCAN, NULL); - ATLASSERT(file_handle != INVALID_HANDLE_VALUE); - if (file_handle != INVALID_HANDLE_VALUE) { - DWORD dwRead = 0; - BITMAPFILEHEADER bfh; - ::ReadFile(file_handle, &bfh, sizeof(bfh), &dwRead, NULL); - BITMAPINFOHEADER bih; - ::ReadFile(file_handle, &bih, sizeof(bih), &dwRead, NULL); - ::CloseHandle(file_handle); - - SetDlgItemInt(IDC_WIDTH, bih.biWidth); - SetDlgItemInt(IDC_HEIGHT, bih.biHeight); - SetDlgItemInt(IDC_HORRES, ::MulDiv(bih.biXPelsPerMeter, 254, 10000)); - SetDlgItemInt(IDC_VERTRES, ::MulDiv(bih.biYPelsPerMeter, 254, 10000)); - SetDlgItemInt(IDC_BITDEPTH, bih.biBitCount); - - switch (bih.biCompression) { - case BI_RLE4: - case BI_RLE8: - compression_text = L"RLE"; - break; - case BI_BITFIELDS: - compression_text = L"Uncompressed with bitfields"; - break; - case BI_JPEG: - case BI_PNG: - compression_text = L"Unknown"; - break; - } - SetDlgItemText(IDC_COMPRESSION, compression_text); - } - } else { // Must be pasted from the clipboard. - ATLASSERT(!bmp_.IsNull()); - BITMAP bitmap = { 0 }; - bool result = bmp_.GetBitmap(bitmap); - ATLASSERT(result); - if (result) { - CClientDC dc(NULL); - SetDlgItemInt(IDC_WIDTH, bitmap.bmWidth); - SetDlgItemInt(IDC_HEIGHT, bitmap.bmHeight); - // Should we use screen resolution here??? - SetDlgItemInt(IDC_HORRES, dc.GetDeviceCaps(LOGPIXELSX)); - SetDlgItemInt(IDC_VERTRES, dc.GetDeviceCaps(LOGPIXELSX)); - SetDlgItemInt(IDC_BITDEPTH, bitmap.bmBitsPixel); - SetDlgItemText(IDC_COMPRESSION, compression_text); - } - } - return TRUE; - } - - CBitmapHandle bmp_; - wchar_t* file_name_; -}; - -// Screen properties. -class CPageThree : public CPropertyPageImpl<CPageThree> { - public: - enum { IDD = IDD_PROP_PAGE3 }; - - BEGIN_MSG_MAP(CPageThree) - MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) - CHAIN_MSG_MAP(CPropertyPageImpl<CPageThree>) - END_MSG_MAP() - - LRESULT OnInitDialog(UINT /*message*/, WPARAM /*wparam*/, LPARAM /*lparam*/, - BOOL& /*handled*/) { - // Get and set screen properties. - CClientDC dc(NULL); - SetDlgItemInt(IDC_WIDTH, dc.GetDeviceCaps(HORZRES)); - SetDlgItemInt(IDC_HEIGHT, dc.GetDeviceCaps(VERTRES)); - SetDlgItemInt(IDC_HORRES, dc.GetDeviceCaps(LOGPIXELSX)); - SetDlgItemInt(IDC_VERTRES, dc.GetDeviceCaps(LOGPIXELSY)); - SetDlgItemInt(IDC_BITDEPTH, dc.GetDeviceCaps(BITSPIXEL)); - - return TRUE; - } -}; - -// TODO(fbachard): Frame properties only work for images, so -// this tab is removed until movie frame properties can be -// added. -class CBmpProperties : public CPropertySheetImpl<CBmpProperties> { - public: - - CBmpProperties() { - m_psh.dwFlags |= PSH_NOAPPLYNOW; - - AddPage(page1_); - // AddPage(page2_); // Not implemented for movies yet. - AddPage(page3_); - SetActivePage(0); - SetTitle(L"Movie Properties"); - } - - void SetFileInfo(wchar_t* file_path, HBITMAP bitmap) { - page1_.file_name_ = file_path; - page2_.file_name_ = file_path; - page2_.bmp_ = bitmap; - } - - BEGIN_MSG_MAP(CBmpProperties) - CHAIN_MSG_MAP(CPropertySheetImpl<CBmpProperties>) - END_MSG_MAP() - - CPageOne page1_; - CPageTwo page2_; - CPageThree page3_; -}; - -#endif // MEDIA_TOOLS_PLAYER_WTL_PROPS_H_ |