kmail

snippet_widget.h

00001 /*
00002  *  File : snippet_widget.h
00003  *
00004  *  Author: Robert Gruber <rgruber@users.sourceforge.net>
00005  *
00006  *  Copyright: See COPYING file that comes with this distribution
00007  */
00008 
00009 #ifndef __SNIPPET_WIDGET_H__
00010 #define __SNIPPET_WIDGET_H__
00011 
00012 #include <qwidget.h>
00013 #include <qstring.h>
00014 #include <klistview.h>
00015 #include <qtooltip.h>
00016 #include <qrect.h>
00017 
00018 #include <ktexteditor/editinterface.h>
00019 #include <ktexteditor/view.h>
00020 #include "snippetconfig.h"
00021 
00022 class KDevProject;
00023 class SnippetPart;
00024 class QPushButton;
00025 class KListView;
00026 class QListViewItem;
00027 class QPoint;
00028 class SnippetDlg;
00029 class SnippetItem;
00030 class KTextEdit;
00031 class KConfig;
00032 class KMEdit;
00033 
00040 class SnippetWidget : public KListView, public QToolTip
00041 {
00042   Q_OBJECT
00043   
00044 public:
00045     SnippetWidget(KMEdit* editor, QWidget* parent = 0);
00046     ~SnippetWidget();
00047     QPtrList<SnippetItem> * getList() { return (&_list); }
00048     void writeConfig();
00049     SnippetConfig *  getSnippetConfig() { return (&_SnippetConfig); }
00050 
00051 
00052 private slots:
00053     void initConfig();
00054 
00055 protected:
00056     void maybeTip( const QPoint & );
00057     bool acceptDrag (QDropEvent *event) const;
00058 
00059 private:
00060     void insertIntoActiveView(QString text);
00061     QString parseText(QString text, QString del="$");
00062     bool showMultiVarDialog(QMap<QString, QString> * map, QMap<QString, QString> * mapSave,
00063                             int & iWidth, int & iBasicHeight, int & iOneHeight);
00064     QString showSingleVarDialog(QString var, QMap<QString, QString> * mapSave, QRect & dlgSize);
00065 
00066     QPtrList<SnippetItem> _list;
00067     QMap<QString, QString> _mapSaved;
00068     KConfig * _cfg;
00069     SnippetConfig _SnippetConfig;
00070     KMEdit* mEditor;
00071 
00072 public slots:
00073     void slotRemove();
00074     void slotEdit( QListViewItem* item_ = 0 );
00075     void slotEditGroup();
00076     void slotAdd();
00077     void slotAddGroup();
00078     void slotExecute();
00079 
00080 protected slots:
00081     void showPopupMenu( QListViewItem * item, const QPoint & p, int );
00082     void slotExecuted(QListViewItem * item =  0);
00083     void slotDropped(QDropEvent *e, QListViewItem *after);
00084     void startDrag();
00085 };
00086 
00087 
00088 #endif
KDE Home | KDE Accessibility Home | Description of Access Keys