PPageSubtitles.cpp
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:4k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /* 
  2.  * Copyright (C) 2003-2005 Gabest
  3.  * http://www.gabest.org
  4.  *
  5.  *  This Program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2, or (at your option)
  8.  *  any later version.
  9.  *   
  10.  *  This Program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13.  *  GNU General Public License for more details.
  14.  *   
  15.  *  You should have received a copy of the GNU General Public License
  16.  *  along with GNU Make; see the file COPYING.  If not, write to
  17.  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
  18.  *  http://www.gnu.org/copyleft/gpl.html
  19.  *
  20.  */
  21. // PPageSubtitles.cpp : implementation file
  22. //
  23. #include "stdafx.h"
  24. #include "mplayerc.h"
  25. #include "MainFrm.h"
  26. #include "PPageSubtitles.h"
  27. // CPPageSubtitles dialog
  28. IMPLEMENT_DYNAMIC(CPPageSubtitles, CPPageBase)
  29. CPPageSubtitles::CPPageSubtitles()
  30. : CPPageBase(CPPageSubtitles::IDD, CPPageSubtitles::IDD)
  31. , m_fOverridePlacement(FALSE)
  32. , m_nHorPos(0)
  33. , m_nVerPos(0)
  34. , m_nSPCSize(0)
  35. , m_fSPCPow2Tex(FALSE)
  36. {
  37. }
  38. CPPageSubtitles::~CPPageSubtitles()
  39. {
  40. }
  41. void CPPageSubtitles::DoDataExchange(CDataExchange* pDX)
  42. {
  43. __super::DoDataExchange(pDX);
  44. DDX_Check(pDX, IDC_CHECK3, m_fOverridePlacement);
  45. DDX_Text(pDX, IDC_EDIT2, m_nHorPos);
  46. DDX_Control(pDX, IDC_SPIN2, m_nHorPosCtrl);
  47. DDX_Text(pDX, IDC_EDIT3, m_nVerPos);
  48. DDX_Control(pDX, IDC_SPIN3, m_nVerPosCtrl);
  49. DDX_Text(pDX, IDC_EDIT1, m_nSPCSize);
  50. DDX_Control(pDX, IDC_SPIN1, m_nSPCSizeCtrl);
  51. DDX_Control(pDX, IDC_COMBO1, m_spmaxres);
  52. DDX_Control(pDX, IDC_EDIT2, m_nHorPosEdit);
  53. DDX_Control(pDX, IDC_EDIT3, m_nVerPosEdit);
  54. DDX_Check(pDX, IDC_CHECK_SPCPOW2TEX, m_fSPCPow2Tex);
  55. }
  56. BEGIN_MESSAGE_MAP(CPPageSubtitles, CPPageBase)
  57. ON_UPDATE_COMMAND_UI(IDC_EDIT2, OnUpdatePosOverride)
  58. ON_UPDATE_COMMAND_UI(IDC_SPIN2, OnUpdatePosOverride)
  59. ON_UPDATE_COMMAND_UI(IDC_EDIT3, OnUpdatePosOverride)
  60. ON_UPDATE_COMMAND_UI(IDC_SPIN3, OnUpdatePosOverride)
  61. ON_UPDATE_COMMAND_UI(IDC_STATIC1, OnUpdatePosOverride)
  62. ON_UPDATE_COMMAND_UI(IDC_STATIC2, OnUpdatePosOverride)
  63. ON_UPDATE_COMMAND_UI(IDC_STATIC3, OnUpdatePosOverride)
  64. ON_UPDATE_COMMAND_UI(IDC_STATIC4, OnUpdatePosOverride)
  65. END_MESSAGE_MAP()
  66. // CPPageSubtitles message handlers
  67. BOOL CPPageSubtitles::OnInitDialog()
  68. {
  69. __super::OnInitDialog();
  70. AppSettings& s = AfxGetAppSettings();
  71. m_fOverridePlacement = s.fOverridePlacement;
  72. m_nHorPos = s.nHorPos;
  73. m_nHorPosCtrl.SetRange(-10,110);
  74. m_nVerPos = s.nVerPos;
  75. m_nVerPosCtrl.SetRange(110,-10);
  76. m_nSPCSize = s.nSPCSize;
  77. m_nSPCSizeCtrl.SetRange(0, 10);
  78. m_spmaxres.AddString(_T("Desktop"));
  79. m_spmaxres.AddString(_T("1024x768"));
  80. m_spmaxres.AddString(_T("800x600"));
  81. m_spmaxres.AddString(_T("640x480"));
  82. m_spmaxres.AddString(_T("512x384"));
  83. m_spmaxres.AddString(_T("384x288"));
  84. m_spmaxres.SetCurSel(s.nSPCMaxRes);
  85. m_fSPCPow2Tex = s.fSPCPow2Tex;
  86. UpdateData(FALSE);
  87. CreateToolTip();
  88. return TRUE;  // return TRUE unless you set the focus to a control
  89. // EXCEPTION: OCX Property Pages should return FALSE
  90. }
  91. BOOL CPPageSubtitles::OnApply()
  92. {
  93. UpdateData();
  94. AppSettings& s = AfxGetAppSettings();
  95. if(s.fOverridePlacement != !!m_fOverridePlacement
  96. || s.nHorPos != m_nHorPos
  97. || s.nVerPos != m_nVerPos
  98. || s.nSPCSize != m_nSPCSize
  99. || s.nSPCMaxRes != m_spmaxres.GetCurSel()
  100. || s.fSPCPow2Tex != !!m_fSPCPow2Tex)
  101. {
  102. s.fOverridePlacement = !!m_fOverridePlacement;
  103. s.nHorPos = m_nHorPos;
  104. s.nVerPos = m_nVerPos;
  105. s.nSPCSize = m_nSPCSize;
  106. s.nSPCMaxRes = m_spmaxres.GetCurSel();
  107. s.fSPCPow2Tex = !!m_fSPCPow2Tex;
  108. if(CMainFrame* pFrame = (CMainFrame*)GetParentFrame())
  109. pFrame->UpdateSubtitle(true);
  110. }
  111. return __super::OnApply();
  112. }
  113. void CPPageSubtitles::OnUpdatePosOverride(CCmdUI* pCmdUI)
  114. {
  115. UpdateData();
  116. pCmdUI->Enable(m_fOverridePlacement);
  117. }