/*************************************************************************** * snippet feature from tdevelop/plugins/snippet/ * * * * Copyright (C) 2007 by Robert Gruber * * rgruber@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef __SNIPPET_WIDGET_H__ #define __SNIPPET_WIDGET_H__ #include #include #include #include #include #include #include #include "snippetconfig.h" class KDevProject; class SnippetPart; class TQPushButton; class KListView; class TQListViewItem; class TQPoint; class SnippetDlg; class SnippetItem; class KTextEdit; class KConfig; class KMEdit; class KActionCollection; /** This is the widget which gets added to the right TreeToolView. It inherits KListView and TQToolTip which is needed for showing the tooltips which contains the text of the snippet @author Robert Gruber */ class SnippetWidget : public KListView, public TQToolTip { Q_OBJECT public: SnippetWidget(KMEdit* editor, KActionCollection* actionCollection, TQWidget* parent = 0); ~SnippetWidget(); TQPtrList * getList() { return (&_list); } void writeConfig(); SnippetConfig * getSnippetConfig() { return (&_SnippetConfig); } private slots: void initConfig(); protected: void maybeTip( const TQPoint & ); bool acceptDrag (TQDropEvent *event) const; private: void insertIntoActiveView( const TQString &text ); TQString parseText(TQString text, TQString del="$"); bool showMultiVarDialog(TQMap * map, TQMap * mapSave, int & iWidth, int & iBasicHeight, int & iOneHeight); TQString showSingleVarDialog(TQString var, TQMap * mapSave, TQRect & dlgSize); SnippetItem* makeItem( SnippetItem* parent, const TQString& name, const TQString& text, const KShortcut& shortcut ); TQPtrList _list; TQMap _mapSaved; KConfig * _cfg; SnippetConfig _SnippetConfig; KMEdit* mEditor; KActionCollection* mActionCollection; public slots: void slotRemove(); void slotEdit( TQListViewItem* item_ = 0 ); void slotEditGroup(); void slotAdd(); void slotAddGroup(); void slotExecute(); protected slots: void showPopupMenu( TQListViewItem * item, const TQPoint & p, int ); void slotExecuted(TQListViewItem * item = 0); void slotDropped(TQDropEvent *e, TQListViewItem *after); void startDrag(); }; #endif