Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add dynamic menu for AIS targets to show/hide CPA line #13

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions include/ais.h
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ class AIS_Target_Data
wxString GetRolloverString(void);
wxString Get_vessel_type_string(bool b_short = false);
wxString Get_class_string(bool b_short = false);
void Toggle_AIS_CPA(void); //TR 2012.06.28: Show AIS-CPA


int MID;
Expand Down Expand Up @@ -300,6 +301,8 @@ class AIS_Target_Data
double TCPA; // Minutes
double CPA; // Nautical Miles

bool b_show_AIS_CPA; //TR 2012.06.28: Show AIS-CPA

AISTargetTrackList *m_ptrack;

AIS_Area_Notice_Hash area_notices;
Expand Down
6 changes: 5 additions & 1 deletion src/ais.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,7 @@ AIS_Target_Data::AIS_Target_Data()
strncpy(CallSign, " ", 8);
strncpy(Destination, " ", 21);
ShipNameExtension[0] = 0;
b_show_AIS_CPA = false; //TR 2012.06.28: Show AIS-CPA

SOG = 555.;
COG = 666.;
Expand Down Expand Up @@ -1224,7 +1225,10 @@ wxString AIS_Target_Data::Get_class_string(bool b_short)
return b_short ? _("Unk") : _("Unknown");
}
}

void AIS_Target_Data::Toggle_AIS_CPA(void) //TR 2012.06.28: Show AIS-CPA
{
b_show_AIS_CPA=!b_show_AIS_CPA?true:false; //TR 2012.06.28: Show AIS-CPA :simply toggle b_show_AIS_CPA
}

//---------------------------------------------------------------------------------
//
Expand Down
25 changes: 21 additions & 4 deletions src/chcanv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,7 @@ enum
ID_RC_MENU_ZOOM_OUT,
ID_RC_MENU_FINISH,
ID_DEF_MENU_AIS_QUERY,
ID_DEF_MENU_AIS_CPA, //TR 2012.06.28: Show AIS-CPA
ID_DEF_MENU_ACTIVATE_MEASURE,
ID_DEF_MENU_DEACTIVATE_MEASURE,

Expand Down Expand Up @@ -3179,6 +3180,7 @@ EVT_MENU ( ID_RC_MENU_ZOOM_IN, ChartCanvas::PopupMenuHandler )
EVT_MENU ( ID_RC_MENU_ZOOM_OUT, ChartCanvas::PopupMenuHandler )
EVT_MENU ( ID_RC_MENU_FINISH, ChartCanvas::PopupMenuHandler )
EVT_MENU ( ID_DEF_MENU_AIS_QUERY, ChartCanvas::PopupMenuHandler )
EVT_MENU ( ID_DEF_MENU_AIS_CPA, ChartCanvas::PopupMenuHandler ) //TR 2012.06.28: Show AIS-CPA

EVT_MENU ( ID_DEF_MENU_ACTIVATE_MEASURE, ChartCanvas::PopupMenuHandler )
EVT_MENU ( ID_DEF_MENU_DEACTIVATE_MEASURE, ChartCanvas::PopupMenuHandler )
Expand Down Expand Up @@ -6062,7 +6064,8 @@ void ChartCanvas::AISDrawTarget( AIS_Target_Data *td, ocpnDC& dc )
if( td->b_positionDoubtful ) target_brush = wxBrush( GetGlobalColor( _T ( "UINFF" ) ) );

// Check for alarms here, maintained by AIS class timer tick
if( ( td->n_alarm_state == AIS_ALARM_SET ) && ( td->bCPA_Valid ) ) {
//TR original code: if( ( td->n_alarm_state == AIS_ALARM_SET ) && ( td->bCPA_Valid ) ) {
if( ((td->n_alarm_state == AIS_ALARM_SET) && (td->bCPA_Valid)) || (td->b_show_AIS_CPA && (td->bCPA_Valid))) { //TR 2012.06.28: Show AIS-CPA; show CPA when b_show_AIS_CPA is true
// Calculate the point of CPA for target
double tcpa_lat, tcpa_lon;
ll_gc_ll( td->Lat, td->Lon, td->COG, target_sog * td->TCPA / 60., &tcpa_lat,
Expand Down Expand Up @@ -8098,9 +8101,16 @@ void ChartCanvas::CanvasPopupMenu( int x, int y, int seltype )
pdef_menu->AppendSeparator();

if( g_pAIS ) {
if( seltype & SELTYPE_AISTARGET ) pdef_menu->Append( ID_DEF_MENU_AIS_QUERY,
_( "AIS Target Query" ) );

if( seltype & SELTYPE_AISTARGET ) {
pdef_menu->Append( ID_DEF_MENU_AIS_QUERY, _( "AIS Target Query" ) );
AIS_Target_Data *myptarget = g_pAIS->Get_Target_Data_From_MMSI(m_FoundAIS_MMSI); //TR 2012.06.28: Show AIS-CPA
if ( myptarget && myptarget->bCPA_Valid) { //TR 2012.06.28: Show AIS-CPA : show menu-selection only, if we have a valid CPA !
if(myptarget->b_show_AIS_CPA ) //TR 2012.06.28: Hide AIS-CPA
pdef_menu->Append ( ID_DEF_MENU_AIS_CPA, _( "Hide AIS Target CPA" ) ); //TR 2012.06.28: Hide AIS-CPA
else //TR 2012.06.28: Hide AIS-CPA
pdef_menu->Append ( ID_DEF_MENU_AIS_CPA, _( "Show AIS Target CPA" ) ); //TR 2012.06.28: Show AIS-CPA
}
}
pdef_menu->Append( ID_DEF_MENU_AISTARGETLIST, _("AIS target list") );
pdef_menu->AppendSeparator();
}
Expand Down Expand Up @@ -8549,6 +8559,13 @@ void ChartCanvas::PopupMenuHandler( wxCommandEvent& event )
break;
}

case ID_DEF_MENU_AIS_CPA: { //TR 2012.06.28: Show AIS-CPA
AIS_Target_Data *myptarget = g_pAIS->Get_Target_Data_From_MMSI(m_FoundAIS_MMSI); //TR 2012.06.28: Show AIS-CPA
if ( myptarget ) //TR 2012.06.28: Show AIS-CPA
myptarget->Toggle_AIS_CPA(); //TR 2012.06.28: Show AIS-CPA
break; //TR 2012.06.28: Show AIS-CPA
}

case ID_DEF_MENU_QUILTREMOVE: {
if( VPoint.b_quilt ) {
int dbIndex = m_pQuilt->GetChartdbIndexAtPix( wxPoint( popx, popy ) );
Expand Down