void mxExpressionTray::ShowRightClickMenu( int mx, int my ) { CExpClass *active = expressions->GetActiveClass(); if ( !active ) return; mxPopupMenu *pop = new mxPopupMenu(); Assert( pop ); CExpression *exp = NULL; if ( m_nClickedCell != -1 ) { exp = active->GetExpression( m_nClickedCell ); } pop->add( "New Expression...", IDC_CONTEXT_NEWEXP ); if ( exp ) { pop->addSeparator(); pop->add( va( "Edit '%s'...", exp->name ), IDC_CONTEXT_EDITEXP ); pop->add( va( "Save '%s'", exp->name ), IDC_CONTEXT_SAVEEXP ); if ( exp->CanUndo() || exp->CanRedo() ) { pop->add( va( "Revert '%s'", exp->name ), IDC_CONTEXT_REVERT ); } pop->addSeparator(); pop->add( va( "Delete '%s'", exp->name ), IDC_CONTEXT_DELETEXP ); pop->addSeparator(); pop->add( va( "Re-create thumbnail for '%s'", exp->name ), IDC_CONTEXT_CREATEBITMAP ); } pop->popup( this, mx, my ); }