1 #pragma once 2 3 #include "lib/settings.hpp" 4 5 #include "menu/mainmenu.hpp" 6 #include "spotify/spotify.hpp" 7 #include "util/icon.hpp" 8 #include "widget/volumebutton.hpp" 9 #include "widget/clickableslider.hpp" 10 #include "widget/dragarea.hpp" 11 12 #include <QToolBar> 13 #include <QToolButton> 14 #include <QSizeGrip> 15 16 class MainToolBar: public QToolBar 17 { 18 Q_OBJECT 19 20 public: 21 MainToolBar(lib::spt::api &spotify, lib::settings &settings, 22 const lib::http_client &httpClient, lib::cache &cache, QWidget *parent); 23 24 void showTitleBarButtons(bool show); 25 void setPlaying(bool playing); 26 void setProgress(int current, int duration); 27 void setProgress(const lib::spt::playback &playback); 28 void setVolume(int volume); 29 void setRepeat(lib::repeat_state state); 30 void setShuffle(bool shuffle); 31 void setPositionFont(const QFont &font); 32 void setSearchChecked(bool checked); 33 34 protected: 35 void resizeEvent(QResizeEvent *event) override; 36 37 private: 38 void onPlayPause(bool checked); 39 void onPrevious(bool checked); 40 void onNext(bool checked); 41 void onProgressReleased(); 42 void onShuffle(bool checked); 43 void onRepeat(bool checked); 44 void onMinimize(bool checked); 45 46 QAction *search = nullptr; 47 QAction *playPause = nullptr; 48 QWidget *parent = nullptr; 49 QSlider *progress = nullptr; 50 QLabel *position = nullptr; 51 QAction *shuffle = nullptr; 52 QAction *repeat = nullptr; 53 VolumeButton *volumeButton = nullptr; 54 55 lib::spt::api &spotify; 56 lib::settings &settings; 57 58 DragArea *leftSpacer = nullptr; 59 DragArea *rightSpacer = nullptr; 60 61 QAction *titleBarSeparator = nullptr; 62 QAction *minimize = nullptr; 63 QAction *close = nullptr; 64 }; 65