|
Hello, knowing that I is not got an answer I allow to you rewrite. I'm Quentin, i'm student in computer science and i have made a context menu. I fixed my bug (problem with the closure : the program in the terminal don't stop) and I have attached a patch. however sometimes the menu opens and the other not, although I'm in my code. And the call of PopupMenu doesn't run forever. can you help me or have you an idea ? Thanks per advance, Quentin. Index: src/TrackPanel.h =================================================================== --- src/TrackPanel.h (révision 11653)
+++ src/TrackPanel.h (copie de travail) @@ -312,6 +312,23 @@ virtual void Stretch(int mouseXCoordinate, int trackLeftEdge, Track *pTrack);
#endif + // As : call functions for popipmenu + void OnPopupOpen(wxCommandEvent &evt);
+ void OnPopupCopy(wxCommandEvent &evt); + void OnPopupCut(wxCommandEvent &evt); + void OnPopupPaste(wxCommandEvent &evt);
+ + void OnPopupDelete(wxCommandEvent &evt); + + void OnPopupRedo(wxCommandEvent &evt);
+ void OnPopupUndo(wxCommandEvent &evt); + + void OnPopupPlay(wxCommandEvent &evt); + void OnPopupPause(wxCommandEvent &evt);
+ void OnPopupStop(wxCommandEvent &evt); + + void OnContext(wxMouseEvent & event); +
// AS: Selection handling virtual void HandleSelect(wxMouseEvent & event); virtual void SelectionHandleDrag(wxMouseEvent &event, Track *pTrack);
@@ -676,6 +693,7 @@ wxMenu *mRateMenu; wxMenu *mFormatMenu; wxMenu *mLabelTrackInfoMenu;
+ wxMenu *mPopUpMenu; Track *mPopupMenuTarget; Index: src/TrackPanel.cpp
=================================================================== --- src/TrackPanel.cpp (révision 11653)
+++ src/TrackPanel.cpp (copie de travail) @@ -313,6 +313,18 @@ OnCutSelectedTextID,
OnCopySelectedTextID, OnPasteSelectedTextID, + + ID_OPEN,// <---------
+ ID_COPY,// / + ID_CUT,// / + ID_PASTE,// / + ID_DELETE,// / For popupmenu
+ ID_REDO,// / + ID_UNDO,// / + ID_PLAY,// /
+ ID_PAUSE, // / + ID_STOP,// / + ID_LOOPPLAY,// <----- };
BEGIN_EVENT_TABLE(TrackPanel, wxWindow) @@ -346,6 +358,17 @@ EVT_MENU(OnCutSelectedTextID, TrackPanel::OnCutSelectedText) EVT_MENU(OnCopySelectedTextID, TrackPanel::OnCopySelectedText)
EVT_MENU(OnPasteSelectedTextID, TrackPanel::OnPasteSelectedText) + + EVT_MENU (ID_OPEN,TrackPanel::OnPopupOpen)
+ EVT_MENU (ID_COPY,TrackPanel::OnPopupCopy) + EVT_MENU (ID_CUT,TrackPanel::OnPopupCut) + EVT_MENU (ID_PASTE,TrackPanel::OnPopupPaste)
+ EVT_MENU (ID_DELETE,TrackPanel::OnPopupDelete) + EVT_MENU (ID_REDO,TrackPanel::OnPopupRedo) + EVT_MENU (ID_UNDO,TrackPanel::OnPopupUndo)
+ EVT_MENU (ID_PLAY,TrackPanel::OnPopupPlay) + EVT_MENU (ID_PAUSE,TrackPanel::OnPopupPause) + EVT_MENU (ID_STOP,TrackPanel::OnPopupStop)
END_EVENT_TABLE() /// Makes a cursor from an XPM, uses CursorId as a fallback. @@ -502,6 +525,7 @@
mLabelTrackMenu = NULL; mLabelTrackInfoMenu = NULL; mTimeTrackMenu = NULL; + mPopUpMenu = NULL; BuildMenus(); @@ -680,6 +704,22 @@ mLabelTrackInfoMenu->Append(OnCutSelectedTextID, _("Cut"));
mLabelTrackInfoMenu->Append(OnCopySelectedTextID, _("Copy")); mLabelTrackInfoMenu->Append(OnPasteSelectedTextID, _("Paste"));
+ + mPopUpMenu = new wxMenu(); + mPopUpMenu->Append(ID_OPEN, wxString(_("Open Ctrl+O "))); + mPopUpMenu->AppendSeparator();
+ mPopUpMenu->Append(ID_COPY, wxString(_("Copy Ctrl+C "))); + mPopUpMenu->Append(ID_CUT, wxString(_("Cut Ctrl+X ")));
+ mPopUpMenu->Append(ID_PASTE, wxString(_("Paste Ctrl+V "))); + mPopUpMenu->AppendSeparator(); + mPopUpMenu->Append(ID_DELETE, wxString(_("Delete Ctrl+K ")));
+ mPopUpMenu->AppendSeparator(); + mPopUpMenu->Append(ID_UNDO, wxString(_("Undo Ctrl+Z "))); + mPopUpMenu->Append(ID_REDO, wxString(_("Redo Maj+Ctrl+Z ")));
+ mPopUpMenu->AppendSeparator(); + mPopUpMenu->Append(ID_PLAY, wxString(_("Play"))); + mPopUpMenu->Append(ID_PAUSE, wxString(_("Pause P")));
+ mPopUpMenu->Append(ID_STOP, wxString(_("Stop"))); } void TrackPanel::DeleteMenus(void)
@@ -710,6 +750,11 @@ delete mTimeTrackMenu; mTimeTrackMenu = NULL; }
+ + if (mPopUpMenu) { + delete mPopUpMenu; + mPopUpMenu = NULL; + }
} void TrackPanel::UpdatePrefs() @@ -1827,6 +1872,11 @@ SetCapturedTrack( NULL );
MakeParentModifyState(); } + + if (event.RightDown()) {
+ PopupMenu(mPopUpMenu, event.GetX(), event.GetY() ); + } + done: SelectionHandleDrag(event, t);
@@ -1840,6 +1890,64 @@ } } +
+ + +// Call functions for popupmenu +void TrackPanel::OnPopupOpen(wxCommandEvent &evt){ +AudacityProject* mProject= GetActiveProject() ;
+mProject->OnOpen(); + +} + +void TrackPanel::OnPopupCopy(wxCommandEvent &evt){
+AudacityProject* mProject= GetActiveProject() ; +mProject->OnCopy(); + +}
+ +void TrackPanel::OnPopupCut(wxCommandEvent &evt){ +AudacityProject *mProject = GetActiveProject(); +mProject->OnCut();
+} + +void TrackPanel::OnPopupPaste(wxCommandEvent &evt){ +AudacityProject *mProject = GetActiveProject();
+mProject->OnPaste(); + +} + +void TrackPanel::OnPopupDelete(wxCommandEvent &evt){
+AudacityProject *mProject = GetActiveProject(); +mProject->OnDelete(); +} +
+void TrackPanel::OnPopupRedo(wxCommandEvent &evt){ +AudacityProject *mProject = GetActiveProject(); +mProject->OnRedo(); +}
+ +void TrackPanel::OnPopupUndo(wxCommandEvent &evt){ +AudacityProject *mProject = GetActiveProject();
+mProject->OnUndo(); +} + +void TrackPanel::OnPopupPlay(wxCommandEvent &evt){ +AudacityProject *mProject = GetActiveProject();
+mProject->OnPlayStop(); +} + +void TrackPanel::OnPopupPause(wxCommandEvent &evt){
+AudacityProject *mProject = GetActiveProject(); +mProject->OnPause(); +} + +void TrackPanel::OnPopupStop(wxCommandEvent &evt){
+AudacityProject *mProject = GetActiveProject(); +mProject->OnStop(); +} +
+ /// This method gets called when we're handling selection /// and the mouse was just clicked. void TrackPanel::SelectionHandleClick(wxMouseEvent & event,
------------------------------------------------------------------------------ Better than sec? Nothing is better than sec when it comes to monitoring Big Data applications. Try Boundary one-second resolution app monitoring today. Free. http://p.sf.net/sfu/Boundary-dev2dev _______________________________________________ audacity-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/audacity-devel |
| Free forum by Nabble | Edit this page |
