mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-02 17:09:26 +02:00
Fix window sizing and meter drawing
This commit is contained in:
parent
21d69946e4
commit
7f96d16fb3
@ -73,7 +73,6 @@ public:
|
|||||||
virtual ~LV2EffectMeter();
|
virtual ~LV2EffectMeter();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void OnErase(wxEraseEvent & evt);
|
|
||||||
void OnPaint(wxPaintEvent & evt);
|
void OnPaint(wxPaintEvent & evt);
|
||||||
void OnIdle(wxIdleEvent & evt);
|
void OnIdle(wxIdleEvent & evt);
|
||||||
void OnSize(wxSizeEvent & evt);
|
void OnSize(wxSizeEvent & evt);
|
||||||
@ -87,7 +86,6 @@ private:
|
|||||||
|
|
||||||
BEGIN_EVENT_TABLE(LV2EffectMeter, wxWindow)
|
BEGIN_EVENT_TABLE(LV2EffectMeter, wxWindow)
|
||||||
EVT_IDLE(LV2EffectMeter::OnIdle)
|
EVT_IDLE(LV2EffectMeter::OnIdle)
|
||||||
EVT_ERASE_BACKGROUND(LV2EffectMeter::OnErase)
|
|
||||||
EVT_PAINT(LV2EffectMeter::OnPaint)
|
EVT_PAINT(LV2EffectMeter::OnPaint)
|
||||||
EVT_SIZE(LV2EffectMeter::OnSize)
|
EVT_SIZE(LV2EffectMeter::OnSize)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
@ -111,11 +109,6 @@ void LV2EffectMeter::OnIdle(wxIdleEvent & WXUNUSED(evt))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LV2EffectMeter::OnErase(wxEraseEvent & WXUNUSED(evt))
|
|
||||||
{
|
|
||||||
// Just ignore it to prevent flashing
|
|
||||||
}
|
|
||||||
|
|
||||||
void LV2EffectMeter::OnPaint(wxPaintEvent & WXUNUSED(evt))
|
void LV2EffectMeter::OnPaint(wxPaintEvent & WXUNUSED(evt))
|
||||||
{
|
{
|
||||||
wxDC *dc = wxAutoBufferedPaintDCFactory(this);
|
wxDC *dc = wxAutoBufferedPaintDCFactory(this);
|
||||||
@ -137,12 +130,13 @@ void LV2EffectMeter::OnPaint(wxPaintEvent & WXUNUSED(evt))
|
|||||||
{
|
{
|
||||||
val = mCtrl.mMin;
|
val = mCtrl.mMin;
|
||||||
}
|
}
|
||||||
|
val -= mCtrl.mMin;
|
||||||
|
|
||||||
// Setup for erasing the background
|
// Setup for erasing the background
|
||||||
dc->SetPen(*wxTRANSPARENT_PEN);
|
dc->SetPen(*wxTRANSPARENT_PEN);
|
||||||
dc->SetBrush(wxColour(100, 100, 220));
|
dc->SetBrush(wxColour(100, 100, 220));
|
||||||
|
|
||||||
dc->DrawRectangle(x, y, (w * (val / (mCtrl.mMax - mCtrl.mMin))), h);
|
dc->DrawRectangle(x, y, (w * (val / fabs(mCtrl.mMax - mCtrl.mMin))), h);
|
||||||
|
|
||||||
mLastValue = mCtrl.mVal;
|
mLastValue = mCtrl.mVal;
|
||||||
|
|
||||||
@ -151,7 +145,7 @@ void LV2EffectMeter::OnPaint(wxPaintEvent & WXUNUSED(evt))
|
|||||||
|
|
||||||
void LV2EffectMeter::OnSize(wxSizeEvent & WXUNUSED(evt))
|
void LV2EffectMeter::OnSize(wxSizeEvent & WXUNUSED(evt))
|
||||||
{
|
{
|
||||||
Refresh(false);
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
@ -1828,6 +1822,14 @@ bool LV2Effect::BuildPlain()
|
|||||||
w->SetSizer(innerSizer);
|
w->SetSizer(innerSizer);
|
||||||
mParent->SetSizer(outerSizer);
|
mParent->SetSizer(outerSizer);
|
||||||
|
|
||||||
|
// Try to give the window a sensible default/minimum size
|
||||||
|
wxSize sz1 = innerSizer->GetMinSize();
|
||||||
|
wxSize sz2 = mParent->GetMinSize();
|
||||||
|
w->SetSizeHints(wxSize(-1, wxMin(sz1.y, sz2.y)));
|
||||||
|
|
||||||
|
// And let the parent reduce to the new minimum if possible
|
||||||
|
mParent->SetSizeHints(w->GetMinSize());
|
||||||
|
|
||||||
TransferDataToWindow();
|
TransferDataToWindow();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user