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

📄 frame.h

📁 Powerful and Portable GPS application -- support Linux, Windows, Windows CE GPS navigation and Map m
💻 H
字号:
/* *  Roadnav *  Frame.h * *  Copyright (c) 2004 - 2007 Richard L. Lynch <rllynch@users.sourceforge.net> * *  This program is free software; you can redistribute it and/or *  modify it under the terms of version 2 of the GNU General Public License *  as published by the Free Software Foundation. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA *////////////////////////////////////////////////////////////////////////////////// \file////// Contains the frame class for the application, and the associated/// event handlers./////////////////////////////////////////////////////////////////////////////////#ifndef FRAME_H#define FRAME_H#include <wx/minifram.h>#include <wx/datetime.h>#include "wxSkinnableFrame.h"#include "libroadnav/MapControl.h"#include "GPSMonitorThread.h"#include "GPSFrame.h"#include "WhatsNearByFrame.h"#include "libroadnav/DownloadThread.h"#include "DirectionsFrame.h"#include "MapEventExtender.h"#include "libroadnav/MapAppearanceSettings.h"#include "ThemeManager.h"#include "SolarTimer.h"#include "libroadnav/MapControlData_Tiles.h"#include "Scripting.h"#include "TTS.h"//////////////////////////////////////////////////////////////////////////////////// \brief Main frame of Roadnav/////////////////////////////////////////////////////////////////////////////////class MapFrame : public wxSkinnableFrame{	public:		//////////////////////////////////////////////////////////////////////////////		/// @name Construction/destruction		//////////////////////////////////////////////////////////////////////////////		/// @{		MapFrame(wxString title);		~MapFrame();		/// @}		void RedrawMap(wxCommandEvent & event);		MapControl * GetMapControl();				ITTS * GetTTS();		//////////////////////////////////////////////////////////////////////////////		/// @name Event handlers		//////////////////////////////////////////////////////////////////////////////		/// @{		void OnGPSUpdate(wxGPSEvent & event);		void OnGPSUpdateIdle(wxGPSEvent & event);		void OnGPSUpdateIdleSpeedControlledZooming(wxGPSEvent & event);		void OnGPSUpdateIdleRoadTypeZooming(wxGPSEvent & event);		void OnGPSUpdateIdleKeepGPSOnScreen(wxGPSEvent & event);		void OnGPSUpdateIdlePointGPSHeadingUp(wxGPSEvent & event);		void OnGPSUpdateIdleUpdateGPSTrack(wxGPSEvent & event);		void OnGPSWindowHiding();		void OnDirectionsWindowHiding();		void OnWhatsNearByWindowHiding();		void OnDownloadCounty(wxCommandEvent & ev);#if defined _WINDOWS		virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);#endif		/// @}		EToolMode GetToolMode() const;		void SetToolMode(EToolMode mode);		void SetVariable(wxString strName, wxString strValue);			MapAppearanceSettings& GetMapAppearanceSettings();		IMapControlData& GetMapControlData();				Address m_adrGPS;		/// Current GPS coordinates		Point m_ptGPS;			/// Current GPS heading		double m_fGPSHeading;			/// Current GPS speed (MPH)		double m_fGPSSpeed;		protected:		virtual int MapNameToID(wxString strName);		virtual void CreateNamedControl(wxString strName);		virtual void DeleteNamedControl(wxString strName, wxControl * pControl);	private:		void ApplyPreferences();		void SaveMarkers();		// menu handlers				//////////////////////////////////////////////////////////////////////////////		/// @name File menu handlers		//////////////////////////////////////////////////////////////////////////////		/// @{#ifdef USE_SCRIPTING			void OnFileRunScript(wxCommandEvent & event);#endif		void OnFileSaveAs(wxCommandEvent & event);		void OnFilePrint(wxCommandEvent & event);		void OnFilePrintPreview(wxCommandEvent & event);		void OnFileExit(wxCommandEvent & event);		/// @}		//////////////////////////////////////////////////////////////////////////////		/// @name View menu handlers		//////////////////////////////////////////////////////////////////////////////		/// @{		void OnViewCompass(wxCommandEvent & event);		void OnViewAerialPhotos(wxCommandEvent & event);		void OnView3DMode(wxCommandEvent & event);		void OnViewScale(wxCommandEvent & event);		void OnViewGPSHistory(wxCommandEvent & event);		void OnViewZoomLevel(wxCommandEvent& event);		void OnViewZoomIn(wxCommandEvent& event);		void OnViewZoomOut(wxCommandEvent& event);		void OnViewZoomMax(wxCommandEvent& event);		void OnViewZoomMin(wxCommandEvent& event);		void OnViewGPSMarker(wxCommandEvent& event);		void OnViewGPSMarkerToggle(wxCommandEvent& event);		void OnViewGPSWindow(wxCommandEvent& event);		void OnViewWhatsNearByWindow(wxCommandEvent& event);		void OnViewFullScreen(wxCommandEvent& event);		/// @}			//////////////////////////////////////////////////////////////////////////////		/// @name Map menu handlers		//////////////////////////////////////////////////////////////////////////////		/// @{		void OnMapSetAddress(wxCommandEvent & event);		void OnMapWaypoints(wxCommandEvent & event);		void OnMapSetAngle(wxCommandEvent & event);		void OnMapGetDirections(wxCommandEvent & event);		void OnMapGetDirectionsAccel(wxCommandEvent & event);		void OnMapMoveCenterLeft(wxCommandEvent & event);		void OnMapMoveCenterRight(wxCommandEvent & event);		void OnMapMoveCenterUp(wxCommandEvent & event);		void OnMapMoveCenterDown(wxCommandEvent & event);		/// @}		//////////////////////////////////////////////////////////////////////////////		/// @name Tools menu handlers		//////////////////////////////////////////////////////////////////////////////		/// @{		void OnToolsMeasure(wxCommandEvent& event);		void OnUpdateToolsMeasure(wxUpdateUIEvent& event);		void OnToolsZoom(wxCommandEvent& event);		void OnUpdateToolsZoom(wxUpdateUIEvent& event);		void OnToolsDownloadTIGERLineMaps(wxCommandEvent & event);#ifdef USE_OPENSTREETMAP		void OnToolsDownloadOSMMaps(wxCommandEvent & event);		void OnToolsImportOSMMaps(wxCommandEvent & event);#endif		void OnToolsPreferences(wxCommandEvent & event);		/// @}				//////////////////////////////////////////////////////////////////////////////		/// @name Help menu handlers		//////////////////////////////////////////////////////////////////////////////		/// @{		void OnHelpAbout(wxCommandEvent & event);		/// @}				//////////////////////////////////////////////////////////////////////////////		/// @name Misc events		//////////////////////////////////////////////////////////////////////////////		/// @{		void OnMapRecentered(wxCommandEvent & event);		void OnWhatsNearbyDoubleClick(wxCommandEvent & event);		void OnClose(wxCloseEvent & event);		void OnIdle(wxIdleEvent & event);		void OnSolarEvent(SolarEvent& event);		void OnEscapeKey(wxCommandEvent & event);		void OnSolarTimerTest(wxCommandEvent& event);		void OnTimerInit(wxTimerEvent& event);#ifdef USE_SCRIPTING		void OnTimerScripting(wxTimerEvent& event);#endif		void OnTimerConfigFlush(wxTimerEvent& event);		/// @}		void UpdateSkinState();		// variables		/// The map control in the main window		MapControl * m_ctlMap;				/// Map menu		wxMenu * m_menuMap;		// Manages the drawing details		MapAppearanceSettings m_MapAppearanceSettings;		ThemeManager m_ThemeManager;		void InitializeThemes();	  		/// Speed controlled detail level offset		int m_iSpeedControlledDetailLevelOffset;		/// Speed controlled detail level cutoffs - each time the velocity exceeds one of these cutoffs,		/// the map will zoom out one level.		std::vector<double> m_vSpeedControlledDetailLevelCutoffs;		/// View menu		wxMenu * m_menuView;		/// wxPrintData structure		wxPrintData m_pdData;				/// Boolean - should the screen track the GPS marker coordinates?		bool m_bScreenTracksGPS;				/// Pointer to GPS status window		GPSFrame * m_pfrmGPS;		CompassControl * m_pctlCompass;		DirectionsFrame * m_pfrmDirections;				/// Pointer to Whats Nearby window		WhatsNearByFrame * m_pfrmWhatsNearBy;			/// Pointer to GPS monitor thread		GPSMonitorThread * m_GPSMonitorThread;		/// Thread responsible for background downloads		DownloadThread * m_DownloadThread;		bool m_bNorthAlwaysUp;		EToolMode m_ToolMode;		SolarTimer m_SolarTimer;		void UpdateTheme();		MapControlData_Tiles m_cRecords;		wxTimer * m_ptmrInit;				wxTimer * m_ptmrConfigFlush;		bool m_bOnGPSInProgress;				wxGPSEvent m_evGPS;		bool m_bNewGPSData;		wxMutex m_mtxGPS;		bool m_bGPSJustRun;				wxDateTime m_tLastRoadTypeZoomingCheck;		int m_iRoadTypeZoomingCountdown;		ERecordType m_eRoadTypeZoomingCurrentType;		ERecordType m_eRoadTypeZoomingNextType;		int m_ariRoadTypeZoomingDetailLevels[(int) LAST_RECORD_TYPE + 1];		#ifdef USE_SCRIPTING		Scripting * m_pScripting;		wxTimer * m_ptmrScripting;#endif		ITTS * m_pcTTS;		DECLARE_EVENT_TABLE()};#endif

⌨️ 快捷键说明

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