mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-01 08:29:27 +02:00
Fix memory leaks, though in unused code...
This commit is contained in:
commit
57903233c5
@ -132,7 +132,6 @@ ExpandingToolBar::ExpandingToolBar(wxWindow* parent,
|
|||||||
mDialogParent(NULL),
|
mDialogParent(NULL),
|
||||||
mAreaParent(NULL),
|
mAreaParent(NULL),
|
||||||
mSavedArrangement{},
|
mSavedArrangement{},
|
||||||
mDragImage(NULL),
|
|
||||||
mTopLevelParent(NULL)
|
mTopLevelParent(NULL)
|
||||||
{
|
{
|
||||||
mMainPanel = safenew wxPanelWrapper(this, -1,
|
mMainPanel = safenew wxPanelWrapper(this, -1,
|
||||||
@ -280,10 +279,14 @@ class ExpandingToolBarEvtHandler final : public wxEvtHandler
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ExpandingToolBarEvtHandler(ExpandingToolBar *toolbar,
|
ExpandingToolBarEvtHandler(ExpandingToolBar *toolbar,
|
||||||
|
wxWindow *window,
|
||||||
wxEvtHandler *inheritedEvtHandler)
|
wxEvtHandler *inheritedEvtHandler)
|
||||||
{
|
{
|
||||||
mToolBar = toolbar;
|
mToolBar = toolbar;
|
||||||
|
mWindow = window;
|
||||||
mInheritedEvtHandler = inheritedEvtHandler;
|
mInheritedEvtHandler = inheritedEvtHandler;
|
||||||
|
|
||||||
|
window->PushEventHandler(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ProcessEvent(wxEvent& evt) override
|
bool ProcessEvent(wxEvent& evt) override
|
||||||
@ -296,8 +299,14 @@ class ExpandingToolBarEvtHandler final : public wxEvtHandler
|
|||||||
return mInheritedEvtHandler->ProcessEvent(evt);
|
return mInheritedEvtHandler->ProcessEvent(evt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
~ExpandingToolBarEvtHandler()
|
||||||
|
{
|
||||||
|
mWindow->RemoveEventHandler(this);
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ExpandingToolBar *mToolBar;
|
ExpandingToolBar *mToolBar;
|
||||||
|
wxWindow *mWindow;
|
||||||
wxEvtHandler *mInheritedEvtHandler;
|
wxEvtHandler *mInheritedEvtHandler;
|
||||||
|
|
||||||
DECLARE_NO_COPY_CLASS(ExpandingToolBarEvtHandler);
|
DECLARE_NO_COPY_CLASS(ExpandingToolBarEvtHandler);
|
||||||
@ -306,9 +315,8 @@ protected:
|
|||||||
void ExpandingToolBar::RecursivelyPushEventHandlers(wxWindow *win)
|
void ExpandingToolBar::RecursivelyPushEventHandlers(wxWindow *win)
|
||||||
{
|
{
|
||||||
if (!mWindowHash[win]) {
|
if (!mWindowHash[win]) {
|
||||||
ExpandingToolBarEvtHandler *evtHandler =
|
mHandlers.push_back(make_movable<ExpandingToolBarEvtHandler>
|
||||||
new ExpandingToolBarEvtHandler(this, win->GetEventHandler());
|
(this, win, win->GetEventHandler()));
|
||||||
win->PushEventHandler(evtHandler);
|
|
||||||
mWindowHash[win] = 1;
|
mWindowHash[win] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -556,7 +564,7 @@ void ExpandingToolBar::StartMoving()
|
|||||||
|
|
||||||
mAreaParent->SetCapturedChild(this);
|
mAreaParent->SetCapturedChild(this);
|
||||||
|
|
||||||
mDragImage = new wxDragImage(toolbarBitmap);
|
mDragImage = std::make_unique<wxDragImage>(toolbarBitmap);
|
||||||
mDragImage->BeginDrag(hotSpot, mAreaParent, mTopLevelParent);
|
mDragImage->BeginDrag(hotSpot, mAreaParent, mTopLevelParent);
|
||||||
mDragImage->Show();
|
mDragImage->Show();
|
||||||
mDragImage->Move(ScreenToClient(wxGetMousePosition()));
|
mDragImage->Move(ScreenToClient(wxGetMousePosition()));
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#define __AUDACITY_EXPANDING_TOOL_BAR__
|
#define __AUDACITY_EXPANDING_TOOL_BAR__
|
||||||
|
|
||||||
#include "../MemoryX.h"
|
#include "../MemoryX.h"
|
||||||
|
#include <vector>
|
||||||
#include <wx/defs.h>
|
#include <wx/defs.h>
|
||||||
#include <wx/dialog.h>
|
#include <wx/dialog.h>
|
||||||
#include <wx/dynarray.h>
|
#include <wx/dynarray.h>
|
||||||
@ -39,6 +40,8 @@ WX_DECLARE_VOIDPTR_HASH_MAP(int, WindowHash);
|
|||||||
WX_DEFINE_ARRAY(ExpandingToolBar *, ExpandingToolBarArray);
|
WX_DEFINE_ARRAY(ExpandingToolBar *, ExpandingToolBarArray);
|
||||||
WX_DECLARE_OBJARRAY(wxRect, wxArrayRect);
|
WX_DECLARE_OBJARRAY(wxRect, wxArrayRect);
|
||||||
|
|
||||||
|
class ExpandingToolBarEvtHandler;
|
||||||
|
|
||||||
//
|
//
|
||||||
// A smart ToolBar class that has a "MainPanel" which is always
|
// A smart ToolBar class that has a "MainPanel" which is always
|
||||||
// displayed, and an "ExtraPanel" that can be hidden to save space.
|
// displayed, and an "ExtraPanel" that can be hidden to save space.
|
||||||
@ -111,7 +114,7 @@ class ExpandingToolBar final : public wxPanelWrapper
|
|||||||
ToolBarArea *mAreaParent;
|
ToolBarArea *mAreaParent;
|
||||||
std::unique_ptr<ToolBarArrangement> mSavedArrangement;
|
std::unique_ptr<ToolBarArrangement> mSavedArrangement;
|
||||||
ImageRollPanel *mTargetPanel;
|
ImageRollPanel *mTargetPanel;
|
||||||
wxDragImage *mDragImage;
|
std::unique_ptr<wxDragImage> mDragImage;
|
||||||
wxWindow *mTopLevelParent;
|
wxWindow *mTopLevelParent;
|
||||||
wxArrayRect mDropTargets;
|
wxArrayRect mDropTargets;
|
||||||
wxRect mDropTarget;
|
wxRect mDropTarget;
|
||||||
@ -121,6 +124,7 @@ class ExpandingToolBar final : public wxPanelWrapper
|
|||||||
DECLARE_EVENT_TABLE();
|
DECLARE_EVENT_TABLE();
|
||||||
|
|
||||||
friend class ExpandingToolBarEvtHandler;
|
friend class ExpandingToolBarEvtHandler;
|
||||||
|
std::vector< movable_ptr< ExpandingToolBarEvtHandler > > mHandlers;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ToolBarGrabber final : public wxPanelWrapper
|
class ToolBarGrabber final : public wxPanelWrapper
|
||||||
|
Loading…
x
Reference in New Issue
Block a user