1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-21 16:11:11 +01:00
Files
audacity/src/widgets/BackedPanel.h
Paul Licameli 7c2a531486 New base classes of TrackPanel just for the bitmap backing and overlay system...
... to make it reusable by other classes.

Also, don't create a second DC when repainting TrackPanel.
2016-05-09 11:37:32 -04:00

47 lines
861 B
C++

//
// BackedPanel.h
// Audacity
//
// Created by Paul Licameli on 5/7/16.
//
//
#ifndef __AUDACITY_BACKED_PANEL__
#define __AUDACITY_BACKED_PANEL__
#include "../MemoryX.h"
#include <wx/panel.h>
#include <wx/dcmemory.h>
class AUDACITY_DLL_API BackedPanel /* not final */ : public wxPanel {
public:
BackedPanel(wxWindow * parent, wxWindowID id,
const wxPoint & pos,
const wxSize & size,
long style);
~BackedPanel();
wxDC &GetBackingDC();
wxDC &GetBackingDCForRepaint();
void ResizeBacking();
void RepairBitmap(wxDC &dc, wxCoord x, wxCoord y, wxCoord width, wxCoord height);
void DisplayBitmap(wxDC &dc);
void OnSize(wxSizeEvent & event);
private:
std::unique_ptr<wxBitmap> mBacking;
wxMemoryDC mBackingDC;
bool mResizeBacking {};
DECLARE_EVENT_TABLE()
};
#endif