ClimatologyDialog::ClimatologyDialog(wxWindow *parent, climatology_pi *ppi) #ifndef __WXOSX__ : ClimatologyDialogBase(parent), #else : ClimatologyDialogBase(parent, wxID_ANY, _("Climatology Display Control"), wxDefaultPosition, wxDefaultSize, wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU|wxSTAY_ON_TOP), #endif pPlugIn(ppi), pParent(parent) { #ifdef __OCPN__ANDROID__ GetHandle()->setStyleSheet( qtStyleSheet); #endif m_cfgdlg = new ClimatologyConfigDialog(this); Now(); m_cursorlat = m_cursorlon = 0; { #include "now.xpm" m_bpNow->SetBitmapLabel(now); } DimeWindow( this ); PopulateTrackingControls(); // run fit delayed (buggy wxwidgets) m_fittimer.Connect(wxEVT_TIMER, wxTimerEventHandler ( ClimatologyDialog::OnFitTimer ), NULL, this); #ifdef __OCPN__ANDROID__ GetHandle()->setAttribute(Qt::WA_AcceptTouchEvents); GetHandle()->grabGesture(Qt::PanGesture); GetHandle()->setStyleSheet( qtStyleSheet); Connect( wxEVT_QT_PANGESTURE, (wxObjectEventFunction) (wxEventFunction) &ClimatologyDialog::OnEvtPanGesture, NULL, this ); #endif }
void GRIBUIDialog::OpenFile(bool newestFile) { m_bpPlay->SetBitmap(*m_bPlay); m_bpPlay->SetToolTip(_("Play")); m_tPlayStop.Stop(); m_cRecordForecast->Clear(); /* this should be un-commented to avoid a memory leak, but for some reason it crbashes windows */ // delete m_bGRIBActiveFile; m_pTimelineSet = NULL; //get more recent file in default directory if necessary wxFileName f( m_file_name ); if( newestFile || f.GetFullName().IsEmpty() ) m_file_name = GetNewestFileInDirectory(); m_bGRIBActiveFile = new GRIBFile( m_file_name, pPlugIn->GetCopyFirstCumRec(), pPlugIn->GetCopyMissWaveRec() ); ArrayOfGribRecordSets *rsa = m_bGRIBActiveFile->GetRecordSetArrayPtr(); if(rsa->GetCount() < 2) m_TimeLineHours = 0; else { GribRecordSet &first=rsa->Item(0), &last = rsa->Item(rsa->GetCount()-1); wxTimeSpan span = wxDateTime(last.m_Reference_Time) - wxDateTime(first.m_Reference_Time); m_TimeLineHours = span.GetHours(); m_sTimeline->Enable(); } m_sTimeline->SetValue(0); wxFileName fn( m_file_name ); SetLabel( fn.GetFullName() ); if( m_bGRIBActiveFile ) { if( m_bGRIBActiveFile->IsOK() ) { //there could be valid but empty file if( rsa->GetCount() == 0 ) { m_bGRIBActiveFile = NULL; pPlugIn->GetGRIBOverlayFactory()->SetMessage( _("Error: No valid data in this file!") ); } else PopulateComboDataList( 0 ); } else { if( fn.IsDir() ) { pPlugIn->GetGRIBOverlayFactory()->SetMessage( _("Warning: Empty directory!") ); SetLabel( fn.GetFullPath() ); } else pPlugIn->GetGRIBOverlayFactory()->SetMessage( m_bGRIBActiveFile->GetLastMessage() ); } SetFactoryOptions(); DisplayDataGRS(); PopulateTrackingControls(); } }
void GRIBUIDialog::OnSize( wxSizeEvent& event ) { // Record the dialog size wxSize p = event.GetSize(); pPlugIn->SetGribDialogSizeX( p.x ); pPlugIn->SetGribDialogSizeY( p.y ); PopulateTrackingControls(); event.Skip(); }
void GRIBUIDialog::OpenFile() { m_tbPlayStop->SetValue(false); m_tPlayStop.Stop(); m_cRecordForecast->Clear(); /* this should be un-commented to avoid a memory leak, but for some reason it crbashes windows */ // delete m_bGRIBActiveFile; m_bGRIBActiveFile = new GRIBFile( m_file_name, pPlugIn->GetCopyFirstCumRec(), pPlugIn->GetCopyMissWaveRec() ); ArrayOfGribRecordSets *rsa = m_bGRIBActiveFile->GetRecordSetArrayPtr(); if(rsa->GetCount() < 2) m_TimeLineHours = 0; else { GribRecordSet &first=rsa->Item(0), &last = rsa->Item(rsa->GetCount()-1); wxTimeSpan span = wxDateTime(last.m_Reference_Time) - wxDateTime(first.m_Reference_Time); m_TimeLineHours = span.GetHours(); m_sTimeline->Enable(); } m_sTimeline->SetValue(0); wxFileName fn( m_file_name ); SetLabel( fn.GetFullName() ); if( m_bGRIBActiveFile ) { if( m_bGRIBActiveFile->IsOK() ) { PopulateComboDataList( 0 ); SetFactoryOptions(); DisplayDataGRS(); PopulateTrackingControls(); } else pPlugIn->GetGRIBOverlayFactory()->SetMessage( m_bGRIBActiveFile->GetLastMessage() ); } }
GRIBUIDialog::GRIBUIDialog(wxWindow *parent, grib_pi *ppi) : GRIBUIDialogBase(parent) { pParent = parent; pPlugIn = ppi; m_bGRIBActiveFile = NULL; m_pTimelineSet = NULL; wxFileConfig *pConf = GetOCPNConfigObject(); if(pConf) { pConf->SetPath ( _T ( "/Settings/GRIB" ) ); bool value; pConf->Read( _T ( "WindPlot" ), &value, true ); m_cbWind->SetValue(value); pConf->Read( _T ( "WindGustPlot" ), &value, true ); m_cbWindGust->SetValue(value); pConf->Read( _T ( "PressurePlot" ), &value, true ); m_cbPressure->SetValue(value); pConf->Read( _T ( "WavePlot" ), &value, false ); m_cbWave->SetValue(value); pConf->Read( _T ( "CurrentPlot" ), &value, false ); m_cbCurrent->SetValue(value); pConf->Read( _T ( "PrecipitationPlot" ), &value, false ); m_cbPrecipitation->SetValue(value); pConf->Read( _T ( "CloudPlot" ), &value, false ); m_cbCloud->SetValue(value); pConf->Read( _T ( "AirTemperaturePlot" ), &value, false ); m_cbAirTemperature->SetValue(value); pConf->Read( _T ( "SeaTemperaturePlot" ), &value, false ); m_cbSeaTemperature->SetValue(value); pConf->Read ( _T ( "lastdatatype" ), &m_lastdatatype, 0); pConf->Read ( _T ( "Filename" ), &m_file_name ); wxStandardPaths spath; pConf->SetPath ( _T ( "/Directories" ) ); pConf->Read ( _T ( "GRIBDirectory" ), &m_grib_dir, spath.GetDocumentsDir() ); } #if !wxCHECK_VERSION(2,9,4) /* to work with wx 2.8 */ #define SetBitmap SetLabel #endif m_bpPrev->SetBitmap(wxBitmap( prev )); m_bpNext->SetBitmap(wxBitmap( next )); m_bpNow->SetBitmap(wxBitmap( now )); m_bpOpenFile->SetBitmap(wxBitmap( openfile )); m_bpSettings->SetBitmap(wxBitmap( setting )); m_bpRequest->SetBitmap(wxBitmap( request )); m_tPlayStop.Connect(wxEVT_TIMER, wxTimerEventHandler( GRIBUIDialog::OnPlayStopTimer ), NULL, this); m_OverlaySettings.Read(); DimeWindow( this ); m_pTimelineSet = NULL; PopulateTrackingControls(); Fit(); SetMinSize( GetBestSize() ); }