summaryrefslogtreecommitdiffstats
path: root/kicker/kicker/ui/itemview.h
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-09-03 20:49:48 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-09-03 20:49:48 +0000
commitfd7a608ffe99df747f0496300276b95f766c18b9 (patch)
treec54dfe97fb682af9705d2cb09c424c60db861228 /kicker/kicker/ui/itemview.h
parent27856879bf962f178d88e79144e37a47e731b122 (diff)
downloadtdebase-fd7a608ffe99df747f0496300276b95f766c18b9.tar.gz
tdebase-fd7a608ffe99df747f0496300276b95f766c18b9.zip
* Added Kickoff menu
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1171422 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kicker/kicker/ui/itemview.h')
-rw-r--r--kicker/kicker/ui/itemview.h260
1 files changed, 260 insertions, 0 deletions
diff --git a/kicker/kicker/ui/itemview.h b/kicker/kicker/ui/itemview.h
new file mode 100644
index 000000000..c8b95ee42
--- /dev/null
+++ b/kicker/kicker/ui/itemview.h
@@ -0,0 +1,260 @@
+/*****************************************************************
+
+Copyright (c) 1996-2000 the kicker authors. See file AUTHORS.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************************************/
+
+#ifndef __itemview_h__
+#define __itemview_h__
+
+#include <dcopobject.h>
+#include <tqintdict.h>
+#include <tqpixmap.h>
+#include <tqframe.h>
+#include <tqtoolbutton.h>
+#include <klistview.h>
+#include <tqdragobject.h>
+
+#include "kmenubase.h"
+#include "kmenuitembase.h"
+#include "service_mnu.h"
+
+class KickerClientMenu;
+class KBookmarkMenu;
+class KActionCollection;
+class KBookmarkOwner;
+class Panel;
+class TQWidgetStack;
+class KHistoryCombo;
+class TQScrollView;
+class PopupMenuTitle;
+class TQWidget;
+class TQVBoxLayout;
+class TQTimer;
+class KPixmap;
+
+class KMenuItem : public TQListViewItem
+{
+public:
+ KMenuItem(int nId, TQListView* parent) : TQListViewItem(parent), m_id(nId) { init(); }
+ KMenuItem(int nId, TQListViewItem* parent) : TQListViewItem(parent), m_id(nId) { init(); }
+ ~KMenuItem();
+
+ void setIcon(const TQString& icon, int size);
+ TQString icon() const { return m_icon; }
+ void setTitle( const TQString& text );
+ TQString title() const { return m_title; }
+ void setToolTip( const TQString& text );
+ TQString toolTip() const { return m_tooltip; }
+ void setDescription(const TQString& text);
+ TQString description() const { return m_description; }
+ void setService(KService::Ptr& s) { m_s = s; }
+ KService::Ptr service() { return m_s; }
+ void setPath(const TQString& u) { m_path = u; }
+ TQString path() const { return m_path; }
+ void setMenuPath(const TQString& u) { m_menuPath = u; }
+ TQString menuPath() const { return m_menuPath; }
+ int id() const { return m_id; }
+ void setHasChildren(bool flag);
+ bool hasChildren() const { return m_has_children; }
+ void makeGradient(KPixmap &off, const TQColor& c);
+
+protected:
+ virtual void paintCell(TQPainter* p, const TQColorGroup & cg, int column, int width, int align);
+ virtual void paintCellInter(TQPainter* p, const TQColorGroup & cg, int column, int width, int align);
+ virtual void setup();
+
+private:
+ void init();
+
+ int m_id;
+ KService::Ptr m_s;
+ TQString m_title;
+ TQString m_description;
+ TQString m_path;
+ TQString m_icon;
+ TQString m_tooltip;
+ TQString m_menuPath;
+ float title_font_size;
+ float description_font_size;
+ bool m_has_children;
+ int m_old_width;
+ TQPixmap right_triangle;
+};
+
+class KMenuItemSeparator : public KMenuItem
+{
+public:
+ KMenuItemSeparator(int nId, TQListView* parent);
+ virtual void setup();
+
+ virtual void paintCell(TQPainter* p, const TQColorGroup & cg, int column, int width, int align);
+ void setLink(const TQString &text, const TQString &link = TQString::null );
+
+ TQString linkUrl() const { return m_link_url; }
+
+ /// returns true if the cursor has to change
+ bool hitsLink(const TQPoint &pos);
+
+protected:
+ void preparePixmap(int width);
+ TQPixmap pixmap;
+ int left_margin;
+
+private:
+ TQListView* lv;
+ int cached_width;
+ TQString m_link_text, m_link_url;
+ TQRect m_link_rect;
+
+};
+
+class KMenuItemHeader : public KMenuItemSeparator
+{
+public:
+ KMenuItemHeader( int nId, const TQString &relpath, TQListView* parent);
+ virtual void setup();
+
+ virtual void paintCell(TQPainter* p, const TQColorGroup & cg, int column, int width, int align);
+
+private:
+ TQListView* lv;
+ TQStringList paths;
+ TQStringList texts;
+ TQStringList icons;
+ TQPixmap left_triangle;
+};
+
+class KMenuSpacer : public KMenuItem
+{
+public:
+ KMenuSpacer(int nId, TQListView* parent);
+ virtual void paintCell(TQPainter* p, const TQColorGroup & cg, int column, int width, int align);
+ virtual void setup();
+
+ void setHeight(int);
+};
+
+class ItemView : public KListView
+{
+ friend class KMenuItem;
+
+ Q_OBJECT
+public:
+ ItemView(TQWidget* parent, const char* name = 0);
+
+ KMenuItem* insertItem( const TQString& icon, const TQString& text, const TQString& description, int nId, int nIndex, KMenuItem* parentItem = 0 );
+ KMenuItem* insertItem( const TQString& icon, const TQString& text, const TQString& description, const TQString& path, int nId, int nIndex, KMenuItem* parentItem = 0 );
+ int insertItem( PopupMenuTitle*, int, int);
+ int setItemEnabled(int id, bool enabled);
+ KMenuItemSeparator *insertSeparator(int id, const TQString& text, int nIndex);
+ KMenuItemHeader *insertHeader(int id, const TQString &relpath);
+ KMenuItem* insertMenuItem(KService::Ptr & s, int nId, int nIndex = -1, KMenuItem* parentItem = 0,
+ const TQString &aliasname = TQString::null, const TQString &label = TQString::null,
+ const TQString &categoryIcon = TQString::null);
+ KMenuItem* insertRecentlyItem(const TQString& s, int nId, int nIndex = -1);
+ KMenuItem* insertDocumentItem(const TQString& s, int nId, int nIndex = -1 , const TQStringList* suppressGenericNames = 0,
+ const TQString& aliasname = TQString::null);
+ KMenuItem* insertSubItem(const TQString& icon, const TQString& caption, const TQString& description, const TQString& path, KMenuItem* parentItem);
+ KMenuItem* findItem(int nId);
+
+ void setIconSize(int size) { m_iconSize = size; }
+ void setMouseMoveSelects(bool select) { m_mouseMoveSelects = select; }
+ void clear();
+ int goodHeight();
+ TQString path;
+ void setBackPath( const TQString &str ) { m_back_url = str; }
+ TQString backPath() const { return m_back_url; }
+
+public slots:
+ void slotItemClicked(TQListViewItem*);
+ void slotMoveContent();
+
+signals:
+ void startService(KService::Ptr kservice);
+ void startURL(const TQString& u);
+
+protected:
+ void contentsMouseMoveEvent(TQMouseEvent *e);
+ void contentsMousePressEvent ( TQMouseEvent * e );
+ void contentsWheelEvent(TQWheelEvent *e);
+ void leaveEvent(TQEvent *e);
+ virtual void resizeEvent ( TQResizeEvent * e );
+ virtual void viewportPaintEvent ( TQPaintEvent * pe );
+ virtual TQDragObject* dragObject ();
+ virtual bool acceptDrag (TQDropEvent* event) const;
+ virtual bool focusNextPrevChild(bool next);
+
+private slots:
+ void slotItemClicked(int button, TQListViewItem * item, const TQPoint & pos, int c );
+
+private:
+ KMenuItem* itemAtIndex(int nIndex);
+ void moveItemToIndex(KMenuItem*, int);
+
+ TQWidget* m_itemBox;
+ TQVBoxLayout* m_itemLayout;
+ KMenuItem *m_lastOne;
+ KMenuSpacer *m_spacer;
+
+ TQString m_back_url;
+
+ bool m_mouseMoveSelects;
+ int m_iconSize;
+ int m_old_contentY;
+};
+
+class FavoritesItemView : public ItemView
+{
+public:
+ FavoritesItemView(TQWidget* parent, const char* name = 0);
+
+protected:
+ virtual bool acceptDrag (TQDropEvent* event) const;
+};
+
+class KMenuItemInfo
+{
+public:
+ int m_id;
+ KService::Ptr m_s;
+ TQString m_title;
+ TQString m_description;
+ TQString m_path;
+ TQString m_icon;
+};
+
+class KMenuItemDrag : public TQDragObject
+{
+ public:
+ KMenuItemDrag(KMenuItem& item, TQWidget *dragSource);
+ ~KMenuItemDrag();
+
+ virtual const char * format(int i = 0) const;
+ virtual TQByteArray encodedData(const char *) const;
+
+ static bool canDecode(const TQMimeSource * e);
+ static bool decode(const TQMimeSource* e, KMenuItemInfo& item);
+
+ private:
+ TQByteArray a;
+};
+
+#endif