• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

kdeui

kguiitem.cpp

Go to the documentation of this file.
00001 /* This file is part of the KDE libraries
00002     Copyright (C) 2001 Holger Freyther (freyher@yahoo.com)
00003                   based on ideas from Martijn and Simon
00004                   many thanks to Simon
00005           
00006     This library is free software; you can redistribute it and/or
00007     modify it under the terms of the GNU Library General Public
00008     License version 2 as published by the Free Software Foundation.
00009 
00010     This library is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013     Library General Public License for more details.
00014 
00015     You should have received a copy of the GNU Library General Public License
00016     along with this library; see the file COPYING.LIB.  If not, write to
00017     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00018     Boston, MA 02110-1301, USA.
00019 */
00020 
00021 #include <qregexp.h>
00022 #include <qstring.h>
00023 #include <qiconset.h>
00024 #include <qpixmap.h>
00025 
00026 #include <assert.h>
00027 #include <kiconloader.h>
00028 #include <kdebug.h>
00029 
00030 #include "kguiitem.h"
00031 
00032 class KGuiItem::KGuiItemPrivate
00033 {
00034 public:
00035     KGuiItemPrivate()
00036     {
00037         m_enabled = true;
00038         m_hasIcon = false;
00039     }
00040 
00041     KGuiItemPrivate( const KGuiItemPrivate &rhs )
00042     {
00043         ( *this ) = rhs;
00044     }
00045 
00046     KGuiItemPrivate &operator=( const KGuiItemPrivate &rhs )
00047     {
00048         m_text = rhs.m_text;
00049         m_iconSet = rhs.m_iconSet;
00050         m_iconName = rhs.m_iconName;
00051         m_toolTip = rhs.m_toolTip;
00052         m_whatsThis = rhs.m_whatsThis;
00053         m_statusText = rhs.m_statusText;
00054         m_enabled = rhs.m_enabled;
00055         m_hasIcon = rhs.m_hasIcon;
00056 
00057         return *this;
00058     }
00059 
00060     QString m_text;
00061     QString m_toolTip;
00062     QString m_whatsThis;
00063     QString m_statusText;
00064     QString m_iconName;
00065     QIconSet m_iconSet;
00066     bool m_hasIcon : 1;
00067     bool m_enabled : 1;
00068 };
00069 
00070 
00071 KGuiItem::KGuiItem() {
00072     d = new KGuiItemPrivate;
00073 }
00074 
00075 KGuiItem::KGuiItem( const QString &text,    const QString &iconName,
00076                     const QString &toolTip, const QString &whatsThis )
00077 {
00078     d = new KGuiItemPrivate;
00079     d->m_text = text;
00080     d->m_toolTip = toolTip;
00081     d->m_whatsThis = whatsThis;
00082     setIconName( iconName );
00083 }
00084 
00085 KGuiItem::KGuiItem( const QString &text,    const QIconSet &iconSet,
00086                     const QString &toolTip, const QString &whatsThis )
00087 {
00088     d = new KGuiItemPrivate;
00089     d->m_text = text;
00090     d->m_toolTip = toolTip;
00091     d->m_whatsThis = whatsThis;
00092     setIconSet( iconSet );
00093 }
00094 
00095 KGuiItem::KGuiItem( const KGuiItem &rhs )
00096     : d( 0 )
00097 {
00098     ( *this ) = rhs;
00099 }
00100 
00101 KGuiItem &KGuiItem::operator=( const KGuiItem &rhs )
00102 {
00103     if ( d == rhs.d )
00104         return *this;
00105 
00106     assert( rhs.d );
00107 
00108     delete d;
00109     d = new KGuiItemPrivate( *rhs.d );
00110 
00111     return *this;
00112 }
00113 
00114 KGuiItem::~KGuiItem()
00115 {
00116     delete d;
00117 }
00118 
00119 QString KGuiItem::text() const
00120 {
00121     return d->m_text;
00122 }
00123 
00124 
00125 QString KGuiItem::plainText() const
00126 {
00127     const int len = d->m_text.length();
00128 
00129     if (len == 0)
00130         return d->m_text;
00131 
00132     //Can assume len >= 1 from now on.
00133     QString stripped;
00134 
00135     int resultLength = 0;
00136     stripped.setLength(len);
00137 
00138     const QChar* data    = d->m_text.unicode();
00139     for ( int pos = 0; pos < len; ++pos )
00140     {
00141         if ( data[ pos ] != '&' )
00142             stripped[ resultLength++ ] = data[ pos ];
00143         else if ( pos + 1 < len && data[ pos + 1 ] == '&' )
00144             stripped[ resultLength++ ] = data[ pos++ ];
00145     }
00146 
00147     stripped.truncate(resultLength);
00148 
00149     return stripped;
00150 }
00151 
00152 QIconSet KGuiItem::iconSet( KIcon::Group group, int size, KInstance* instance ) const
00153 {
00154     if( d->m_hasIcon )
00155     {
00156         if( !d->m_iconName.isEmpty())
00157         {
00158 // some caching here would(?) come handy
00159             return instance->iconLoader()->loadIconSet( d->m_iconName, group, size, true, false );
00160         }
00161         else
00162         {
00163             return d->m_iconSet;
00164         }
00165     }
00166     else
00167         return QIconSet();
00168 }
00169 
00170 QString KGuiItem::iconName() const
00171 {
00172     return d->m_iconName;
00173 }
00174 
00175 QString KGuiItem::toolTip() const
00176 {
00177     return d->m_toolTip;
00178 }
00179 
00180 QString KGuiItem::whatsThis() const
00181 {
00182     return d->m_whatsThis;
00183 }
00184 
00185 bool KGuiItem::isEnabled() const
00186 {
00187     return d->m_enabled;
00188 }
00189 
00190 bool KGuiItem::hasIcon() const
00191 {
00192     return d->m_hasIcon;
00193 }
00194 
00195 void KGuiItem::setText( const QString &text ) {
00196     d->m_text=text;
00197 }
00198 
00199 void KGuiItem::setIconSet( const QIconSet &iconset )
00200 {
00201     d->m_iconSet = iconset;
00202     d->m_iconName = QString::null;
00203     d->m_hasIcon = !iconset.isNull();
00204 }
00205 
00206 void KGuiItem::setIconName( const QString &iconName )
00207 {
00208     d->m_iconName = iconName;
00209     d->m_iconSet = QIconSet();
00210     d->m_hasIcon = !iconName.isEmpty();
00211 }
00212 
00213 void KGuiItem::setToolTip( const QString &toolTip )
00214 {
00215     d->m_toolTip = toolTip;
00216 }
00217 
00218 void KGuiItem::setWhatsThis( const QString &whatsThis )
00219 {
00220     d->m_whatsThis = whatsThis;
00221 }
00222 
00223 void KGuiItem::setEnabled( bool enabled )
00224 {
00225     d->m_enabled = enabled;
00226 }
00227 
00228 // vim: set et sw=4:
00229 

kdeui

Skip menu "kdeui"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal