⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.cpp

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	m_dumbWnd.ShowWindow(SW_SHOW);	if (m_view_timing)		SetTimer(PROGRESS_TIMER, PROGRESS_REFRESH_MS, ProgressTimer);	if (!app->m_scene_width || !app->m_scene_height) {		m_wndView.SetWindowPos(this, 0, y, disp_w, disp_h, SWP_SHOWWINDOW);		gf_term_set_size(app->m_term, disp_w, disp_h);		return;	}	if (!app->m_fit_screen && (app->m_scene_width < disp_w) && (app->m_scene_height < disp_h)) {		c_w = app->m_scene_width;		c_h = app->m_scene_height;		x = (disp_w - c_w) / 2;		y = (disp_h - c_h) / 2;	} else {		c_w = disp_w;		c_h = disp_h;	}	m_wndView.SetWindowPos(this, x, y, c_w, c_h, SWP_SHOWWINDOW | SWP_NOZORDER);	gf_term_set_size(app->m_term, c_w, c_h);}void CMainFrame::OnViewFullscreen() {	COsmo4 *app = GetApp();	if (!app->m_open) return;	u32 disp_w = app->m_screen_width;	u32 disp_h = app->m_screen_height;		Bool is_full_screen = !m_full_screen;	/*prevent resize messages*/	m_full_screen = 1;	HWND hWnd = GetSafeHwnd();	::SetForegroundWindow(hWnd);	::CommandBar_Show(m_wndCommandBar.GetSafeHwnd(), is_full_screen ? FALSE : TRUE);	SHFullScreen(hWnd, SHFS_HIDESTARTICON | SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON);	if (is_full_screen) {		m_dumbWnd.ShowWindow(SW_HIDE);		::MoveWindow(m_hWnd, 0, 0, disp_w, disp_h, 0);		m_wndView.GetWindowRect(&m_view_rc);		m_wndView.SetWindowPos(this, 0, 0, disp_w, disp_h, SWP_NOZORDER);		gf_term_set_option(app->m_term, GF_OPT_FULLSCREEN, is_full_screen);		m_full_screen = 1;	} else {		gf_term_set_option(app->m_term, GF_OPT_FULLSCREEN, is_full_screen);		m_full_screen = 0;		OnSetSize(0,0);		m_dumbWnd.ShowWindow(SW_SHOW);		gf_term_set_option(app->m_term, GF_OPT_REFRESH, 0);	}}void CMainFrame::OnUpdateViewFullscreen(CCmdUI* pCmdUI) {	pCmdUI->Enable(GetApp()->m_open ? TRUE : FALSE);}LONG CMainFrame::OnSetSize(WPARAM wParam, LPARAM lParam){	RECT rc;	if (m_full_screen) return 0;	GetWindowRect(&rc);	SetWindowPos(NULL, 0, 0, rc.right-rc.left, rc.bottom-rc.top, SWP_NOZORDER | SWP_NOMOVE);	return 1;	}LONG CMainFrame::Open(WPARAM wParam, LPARAM lParam){	COsmo4 *app = GetApp();	CloseURL();	char filename[5000];	CE_WideToChar((LPTSTR) (LPCTSTR) app->m_filename, filename);	app->m_stoped = 0;		if (app->m_reconnect_time) {		gf_term_connect_from_time(app->m_term, filename, app->m_reconnect_time, 0);		app->m_reconnect_time = 0;	} else {		gf_term_connect(app->m_term, filename);	}	app->SetBacklightState(1);	return 1;	}LONG CMainFrame::OnNavigate(WPARAM /*wParam*/, LPARAM /*lParam*/){	COsmo4 *app = GetApp();	char to_url[MAX_PATH];	CE_WideToChar((LPTSTR) (LPCTSTR) app->m_navigate_url, to_url);	if (gf_term_is_supported_url(app->m_term, to_url, 1, app->m_no_mime_fetch)) {		char fileName[MAX_PATH];		TCHAR w_to_url[MAX_PATH];		CE_WideToChar((LPTSTR) (LPCTSTR) app->m_filename, fileName);		char *str = gf_url_concatenate(fileName, to_url);		if (!str) str = strdup(to_url);		CE_CharToWide(str, w_to_url);		free(str);		app->m_filename = w_to_url;		Open(0, 0);	} else {		SHELLEXECUTEINFO info;		console_message = app->m_navigate_url;		console_err = GF_OK;		PostMessage(WM_CONSOLEMSG);				if (m_full_screen) {			OnViewFullscreen();			app->ShowTaskBar(1);			m_restore_fs = 1;		}			memset(&info, 0, sizeof(SHELLEXECUTEINFO));		info.cbSize = sizeof(SHELLEXECUTEINFO);		info.lpVerb = L"open";		info.fMask = SEE_MASK_NOCLOSEPROCESS;		info.lpFile = L"iexplore";		info.lpParameters = (LPCTSTR) app->m_navigate_url;		info.nShow = SW_SHOWNORMAL;		ShellExecuteEx(&info);	}	return 1;	}void CMainFrame::OnFilePause(){	COsmo4 *app = GetApp();	if (app->m_stoped) {		char filename[5000];		CE_WideToChar((LPTSTR) (LPCTSTR) app->m_filename, filename);		app->m_stoped = 0;		gf_term_connect(app->m_term, filename);		app->SetBacklightState(1);		if (m_view_timing)			SetTimer(PROGRESS_TIMER, PROGRESS_REFRESH_MS, ProgressTimer);		SetPauseButton();	} else {		app->Pause();	}}void CMainFrame::OnUpdateFilePause(CCmdUI* pCmdUI){	COsmo4 *app = GetApp();	pCmdUI->Enable((app->m_open || app->m_stoped) ? TRUE : FALSE);}void CMainFrame::OnFileStop(){	COsmo4 *app = GetApp();	if (!app->m_open) return;	if (m_full_screen) OnViewFullscreen();	app->m_stoped = 1;	if (m_view_timing) KillTimer(PROGRESS_TIMER);	gf_term_disconnect(app->m_term);	m_progBar.SetPosition(0);	app->SetBacklightState(0);	SetPauseButton();}void CMainFrame::OnUpdateFileStop(CCmdUI* pCmdUI){	pCmdUI->Enable( GetApp()->m_open  ? TRUE : FALSE);}void CMainFrame::OnFileStep(){	COsmo4 *app = GetApp();	gf_term_set_option(app->m_term, GF_OPT_PLAY_STATE, GF_STATE_STEP_PAUSE);	app->SetBacklightState(0);	SetPauseButton(1);}void CMainFrame::OnUpdateFileStep(CCmdUI* pCmdUI){	pCmdUI->Enable(GetApp()->m_open ? TRUE : FALSE);}void CMainFrame::OnClose() {	PostMessage(WM_DESTROY);}LONG CMainFrame::OnSIPChange(WPARAM wParam, LPARAM lParam){	if (wParam == SPI_SETSIPINFO) GetApp()->ShowTaskBar(0);	return 1;}void CMainFrame::OnViewFit() {	COsmo4 *app = GetApp();	app->m_fit_screen = !app->m_fit_screen;	if (app->m_open) OnSetSize(0, 0);}void CMainFrame::OnUpdateViewFit(CCmdUI* pCmdUI) {	pCmdUI->SetCheck(GetApp()->m_fit_screen ? TRUE : FALSE);}void CMainFrame::OnViewArOrig() {	gf_term_set_option(GetApp()->m_term, GF_OPT_ASPECT_RATIO, GF_ASPECT_RATIO_KEEP);	}void CMainFrame::OnViewArFill() {	gf_term_set_option(GetApp()->m_term, GF_OPT_ASPECT_RATIO, GF_ASPECT_RATIO_FILL_SCREEN);	}void CMainFrame::OnViewAr43() {	gf_term_set_option(GetApp()->m_term, GF_OPT_ASPECT_RATIO, GF_ASPECT_RATIO_4_3);	}void CMainFrame::OnViewAr169() {	gf_term_set_option(GetApp()->m_term, GF_OPT_ASPECT_RATIO, GF_ASPECT_RATIO_16_9);	}void CMainFrame::OnNavNone() {	gf_term_set_option(GetApp()->m_term, GF_OPT_NAVIGATION, GF_NAVIGATE_NONE);}void CMainFrame::OnNavSlide() {	gf_term_set_option(GetApp()->m_term, GF_OPT_NAVIGATION, GF_NAVIGATE_SLIDE);}void CMainFrame::OnNaveReset() {	gf_term_set_option(GetApp()->m_term, GF_OPT_NAVIGATION_TYPE, 0);}void CMainFrame::ForwardMessage(){	const MSG *msg = GetCurrentMessage();	m_wndView.SendMessage(msg->message, msg->wParam, msg->lParam);}void CMainFrame::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags){	ForwardMessage(); }void CMainFrame::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags){	ForwardMessage(); }void CMainFrame::OnViewTiming() {	if (m_full_screen) return;	if (m_view_timing) KillTimer(PROGRESS_TIMER);	m_view_timing = !m_view_timing;	OnSetSize(0, 0);}void CMainFrame::OnUpdateViewTiming(CCmdUI* pCmdUI) {	pCmdUI->SetCheck(m_view_timing ? TRUE : FALSE);}void CMainFrame::OnSetNavigation(UINT nID) {	gf_term_set_option(GetApp()->m_term, GF_OPT_NAVIGATION, nID - ID_NAV_NONE);}void CMainFrame::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu) {	COsmo4 *app = GetApp();	CFrameWnd::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);	u32 opt = gf_term_get_option(GetApp()->m_term, GF_OPT_ASPECT_RATIO);		CheckMenuItem(pPopupMenu->m_hMenu, ID_VIEW_AR_ORIG, MF_BYCOMMAND| (opt==GF_ASPECT_RATIO_KEEP) ? MF_CHECKED : MF_UNCHECKED);	CheckMenuItem(pPopupMenu->m_hMenu, ID_VIEW_AR_FILL, MF_BYCOMMAND| (opt==GF_ASPECT_RATIO_FILL_SCREEN) ? MF_CHECKED : MF_UNCHECKED);	CheckMenuItem(pPopupMenu->m_hMenu, ID_VIEW_AR_43, MF_BYCOMMAND| (opt==GF_ASPECT_RATIO_4_3) ? MF_CHECKED : MF_UNCHECKED);	CheckMenuItem(pPopupMenu->m_hMenu, ID_VIEW_AR_169, MF_BYCOMMAND| (opt==GF_ASPECT_RATIO_16_9) ? MF_CHECKED : MF_UNCHECKED);		CheckMenuItem(pPopupMenu->m_hMenu, ID_VIEW_FIT, MF_BYCOMMAND| app->m_fit_screen ? MF_CHECKED : MF_UNCHECKED);	u32 type;	if (!app->m_open) type = GF_NAVIGATE_TYPE_NONE;	else type = gf_term_get_option(app->m_term, GF_OPT_NAVIGATION_TYPE);	EnableMenuItem(pPopupMenu->m_hMenu, ID_NAV_NONE, MF_BYCOMMAND | ((type==GF_NAVIGATE_TYPE_NONE) ? MF_GRAYED : MF_ENABLED) );	EnableMenuItem(pPopupMenu->m_hMenu, ID_NAV_SLIDE, MF_BYCOMMAND | ((type==GF_NAVIGATE_TYPE_NONE) ? MF_GRAYED : MF_ENABLED) );	EnableMenuItem(pPopupMenu->m_hMenu, ID_NAV_RESET, MF_BYCOMMAND | ((type==GF_NAVIGATE_TYPE_NONE) ? MF_GRAYED : MF_ENABLED) );	EnableMenuItem(pPopupMenu->m_hMenu, ID_NAV_WALK, MF_BYCOMMAND | ( (type!=GF_NAVIGATE_TYPE_3D) ? MF_GRAYED : MF_ENABLED) );	EnableMenuItem(pPopupMenu->m_hMenu, ID_NAV_FLY, MF_BYCOMMAND | ((type!=GF_NAVIGATE_TYPE_3D) ? MF_GRAYED : MF_ENABLED) );	EnableMenuItem(pPopupMenu->m_hMenu, ID_NAV_EXAMINE, MF_BYCOMMAND | ((type!=GF_NAVIGATE_TYPE_3D) ? MF_GRAYED : MF_ENABLED) );	EnableMenuItem(pPopupMenu->m_hMenu, ID_COLLIDE_OFF, MF_BYCOMMAND | ((type!=GF_NAVIGATE_TYPE_3D) ? MF_GRAYED : MF_ENABLED) );	EnableMenuItem(pPopupMenu->m_hMenu, ID_COLLIDE_REG, MF_BYCOMMAND | ((type!=GF_NAVIGATE_TYPE_3D) ? MF_GRAYED : MF_ENABLED) );	EnableMenuItem(pPopupMenu->m_hMenu, ID_COLLIDE_DISP, MF_BYCOMMAND | ((type!=GF_NAVIGATE_TYPE_3D) ? MF_GRAYED : MF_ENABLED) );	EnableMenuItem(pPopupMenu->m_hMenu, ID_NAV_GRAVITY, MF_BYCOMMAND | ((type!=GF_NAVIGATE_TYPE_3D) ? MF_GRAYED : MF_ENABLED) );	if (type==GF_NAVIGATE_TYPE_NONE) {		u32 mode = gf_term_get_option(app->m_term, GF_OPT_NAVIGATION);		CheckMenuItem(pPopupMenu->m_hMenu, ID_NAV_NONE, MF_BYCOMMAND | ( (mode==GF_NAVIGATE_NONE) ? MF_CHECKED : MF_UNCHECKED) );		CheckMenuItem(pPopupMenu->m_hMenu, ID_NAV_SLIDE, MF_BYCOMMAND | ( (mode==GF_NAVIGATE_SLIDE) ? MF_CHECKED : MF_UNCHECKED) );		CheckMenuItem(pPopupMenu->m_hMenu, ID_NAV_WALK, MF_BYCOMMAND | ( (mode==GF_NAVIGATE_WALK) ? MF_CHECKED : MF_UNCHECKED) );		CheckMenuItem(pPopupMenu->m_hMenu, ID_NAV_FLY, MF_BYCOMMAND | ((mode==GF_NAVIGATE_FLY) ? MF_CHECKED : MF_UNCHECKED) );		CheckMenuItem(pPopupMenu->m_hMenu, ID_NAV_EXAMINE, MF_BYCOMMAND | ((mode==GF_NAVIGATE_EXAMINE) ? MF_CHECKED : MF_UNCHECKED) );	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -