1 // -*- C++ -*- 2 /** 3 * \file LayoutBox.h 4 * This file is part of LyX, the document processor. 5 * Licence details can be found in the file COPYING. 6 * 7 * \author Lars Gullik Bjønnes 8 * \author John Levon 9 * \author Jean-Marc Lasgouttes 10 * \author Angus Leeming 11 * \author Abdelrazak Younes 12 * 13 * Full author contact details are available in file CREDITS. 14 */ 15 16 #ifndef LYX_LAYOUT_BOX_H 17 #define LYX_LAYOUT_BOX_H 18 19 #include "support/strfwd.h" 20 21 #include <QComboBox> 22 23 namespace lyx { 24 25 class DocumentClass; 26 class Inset; 27 28 namespace frontend { 29 30 class GuiView; 31 class LayoutItemDelegate; 32 33 class LayoutBox : public QComboBox 34 { 35 Q_OBJECT 36 public: 37 LayoutBox(GuiView &); 38 ~LayoutBox(); 39 40 /// select the right layout in the combobox. 41 void set(docstring const & layout); 42 /// Populate the layout combobox. 43 void updateContents(bool reset); 44 /// Add Item to Layout box according to sorting settings from preferences 45 void addItemSort(docstring const & item, docstring const & category, 46 bool sorted, bool sortedByCat, bool unknown); 47 48 /// 49 void showPopup(); 50 51 /// 52 bool eventFilter(QObject * o, QEvent * e); 53 /// 54 QString const & filter() const; 55 56 private Q_SLOTS: 57 /// 58 void selected(int index); 59 /// 60 void setIconSize(QSize size); 61 62 private: 63 friend class LayoutItemDelegate; 64 class Private; 65 Private * const d; 66 }; 67 68 } // namespace frontend 69 } // namespace lyx 70 71 #endif // LYX_LAYOUT_BOX_H 72