623{
624 int clientWidth, clientHeight;
625 GetSize(&clientWidth, &clientHeight);
626
629 {
631 }
632
633 wxMemoryDC dc;
635
636 dc.SetBrush(*wxWHITE_BRUSH);
637 dc.SetPen(*wxBLACK_PEN);
638 dc.DrawRectangle(0, 0, clientWidth, clientHeight);
639
640 dc.SetFont(wxFont(10, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL,
641 wxFONTWEIGHT_NORMAL));
642 dc.SetTextForeground(*wxBLACK);
643 dc.SetTextBackground(*wxWHITE);
644
645 double duckAmountDb = 0;
646 double innerFadeDownLen = 0;
647 double innerFadeUpLen = 0;
648 double outerFadeDownLen = 0;
649 double outerFadeUpLen = 0;
655
656 if (innerFadeDownLen < MIN_InnerFadeDownLen || innerFadeDownLen > MAX_InnerFadeDownLen ||
657 innerFadeUpLen < MIN_InnerFadeUpLen || innerFadeUpLen > MAX_InnerFadeUpLen ||
658 outerFadeDownLen < MIN_OuterFadeDownLen || outerFadeDownLen > MAX_OuterFadeDownLen ||
659 outerFadeUpLen < MIN_OuterFadeUpLen || outerFadeUpLen > MAX_OuterFadeUpLen ||
660 duckAmountDb < MIN_DuckAmountDb || duckAmountDb > MAX_DuckAmountDb)
661 {
662
663 wxString message =
_(
"Preview not available");
664 int textWidth = 0, textHeight = 0;
665 dc.GetTextExtent(message, &textWidth, &textHeight);
666 dc.DrawText(message, (clientWidth - textWidth) / 2,
667 (clientHeight - textHeight) / 2);
668
670 } else
671 {
672
673 dc.SetBrush(*wxTRANSPARENT_BRUSH);
674 dc.SetPen(wxPen(
theTheme.
Colour(clrGraphLines), 3, wxPENSTYLE_SOLID));
675
676 wxPoint points[6];
677
678 points[0].x = 10;
680
683
687
691
694
695 points[5].x = clientWidth - 10;
697
699
700 dc.SetPen(wxPen(*wxBLACK, 1, wxPENSTYLE_DOT));
701
704
706 dc.SetBrush(*wxWHITE_BRUSH);
707
713 (points[2].x + points[3].x) / 2, points[2].y);
714
716 {
718 int digits;
719 float value;
720
722 {
723 value = innerFadeDownLen;
724 digits = 2;
725 }
727 {
728 value = innerFadeUpLen;
729 digits = 2;
730 }
732 {
733 value = outerFadeDownLen;
734 digits = 2;
736 {
737 value = outerFadeUpLen;
738 digits = 2;
739 }
740 else
741 {
742 value = duckAmountDb;
743 digits = 1;
744 }
745
747 valueStr += wxT(" ");
748
750
752 else
753
755
756 int textWidth = 0, textHeight = 0;
757 GetTextExtent(valueStr, &textWidth, &textHeight);
758
761
764 else
766
767 dc.DrawText(valueStr, textPosX, textPosY);
768
771 }
772 }
773
774
775 wxPaintDC paintDC(this);
776 paintDC.Blit(0, 0, clientWidth, clientHeight, &dc, 0, 0);
777
778
779 dc.SetPen(wxNullPen);
780 dc.SetBrush(wxNullBrush);
781 dc.SetFont(wxNullFont);
782 dc.SelectObject(wxNullBitmap);
783}
static void Line(wxDC &dc, wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
static void Lines(wxDC &dc, size_t nPoints, const wxPoint points[])
wxTextCtrl * mInnerFadeUpLenBox
wxTextCtrl * mInnerFadeDownLenBox
wxTextCtrl * mOuterFadeDownLenBox
wxTextCtrl * mOuterFadeUpLenBox
wxTextCtrl * mDuckAmountDbBox
static wxString ToDisplayString(double numberToConvert, int digitsAfterDecimalPoint=-1)
Convert a number to a string, uses the user's locale's decimal separator.
wxColour & Colour(int iIndex)