#ifndef YACREADER_MACOSX_TOOLBAR_H #define YACREADER_MACOSX_TOOLBAR_H #include #include #include "yacreader_global.h" //Wrapper for NSTextField class YACReaderMacOSXSearchLineEdit : public QObject { Q_OBJECT public: YACReaderMacOSXSearchLineEdit(); void * getNSTextField(); public slots: QString text(); void clear(); void clearText(); //no signal emited void setDisabled(bool disabled); void setEnabled(bool enabled); private: void * nstextfield; signals: //convenience signal for YACReaderLibrary search edit void filterChanged(YACReader::SearchModifiers, QString); }; class MacToolBarItemWrapper : public QObject { Q_OBJECT public: MacToolBarItemWrapper(QAction * action, QMacToolBarItem * toolbaritem); public slots: void actionToggled(bool toogled); private: QAction * action; QMacToolBarItem * toolbaritem; void updateIcon(bool checked); }; class YACReaderMacOSXToolbar : public QMacToolBar { Q_OBJECT public: explicit YACReaderMacOSXToolbar(QObject *parent = 0); void addAction(QAction * action); void addDropDownItem(const QList & actions, const QAction * defaultAction = 0); void addSpace(int size); //size in points void addSeparator(); void addStretch(); void addWidget(QWidget * widget); void show(); void hide(); QMap actions; //hacks everywhere //convenience method for YACReaderLibrary search edit YACReaderMacOSXSearchLineEdit *addSearchEdit(); //convenience method for showing the fit to width slider in MacOSX QAction * addFitToWidthSlider(QAction * attachToAction); //convenience method for switching the icon of the view selector void updateViewSelectorIcon(const QIcon & icon); signals: public slots: protected: NSToolbar * nativeToolBar; void *delegate; bool yosemite; QMacToolBarItem * viewSelector; }; #endif // YACREADER_MACOSX_TOOLBAR_H