meter.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. This file is part of QTau
  3. Copyright (C) 2013-2018 Tobias "Tomoko" Platen <tplaten@posteo.de>
  4. Copyright (C) 2013 digited <https://github.com/digited>
  5. Copyright (C) 2010-2013 HAL@ShurabaP <https://github.com/haruneko>
  6. QTau is free software: you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation, either version 3 of the License, or
  9. (at your option) any later version.
  10. This program is distributed in the hope that it will be useful,
  11. but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. GNU General Public License for more details.
  14. You should have received a copy of the GNU General Public License
  15. along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. SPDX-License-Identifier: GPL-3.0+
  17. */
  18. #ifndef METER_H
  19. #define METER_H
  20. #include <QLineEdit>
  21. #include <QWidget>
  22. #include "Utils.h"
  23. #include "tempomap.h"
  24. class QPixmap;
  25. class qtauMeterBar : public QWidget {
  26. Q_OBJECT
  27. public:
  28. qtauMeterBar(QWidget *parent = 0);
  29. ~qtauMeterBar();
  30. void setOffset(int off);
  31. void configure2(SNoteSetup &newSetup);
  32. signals:
  33. void scrolled(int delta);
  34. void zoomed(int delta);
  35. void barClicked(int bar, tmlabel mode);
  36. public slots:
  37. protected:
  38. void paintEvent(QPaintEvent *event);
  39. void resizeEvent(QResizeEvent *event);
  40. void mouseDoubleClickEvent(QMouseEvent *event);
  41. void mouseMoveEvent(QMouseEvent *event);
  42. void mousePressEvent(QMouseEvent *event);
  43. void mouseReleaseEvent(QMouseEvent *event);
  44. void wheelEvent(QWheelEvent *event);
  45. int _offset;
  46. SNoteSetup _ns;
  47. };
  48. class MeterBarLineEdit : public QLineEdit {
  49. Q_OBJECT
  50. public:
  51. MeterBarLineEdit();
  52. protected:
  53. void keyPressEvent(QKeyEvent *event);
  54. signals:
  55. void keyPressHooked(int key);
  56. };
  57. #endif // METER_H