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

多媒体编程

开发平台:

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. // PPagePlayer.cpp : implementation file
  22. //
  23. #include "stdafx.h"
  24. #include "mplayerc.h"
  25. #include "MainFrm.h"
  26. #include "PPagePlayer.h"
  27. // CPPagePlayer dialog
  28. IMPLEMENT_DYNAMIC(CPPagePlayer, CPPageBase)
  29. CPPagePlayer::CPPagePlayer()
  30. : CPPageBase(CPPagePlayer::IDD, CPPagePlayer::IDD)
  31. , m_iAllowMultipleInst(0)
  32. , m_iAlwaysOnTop(FALSE)
  33. , m_fTrayIcon(FALSE)
  34. , m_iShowBarsWhenFullScreen(FALSE)
  35. , m_nShowBarsWhenFullScreenTimeOut(0)
  36. , m_iTitleBarTextStyle(0)
  37. , m_fExitFullScreenAtTheEnd(FALSE)
  38. , m_fRememberWindowPos(FALSE)
  39. , m_fRememberWindowSize(FALSE)
  40. , m_fUseIni(FALSE)
  41. , m_fKeepHistory(FALSE)
  42. , m_fHideCDROMsSubMenu(FALSE)
  43. , m_priority(FALSE)
  44. , m_launchfullscreen(FALSE)
  45. {
  46. }
  47. CPPagePlayer::~CPPagePlayer()
  48. {
  49. }
  50. void CPPagePlayer::DoDataExchange(CDataExchange* pDX)
  51. {
  52. __super::DoDataExchange(pDX);
  53. DDX_Radio(pDX, IDC_RADIO1, m_iAllowMultipleInst);
  54. DDX_Radio(pDX, IDC_RADIO3, m_iTitleBarTextStyle);
  55. DDX_Check(pDX, IDC_CHECK2, m_iAlwaysOnTop);
  56. DDX_Check(pDX, IDC_CHECK3, m_fTrayIcon);
  57. DDX_Check(pDX, IDC_CHECK4, m_iShowBarsWhenFullScreen);
  58. DDX_Text(pDX, IDC_EDIT1, m_nShowBarsWhenFullScreenTimeOut);
  59. DDX_Check(pDX, IDC_CHECK5, m_fExitFullScreenAtTheEnd);
  60. DDX_Check(pDX, IDC_CHECK6, m_fRememberWindowPos);
  61. DDX_Check(pDX, IDC_CHECK7, m_fRememberWindowSize);
  62. DDX_Check(pDX, IDC_CHECK8, m_fUseIni);
  63. DDX_Control(pDX, IDC_SPIN1, m_nTimeOutCtrl);
  64. DDX_Check(pDX, IDC_CHECK1, m_fKeepHistory);
  65. DDX_Check(pDX, IDC_CHECK10, m_fHideCDROMsSubMenu);
  66. DDX_Check(pDX, IDC_CHECK9, m_priority);
  67. DDX_Check(pDX, IDC_CHECK11, m_launchfullscreen);
  68. }
  69. BEGIN_MESSAGE_MAP(CPPagePlayer, CPPageBase)
  70. ON_BN_CLICKED(IDC_CHECK8, OnBnClickedCheck8)
  71. ON_UPDATE_COMMAND_UI(IDC_SPIN1, OnUpdateTimeout)
  72. ON_UPDATE_COMMAND_UI(IDC_EDIT1, OnUpdateTimeout)
  73. ON_UPDATE_COMMAND_UI(IDC_STATIC1, OnUpdateTimeout)
  74. ON_UPDATE_COMMAND_UI(IDC_STATIC2, OnUpdateTimeout)
  75. END_MESSAGE_MAP()
  76. // CPPagePlayer message handlers
  77. BOOL CPPagePlayer::OnInitDialog()
  78. {
  79. __super::OnInitDialog();
  80. AppSettings& s = AfxGetAppSettings();
  81. m_iAllowMultipleInst = s.fAllowMultipleInst;
  82. m_iTitleBarTextStyle = s.iTitleBarTextStyle;
  83. m_iAlwaysOnTop = s.iOnTop;
  84. m_fTrayIcon = s.fTrayIcon;
  85. m_iShowBarsWhenFullScreen = s.fShowBarsWhenFullScreen;
  86. m_nShowBarsWhenFullScreenTimeOut = s.nShowBarsWhenFullScreenTimeOut;
  87. m_nTimeOutCtrl.SetRange(-1, 10);
  88. m_fExitFullScreenAtTheEnd = s.fExitFullScreenAtTheEnd;
  89. m_fRememberWindowPos = s.fRememberWindowPos;
  90. m_fRememberWindowSize = s.fRememberWindowSize;
  91. m_fUseIni = ((CMPlayerCApp*)AfxGetApp())->IsIniValid();
  92. m_fKeepHistory = s.fKeepHistory;
  93. m_fHideCDROMsSubMenu = s.fHideCDROMsSubMenu;
  94. m_priority = s.priority != NORMAL_PRIORITY_CLASS;
  95. m_launchfullscreen = s.launchfullscreen;
  96. UpdateData(FALSE);
  97. return TRUE;  // return TRUE unless you set the focus to a control
  98. // EXCEPTION: OCX Property Pages should return FALSE
  99. }
  100. BOOL CPPagePlayer::OnApply()
  101. {
  102. UpdateData();
  103. AppSettings& s = AfxGetAppSettings();
  104. s.fAllowMultipleInst = !!m_iAllowMultipleInst;
  105. s.iTitleBarTextStyle = m_iTitleBarTextStyle;
  106. s.iOnTop = m_iAlwaysOnTop;
  107. s.fTrayIcon = !!m_fTrayIcon;
  108. s.fShowBarsWhenFullScreen = !!m_iShowBarsWhenFullScreen;
  109. s.nShowBarsWhenFullScreenTimeOut = m_nShowBarsWhenFullScreenTimeOut;
  110. s.fExitFullScreenAtTheEnd = !!m_fExitFullScreenAtTheEnd;
  111. s.fRememberWindowPos = !!m_fRememberWindowPos;
  112. s.fRememberWindowSize = !!m_fRememberWindowSize;
  113. s.fKeepHistory = !!m_fKeepHistory;
  114. s.fHideCDROMsSubMenu = !!m_fHideCDROMsSubMenu;
  115. s.priority = !m_priority ? NORMAL_PRIORITY_CLASS : GetVersion() < 0 ? HIGH_PRIORITY_CLASS : ABOVE_NORMAL_PRIORITY_CLASS;
  116. s.launchfullscreen = !!m_launchfullscreen;
  117. if(!m_fKeepHistory)
  118. {
  119. for(int i = 0; i < s.MRU.GetSize(); i++) s.MRU.Remove(i);
  120. for(int i = 0; i < s.MRUDub.GetSize(); i++) s.MRUDub.Remove(i);
  121. s.MRU.WriteList();
  122. s.MRUDub.WriteList();
  123. }
  124. ((CMainFrame*)AfxGetMainWnd())->ShowTrayIcon(s.fTrayIcon);
  125. ::SetPriorityClass(::GetCurrentProcess(), s.priority);
  126. return __super::OnApply();
  127. }
  128. void CPPagePlayer::OnBnClickedCheck8()
  129. {
  130. UpdateData();
  131. if(m_fUseIni) ((CMPlayerCApp*)AfxGetApp())->StoreSettingsToIni();
  132. else ((CMPlayerCApp*)AfxGetApp())->StoreSettingsToRegistry();
  133. }
  134. void CPPagePlayer::OnUpdateTimeout(CCmdUI* pCmdUI)
  135. {
  136. UpdateData();
  137. pCmdUI->Enable(m_iShowBarsWhenFullScreen);
  138. }