00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef PANELMENUITEMINFO_H
00025 #define PANELMENUITEMINFO_H
00026
00027 #include <tqpopupmenu.h>
00028 #include <tqstring.h>
00029
00030 #include <kiconloader.h>
00031
00032
00033
00034
00035 class PanelMenuItemInfo
00036 {
00037 public:
00038 PanelMenuItemInfo()
00039 : m_recvr(0), m_id(-1) {}
00040
00041 PanelMenuItemInfo(const TQString& iconName, const TQString& visibleName, const TQObject* recvr, const TQCString& slot, int id = -1)
00042 : m_icon(iconName), m_name(visibleName), m_slot_(slot), m_recvr(recvr), m_id(id) {}
00043
00044 PanelMenuItemInfo(const TQString& iconName, const TQString& visibleName, int id = -1)
00045 : m_icon(iconName), m_name(visibleName), m_recvr(0), m_id(id) {}
00046
00047 PanelMenuItemInfo(const PanelMenuItemInfo& c)
00048 : m_icon(c.m_icon), m_name(c.m_name), m_slot_(c.m_slot_), m_recvr(c.m_recvr), m_id(c.m_id) {}
00049
00050 PanelMenuItemInfo& operator=(const PanelMenuItemInfo& c)
00051 {
00052 m_icon = c.m_icon;
00053 m_name = c.m_name;
00054 m_slot_ = c.m_slot_;
00055 m_recvr = c.m_recvr;
00056 m_id = c.m_id;
00057 return *this;
00058 }
00059
00060 bool operator<(const PanelMenuItemInfo& rh)
00061 {
00062 return m_name.lower() < rh.m_name.lower();
00063 }
00064
00065 bool operator<=(const PanelMenuItemInfo& rh)
00066 {
00067 return m_name.lower() <= rh.m_name.lower();
00068 }
00069
00070 bool operator>(const PanelMenuItemInfo& rh)
00071 {
00072 return m_name.lower() > rh.m_name.lower();
00073 }
00074
00075 int plug(TQPopupMenu* menu)
00076 {
00077 if (!m_icon.isEmpty() && m_icon != "unknown")
00078 {
00079 if (m_recvr && !m_slot_.isEmpty())
00080 {
00081 return menu->insertItem(SmallIconSet(m_icon), m_name, m_recvr, m_slot_, 0, m_id);
00082 }
00083
00084 return menu->insertItem(SmallIconSet(m_icon), m_name, m_id);
00085 }
00086 else if (m_recvr && !m_slot_.isEmpty())
00087 {
00088 return menu->insertItem(m_name, m_recvr, m_slot_, 0, m_id);
00089 }
00090
00091 return menu->insertItem(m_name, m_id);
00092 }
00093
00094 private:
00095 TQString m_icon;
00096 TQString m_name;
00097 TQCString m_slot_;
00098 const TQObject* m_recvr;
00099 int m_id;
00100 };
00101
00102 #endif
00103