📄 nlistview.h
字号:
#ifndef NLISTVIEW_H#define NLISTVIEW_H//! @addtogroup libarchos//! @{#include <qpixmap.h>#include <qscrollview.h>#include <qstringlist.h>class QImage;class QLineEdit;class NListViewData;QImage blendIcons(const QImage &a, const QImage &b);class NListSource : public QObject { Q_OBJECT public: virtual ~NListSource(); virtual uint count() const= 0; virtual QPixmap icon(uint index) const= 0; virtual QString text(uint index, uint col= 0) const= 0; virtual int indent(uint index) const= 0; signals: void itemCountChanged(uint cnt); void itemsChanged(uint start, uint span); protected: NListSource(QObject *parent, const char *name= NULL);};class NListView : public QScrollView { Q_OBJECT public: NListView(NListSource *src, QWidget *parent, const char *name= NULL); virtual ~NListView(); virtual NListSource* source(); void setSource(NListSource *src); uint columns() const; void setColumns(uint cnt); int columnWidth(uint col) const; void setColumnWidth(uint col, int pixelwidth); virtual bool select(const QString &text); void setSelection(int pos, int cnt= 1, bool ensure_visible= true, bool update= true); uint selection(uint *cnt= NULL) const; QStringList selectionList(); virtual bool eventFilter(QObject *, QEvent *); public slots: virtual void selectAll(); virtual void editSelection(); signals: void selected(uint index); void activated(uint index); void selectionEdited(const QString &newtext); void resizedContents(int width, int height); protected slots: void ensureSelectionVisible(); protected: QLineEdit *m_ledit; uint m_selpos, m_selcnt, m_item_height, m_tapped_index; bool m_tapped_border; QRect areaFor(int index, int cnt= 1) const; bool isOnText(const QPoint &pos) const; virtual void keyPressEvent(QKeyEvent *evt); virtual void resizeEvent(QResizeEvent *evt); virtual void contentsMousePressEvent(QMouseEvent *evt); virtual void contentsMouseMoveEvent(QMouseEvent *evt); virtual void contentsMouseDoubleClickEvent(QMouseEvent *evt); virtual void drawContents(QPainter *p, int x, int y, int w, int h); virtual void focusInEvent(QFocusEvent*); virtual void focusOutEvent(QFocusEvent*); private slots: void onItemsChanged(uint start, uint span); void onItemCountChanged(uint cnt); void prepareAnimation(); void animateSelection(); void animate(); private: NListViewData *m; NListSource *m_src; NListView(const NListView &obj); NListView& operator=(const NListView &obj); uint indexAt(int ypos) const; void restrictRange(int &index, int &cnt) const; void renderItem(QPainter *p, uint index, bool selected); QRect selectionArea(QPainter *p) const;};extern QString fitString(const QFontMetrics &fm, QString s, int len);//! @}#endif // NLISTVIEW_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -