diff options
| author | Robert Jonsson <spamatica@gmail.com> | 2011-03-07 19:01:11 +0000 | 
|---|---|---|
| committer | Robert Jonsson <spamatica@gmail.com> | 2011-03-07 19:01:11 +0000 | 
| commit | e40fc849149dd97c248866a4a1d026dda5e57b62 (patch) | |
| tree | b12b358f3b3a0608001d30403358f8443118ec5f /attic/muse_qt4_evolution/awl/poslabel.cpp | |
| parent | 1bd4f2e8d9745cabb667b043171cad22c8577768 (diff) | |
clean3
Diffstat (limited to 'attic/muse_qt4_evolution/awl/poslabel.cpp')
| -rw-r--r-- | attic/muse_qt4_evolution/awl/poslabel.cpp | 100 | 
1 files changed, 100 insertions, 0 deletions
| diff --git a/attic/muse_qt4_evolution/awl/poslabel.cpp b/attic/muse_qt4_evolution/awl/poslabel.cpp new file mode 100644 index 00000000..638508fd --- /dev/null +++ b/attic/muse_qt4_evolution/awl/poslabel.cpp @@ -0,0 +1,100 @@ +//============================================================================= +//  Awl +//  Audio Widget Library +//  $Id:$ +// +//  Copyright (C) 2002-2006 by Werner Schweer and others +// +//  This program is free software; you can redistribute it and/or modify +//  it under the terms of the GNU General Public License version 2. +// +//  This program is distributed in the hope that it will be useful, +//  but WITHOUT ANY WARRANTY; without even the implied warranty of +//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +//  GNU General Public License for more details. +// +//  You should have received a copy of the GNU General Public License +//  along with this program; if not, write to the Free Software +//  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +//============================================================================= + +#include "poslabel.h" +#include "al/pos.h" + +namespace Awl { + +//--------------------------------------------------------- +//   PosLabel +//--------------------------------------------------------- + +PosLabel::PosLabel(QWidget* parent) +   : 	QLabel(parent) +      { +      _smpte = false; +      setFrameStyle(WinPanel | Sunken); +      setLineWidth(2); +      setMidLineWidth(3); +      int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth); +      setIndent(fw); +      updateValue(); +      } + +//--------------------------------------------------------- +//   sizeHint +//--------------------------------------------------------- + +QSize PosLabel::sizeHint() const +      { +      QFontMetrics fm(font()); +      int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth); +      int h  = fm.height() + fw * 2; +      int w; +      if (_smpte) +            w  = 2 + fm.width('9') * 9 + fm.width(':') * 3 + fw * 4; +      else +            w  = 2 + fm.width('9') * 9 + fm.width('.') * 2 + fw * 4; +      return QSize(w, h).expandedTo(QApplication::globalStrut()); +      } + +//--------------------------------------------------------- +//   updateValue +//--------------------------------------------------------- + +void PosLabel::updateValue() +      { +      QString s; +      if (_smpte) { +            int min, sec, frame, subframe; +            pos.msf(&min, &sec, &frame, &subframe); +            s.sprintf("%03d:%02d:%02d:%02d", min, sec, frame, subframe); +            } +      else { +            int measure, beat, tick; +            pos.mbt(&measure, &beat, &tick); +            s.sprintf("%04d.%02d.%03u", measure+1, beat+1, tick); +            } +      setText(s); +      } + +//--------------------------------------------------------- +//   setValue +//--------------------------------------------------------- + +void PosLabel::setValue(const AL::Pos& val, bool enable) +      { +      setEnabled(enable); +      pos = val; +      updateValue(); +      } + +//--------------------------------------------------------- +//   setSmpte +//--------------------------------------------------------- + +void PosLabel::setSmpte(bool val) +      { +      _smpte = val; +      updateValue(); +      } +} + | 
