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

KDEUI

kstartupinfo.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 
00003  Copyright (C) 2001-2003 Lubos Lunak        <l.lunak@kde.org>
00004 
00005 Permission is hereby granted, free of charge, to any person obtaining a
00006 copy of this software and associated documentation files (the "Software"),
00007 to deal in the Software without restriction, including without limitation
00008 the rights to use, copy, modify, merge, publish, distribute, sublicense,
00009 and/or sell copies of the Software, and to permit persons to whom the
00010 Software is furnished to do so, subject to the following conditions:
00011 
00012 The above copyright notice and this permission notice shall be included in
00013 all copies or substantial portions of the Software.
00014 
00015 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00016 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00017 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00018 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00019 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00020 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00021 DEALINGS IN THE SOFTWARE.
00022 
00023 ****************************************************************************/
00024 
00025 #ifndef KSTARTUPINFO_H
00026 #define KSTARTUPINFO_H
00027 
00028 #include <kdeui_export.h>
00029 
00030 #include <QtCore/QObject>
00031 #include <QtCore/QString>
00032 #include <QtCore/QChildEvent>
00033 #include <QtGui/QWidgetList>
00034 
00035 #include <sys/types.h>
00036 
00037 #if !defined(Q_WS_X11)
00038 typedef void Display;
00039 #endif
00040 
00041 class KStartupInfoId;
00042 class KStartupInfoData;
00043 
00064 class KDEUI_EXPORT KStartupInfo
00065     : public QObject
00066     {
00067     Q_OBJECT
00068     public:
00076         static void disableAutoAppStartedSending( bool disable = true );
00077 
00085         static void appStarted();
00086 
00091         static void appStarted( const QByteArray& startup_id );
00092 
00101         static void setNewStartupId( QWidget* window, const QByteArray& startup_id );
00102 
00111         static void silenceStartup( bool silence );
00112 
00117         static QByteArray createNewStartupId();
00121     enum {
00122         CleanOnCantDetect       = 1 << 0,
00123         DisableKWinModule       = 1 << 1,
00124         AnnounceSilenceChanges  = 1 << 2
00125         };
00126 
00144     explicit KStartupInfo( int flags, QObject* parent = 0 );
00155         explicit KStartupInfo( bool clean_on_cantdetect, QObject* parent = 0 );
00156         virtual ~KStartupInfo();
00169         static bool sendStartup( const KStartupInfoId& id, const KStartupInfoData& data );
00170 
00179         static bool sendStartupX( Display* dpy, const KStartupInfoId& id,
00180             const KStartupInfoData& data );
00181 
00192         static bool sendChange( const KStartupInfoId& id, const KStartupInfoData& data );
00193 
00201         static bool sendChangeX( Display* dpy, const KStartupInfoId& id,
00202             const KStartupInfoData& data );
00203 
00209         static bool sendFinish( const KStartupInfoId& id );
00210 
00217         static bool sendFinishX( Display* dpy, const KStartupInfoId& id );
00218 
00226         static bool sendFinish( const KStartupInfoId& id, const KStartupInfoData& data );
00227 
00235         static bool sendFinishX( Display* dpy, const KStartupInfoId& id,
00236             const KStartupInfoData& data );
00237 
00244         static KStartupInfoId currentStartupIdEnv();
00248         static void resetStartupEnv();
00255         enum startup_t { NoMatch, Match, CantDetect };
00261         startup_t checkStartup( WId w );
00269         startup_t checkStartup( WId w, KStartupInfoId& id );
00277         startup_t checkStartup( WId w, KStartupInfoData& data );
00286         startup_t checkStartup( WId w, KStartupInfoId& id, KStartupInfoData& data );
00291         void setTimeout( unsigned int secs );
00297         static void setWindowStartupId( WId window, const QByteArray& id );
00303         static QByteArray windowStartupId( WId w );
00307         static void handleAutoAppStartedSending();
00311         class Data;
00312         
00316         class Private;
00317     Q_SIGNALS:
00324         void gotNewStartup( const KStartupInfoId& id, const KStartupInfoData& data );
00330         void gotStartupChange( const KStartupInfoId& id, const KStartupInfoData& data );
00337         void gotRemoveStartup( const KStartupInfoId& id, const KStartupInfoData& data );
00338 
00339     protected:
00343     virtual void customEvent( QEvent* e_P );
00344 
00345     private:
00346         Q_PRIVATE_SLOT(d, void startups_cleanup())
00347         Q_PRIVATE_SLOT(d, void startups_cleanup_no_age())
00348         Q_PRIVATE_SLOT(d, void got_message( const QString& msg ))
00349         Q_PRIVATE_SLOT(d, void window_added( WId w ))
00350         Q_PRIVATE_SLOT(d, void slot_window_added( WId w ))
00351 
00352         Private* const d;
00353 
00354         Q_DISABLE_COPY(KStartupInfo)
00355     };
00356 
00368 class KDEUI_EXPORT KStartupInfoId
00369     {
00370     public:
00375         bool operator==( const KStartupInfoId& id ) const;
00380         bool operator!=( const KStartupInfoId& id ) const;
00385         bool none() const;
00393         void initId( const QByteArray& id = "" );
00398         const QByteArray& id() const;
00403         unsigned long timestamp() const;
00408         bool setupStartupEnv() const;
00412         KStartupInfoId();
00416         KStartupInfoId( const KStartupInfoId& data );
00417         ~KStartupInfoId();
00418         KStartupInfoId& operator=( const KStartupInfoId& data );
00419         bool operator<( const KStartupInfoId& id ) const;
00420     private:
00421         explicit KStartupInfoId( const QString& txt );
00422         friend class KStartupInfo;
00423         friend class KStartupInfo::Private;
00424         struct Private;
00425         Private *const d;
00426     };
00427 
00439 class KDEUI_EXPORT KStartupInfoData
00440     {
00441     public:
00446         void setBin( const QString& bin );
00451         const QString& bin() const;
00455         void setName( const QString& name );
00461         const QString& findName() const;
00467         const QString& name() const;
00473         void setDescription( const QString& descr );
00479         const QString& findDescription() const;
00485         const QString& description() const;
00490         void setIcon( const QString& icon );
00497         const QString& findIcon() const;
00502         const QString& icon() const;
00508         void setDesktop( int desktop );
00513         int desktop() const;
00520         void setWMClass( const QByteArray& wmclass );
00527         const QByteArray findWMClass() const;
00533         QByteArray WMClass() const;
00541         void addPid( pid_t pid );
00546         QList< pid_t > pids() const;
00552         bool is_pid( pid_t pid ) const;
00558         void setHostname( const QByteArray& hostname = QByteArray());
00563         QByteArray hostname() const;
00564 
00568     enum TriState { Yes, No, Unknown };
00569 
00574     void setSilent( TriState state );
00575 
00580     TriState silent() const;
00581 
00590         void setTimestamp( unsigned long time );
00591 
00597         unsigned long timestamp() const;
00598 
00602         int screen() const;
00603 
00608         void setScreen( int screen );
00609         
00613         int xinerama() const;
00614 
00620         void setXinerama( int xinerama );
00621 
00626         WId launchedBy() const;
00627         
00632         void setLaunchedBy( WId window );
00633 
00639         void update( const KStartupInfoData& data );
00640 
00644         KStartupInfoData();
00645 
00649         KStartupInfoData( const KStartupInfoData& data );
00650         ~KStartupInfoData();
00651         KStartupInfoData& operator=( const KStartupInfoData& data );
00652     private:
00653         explicit KStartupInfoData( const QString& txt );
00654         friend class KStartupInfo;
00655         friend class KStartupInfo::Data;
00656         friend class KStartupInfo::Private;
00657         struct Private;
00658         Private *const d;
00659     };
00660 
00661 #endif
00662 

KDEUI

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

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.6.1
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