• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdecore
 

tdecore

tdeapplication.h
00001 /* This file is part of the KDE libraries
00002     Copyright (C) 1997 Matthias Kalle Dalheimer (kalle@kde.org)
00003     Copyright (c) 1998, 1999 KDE Team
00004 
00005     This library is free software; you can redistribute it and/or
00006     modify it under the terms of the GNU Library General Public
00007     License as published by the Free Software Foundation; either
00008     version 2 of the License, or (at your option) any later version.
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 #ifndef _TDEAPP_H
00022 #define _TDEAPP_H
00023 
00024 // Version macros. Never put this further down.
00025 #include "tdeversion.h"
00026 #include "tdelibs_export.h"
00027 
00028 class TDEConfig;
00029 class KCharsets;
00030 class DCOPClient;
00031 class DCOPObject;
00032 
00033 #include <tqtglobaldefines.h>
00034 
00035 typedef unsigned long Atom;
00036 #if !defined(Q_WS_X11)
00037 typedef void Display;
00038 #endif
00039 
00040 #include <tqapplication.h>
00041 #include <tqpixmap.h>
00042 #include <kinstance.h>
00043 
00044 struct _IceConn;
00045 class TQPopupMenu;
00046 class TQStrList;
00047 class KSessionManaged;
00048 class TDEStyle;
00049 class KURL;
00050 
00051 #define kapp TDEApplication::kApplication()
00052 
00053 class TDEApplicationPrivate;
00054 
00096 class TDECORE_EXPORT TDEApplication : public TQApplication, public TDEInstance
00097 {
00098 
00099   Q_OBJECT
00100 public:
00106   enum CaptionLayout {
00107     CaptionAppLast=1 , 
00108     CaptionAppFirst  , 
00109     CaptionNoApp  
00110   };
00111 
00131   TDEApplication( bool allowStyles=true, bool GUIenabled=true, bool SMenabled=true);
00132 
00133 #ifdef Q_QDOC
00134 #else // Q_QDOC
00135 #ifdef TDEAPPLICATION_BINARY_COMPAT_HACK
00136   // FIXME
00137   // FOR BINARY COMPATIBILITY ONLY
00138   // REMOVE WHEN PRACTICAL!
00139   TDEApplication( bool allowStyles=true, bool GUIenabled=true);
00140 #endif // TDEAPPLICATION_BINARY_COMPAT_HACK
00141 #endif // Q_QDOC
00142 
00143 #ifdef Q_WS_X11
00144 
00161   TDEApplication(Display *display, bool allowStyles);
00162 
00190   TDEApplication(Display *display, bool disable_argb, Qt::HANDLE visual, Qt::HANDLE colormap, bool allowStyles);
00191 
00215   TDEApplication(Display *display, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0,
00216                bool allowStyles=true);
00217 
00242   TDEApplication(Display *display, int& argc, char** argv, const TQCString& rAppName,
00243                bool allowStyles=true, bool GUIenabled=true);
00244 #endif
00245 
00268   // REMOVE FOR KDE 4.0 - using it only gives crashing applications because
00269   // TDECmdLineArgs::init isn't called
00270   TDEApplication(int& argc, char** argv,
00271               const TQCString& rAppName, bool allowStyles=true, bool GUIenabled=true, bool SMenabled=true) KDE_DEPRECATED;
00272 
00273 #ifdef Q_QDOC
00274 #else // Q_QDOC
00275 #ifdef TDEAPPLICATION_BINARY_COMPAT_HACK
00276   // FIXME
00277   // FOR BINARY COMPATIBILITY ONLY
00278   // REMOVE WHEN PRACTICAL!
00279   TDEApplication(int& argc, char** argv,
00280               const TQCString& rAppName, bool allowStyles, bool GUIenabled) KDE_DEPRECATED;
00281 #endif // TDEAPPLICATION_BINARY_COMPAT_HACK
00282 #endif // Q_QDOC
00283 
00287   static void addCmdLineOptions();
00288 
00289   virtual ~TDEApplication();
00290 
00301   static TDEApplication* kApplication() { return KApp; }
00302 
00310   TDEConfig* sessionConfig();
00311 
00320   bool isRestored() const { return TQApplication::isSessionRestored(); }
00321 
00328   void disableSessionManagement();
00329 
00336   void enableSessionManagement();
00337 
00341   enum ShutdownConfirm {
00345     ShutdownConfirmDefault = -1,
00349     ShutdownConfirmNo = 0,
00353     ShutdownConfirmYes = 1
00354   };
00355 
00359   enum ShutdownType {
00363     ShutdownTypeDefault = -1,
00367     ShutdownTypeNone = 0,
00371     ShutdownTypeReboot = 1,
00375     ShutdownTypeHalt = 2
00376   };
00377 
00381   enum ShutdownMode {
00385     ShutdownModeDefault = -1,
00390     ShutdownModeSchedule = 0,
00394     ShutdownModeTryNow = 1,
00398     ShutdownModeForceNow = 2,
00402     ShutdownModeInteractive = 3
00403   };
00404 
00420   bool requestShutDown( ShutdownConfirm confirm = ShutdownConfirmDefault,
00421                         ShutdownType sdtype = ShutdownTypeDefault,
00422             ShutdownMode sdmode = ShutdownModeDefault );
00423 
00437     void propagateSessionManager();
00438 
00444   void commitData( TQSessionManager& sm );
00445 
00451   void saveState( TQSessionManager& sm );
00452 
00462   bool sessionSaving() const;
00463 
00470   static DCOPClient *dcopClient();
00471 
00476   static void disableAutoDcopRegistration();
00477 
00482   TQPixmap icon() const;
00483 
00488   TQString iconName() const;
00489 
00494   TQPixmap miniIcon() const;
00495 
00500   TQString miniIconName() const;
00501 
00512   void setTopWidget( TQWidget *topWidget );
00513 
00526   void invokeHelp( const TQString& anchor,
00527                    const TQString& appname,
00528                    const TQCString& startup_id ) const;
00529 
00530   // KDE4 merge with above with startup_id = ""
00531   void invokeHelp( const TQString& anchor = TQString::null,
00532                    const TQString& appname = TQString::null ) const;
00533 
00548   void invokeHTMLHelp( const TQString& aFilename, const TQString& aTopic = TQString::null ) const KDE_DEPRECATED;
00549 
00558   void invokeMailer( const TQString &address, const TQString &subject, const TQCString& startup_id );
00559   // KDE4 merge with above with startup_id = ""
00560   void invokeMailer( const TQString &address, const TQString &subject );
00561 
00571   void invokeMailer( const KURL &mailtoURL, const TQCString& startup_id, bool allowAttachments );
00572   // KDE4 merge with above with allowAttachments = false
00573   void invokeMailer( const KURL &mailtoURL, const TQCString& startup_id );
00574   // KDE4 merge with above with startup_id = ""
00575   void invokeMailer( const KURL &mailtoURL );
00576 
00592   void invokeMailer(const TQString &to, const TQString &cc, const TQString &bcc,
00593                     const TQString &subject, const TQString &body,
00594                     const TQString &messageFile, const TQStringList &attachURLs,
00595                     const TQCString& startup_id );
00596   // KDE4 merge with above with startup_id = ""
00597   void invokeMailer(const TQString &to, const TQString &cc, const TQString &bcc,
00598                     const TQString &subject, const TQString &body,
00599                     const TQString &messageFile = TQString::null, const TQStringList &attachURLs = TQStringList());
00600 
00601 public slots:
00612   void invokeBrowser( const TQString &url, const TQCString& startup_id );
00613   // KDE4 merge with above with startup_id = ""
00618   void invokeBrowser( const TQString &url );
00619 
00627   void cut();
00628 
00636   void copy();
00637 
00645   void paste();
00646 
00672   void clear();
00673 
00681   void selectAll();
00682 
00689   void broadcastKeyCode(unsigned int keyCode);
00690 
00691 public:
00697   static TQCString launcher();
00698 
00719   static int startServiceByName( const TQString& _name, const TQString &URL,
00720                 TQString *error=0, TQCString *dcopService=0, int *pid=0, const TQCString &startup_id = "", bool noWait = false );
00721 
00742   static int startServiceByName( const TQString& _name, const TQStringList &URLs=TQStringList(),
00743                 TQString *error=0, TQCString *dcopService=0, int *pid=0, const TQCString &startup_id = "", bool noWait = false );
00744 
00765   static int startServiceByDesktopPath( const TQString& _name, const TQString &URL,
00766                 TQString *error=0, TQCString *dcopService=0, int *pid = 0, const TQCString &startup_id = "", bool noWait = false );
00767 
00788   static int startServiceByDesktopPath( const TQString& _name, const TQStringList &URLs=TQStringList(),
00789                 TQString *error=0, TQCString *dcopService=0, int *pid = 0, const TQCString &startup_id = "", bool noWait = false );
00790 
00811   static int startServiceByDesktopName( const TQString& _name, const TQString &URL,
00812                 TQString *error=0, TQCString *dcopService=0, int *pid = 0, const TQCString &startup_id = "", bool noWait = false );
00813 
00834   static int startServiceByDesktopName( const TQString& _name, const TQStringList &URLs=TQStringList(),
00835                 TQString *error=0, TQCString *dcopService=0, int *pid = 0, const TQCString &startup_id = "", bool noWait = false );
00836 
00854   static int tdeinitExec( const TQString& name, const TQStringList &args,
00855                 TQString *error, int *pid, const TQCString& startup_id );
00856   // KDE4 merge with above with startup_id = ""
00857   static int tdeinitExec( const TQString& name, const TQStringList &args=TQStringList(),
00858                 TQString *error=0, int *pid = 0 );
00859 
00877   static int tdeinitExecWait( const TQString& name, const TQStringList &args,
00878                 TQString *error, int *pid, const TQCString& startup_id );
00879   // KDE4 merge with above with startup_id = ""
00880   static int tdeinitExecWait( const TQString& name, const TQStringList &args=TQStringList(),
00881                 TQString *error=0, int *pid = 0 );
00882 
00891   TQString caption() const;
00892 
00896   KDE_DEPRECATED TDEStyle* tdestyle() const { return 0; }
00897 
00915   TQString makeStdCaption( const TQString &userCaption,
00916                           bool withAppName=true, bool modified=false ) const;
00917 
00925   TQString tempSaveName( const TQString& pFilename ) const;
00926 
00936   TQString checkRecoverFile( const TQString& pFilename, bool& bRecover ) const;
00937 
00938 #if defined(Q_WS_X11)
00939 
00944    Display *getDisplay() { return display; }
00945 #endif
00946 
00951    void getX11RGBAInformation(Display *dpy);
00952 
00960    static bool isCompositionManagerAvailable();
00961 
00970    bool detectCompositionManagerAvailable(bool force_available=false, bool available=true);
00971 
00980    static Display* openX11RGBADisplay();
00981 
00987    Qt::HANDLE getX11RGBAVisual(Display *dpy);
00988 
00994    Qt::HANDLE getX11RGBAColormap(Display *dpy);
00995 
01012    bool isX11CompositionAvailable();
01013 
01021   void enableStyles();
01022 
01030   void disableStyles();
01031 
01041   void installX11EventFilter( TQWidget* filter );
01042 
01047   void removeX11EventFilter( const TQWidget* filter );
01048 
01053   static int random();
01054 
01060   static TQString randomString(int length);
01061 
01071   void addKipcEventMask(int id);
01072 
01081   void removeKipcEventMask(int id);
01082 
01088   TQCString startupId() const;
01089 
01097   void setStartupId( const TQCString& startup_id );
01098 
01105   void updateUserTimestamp( unsigned long time = 0 );
01106   
01112   unsigned long userTimestamp() const;
01113 
01122   void updateRemoteUserTimestamp( const TQCString& dcopId, unsigned long time = 0 );
01123   
01129   TQString geometryArgument() const;
01130 
01135   void installKDEPropertyMap();
01136 
01142   bool authorize(const TQString &genericAction);
01143 
01151   bool authorizeTDEAction(const char *action);
01152 
01166   bool authorizeURLAction(const TQString &action, const KURL &baseURL, const KURL &destURL);
01167 
01177   void allowURLAction(const TQString &action, const KURL &_baseURL, const KURL &_destURL);
01178 
01186   bool authorizeControlModule(const TQString &menuId);
01187   
01196   TQStringList authorizeControlModules(const TQStringList &menuIds);
01197 
01207   static ButtonState keyboardMouseState();
01208 
01209   // Same values as ShiftMask etc. in X.h
01210   enum { ShiftModifier = 1<<0,
01211          LockModifier = 1<<1,
01212          ControlModifier = 1<<2,
01213          Modifier1 = 1<<3,
01214          Modifier2 = 1<<4,
01215          Modifier3 = 1<<5,
01216          Modifier4 = 1<<6,
01217          Modifier5 = 1<<7 };
01222   static uint keyboardModifiers() KDE_DEPRECATED;
01223 
01225   enum { Button1Pressed = 1<<8,
01226          Button2Pressed = 1<<9,
01227          Button3Pressed = 1<<10,
01228          Button4Pressed = 1<<11,
01229          Button5Pressed = 1<<12 };
01234   static uint mouseState() KDE_DEPRECATED;
01235 
01241   static int currentX11VT();
01242 
01243 
01244 public slots:
01251   void ref();
01252 
01257   void deref();
01258 
01259 protected:
01263   TDEApplication( bool allowStyles, bool GUIenabled, TDEInstance* _instance );
01264 
01265 #ifdef Q_WS_X11
01266 
01269   TDEApplication( Display *display, Qt::HANDLE visual, Qt::HANDLE colormap,
01270           bool allowStyles, TDEInstance* _instance );
01271 
01275   bool x11EventFilter( XEvent * );
01276 
01277   Display *display;
01278 #endif
01279   Atom kipcCommAtom;
01280   int kipcEventMask;
01281 
01283   static TDEApplication *KApp;
01284   int pArgc;
01285 
01317   void invokeEditSlot( const char *slot );
01318 
01319 private slots:
01320   void dcopFailure(const TQString &);
01321   void dcopBlockUserInput( bool );
01322   void x11FilterDestroyed();
01323   void checkAppStartedSlot();
01324 
01325 private:
01326   TQString sessionConfigName() const;
01327   TDEConfig* pSessionConfig; //instance specific application config object
01328   static DCOPClient *s_DCOPClient; // app specific application communication client
01329   static bool s_dcopClientNeedsPostInit;
01330   TQString aCaption; // the name for the window title
01331   bool bSessionManagement;
01332   struct oldPixmapType { TQPixmap a, b; };
01333   mutable union {
01334     struct {
01335       TQPixmap *icon, *miniIcon;
01336     } pm;
01337     char unused[sizeof(oldPixmapType)];
01338   } aIconPixmap; // KDE4: remove me
01339   TQString aIconName;
01340   TQString aMiniIconName;
01341   bool useStyles;
01342   TQWidget *smw;
01343 
01344   void init( bool GUIenabled );
01345 
01346   void parseCommandLine( ); // Handle KDE arguments (Using TDECmdLineArgs)
01347 
01348   void read_app_startup_id();
01349 
01350   void dcopAutoRegistration();
01351   void dcopClientPostInit();
01352   void initUrlActionRestrictions();
01353 
01354   bool argb_visual;
01355 #if defined(Q_WS_X11)
01356   Qt::HANDLE argb_x11_visual;
01357   Qt::HANDLE argb_x11_colormap;
01358 #endif
01359 
01360 public:
01364   bool notify(TQObject *receiver, TQEvent *event);
01365 
01369   int xErrhandler( Display*, void* );
01370 
01374   int xioErrhandler( Display* );
01375 
01379   void iceIOErrorHandler( _IceConn *conn );
01380 
01384   static bool loadedByKdeinit;
01385 
01389   static void startKdeinit();
01390 
01394   enum SettingsCategory { SETTINGS_MOUSE, SETTINGS_COMPLETION, SETTINGS_PATHS,
01395          SETTINGS_POPUPMENU, SETTINGS_QT, SETTINGS_SHORTCUTS };
01396 
01405   static TQPalette createApplicationPalette();
01406 
01411   static TQPalette createApplicationPalette( TDEConfig *config, int contrast );
01412 
01420   static void installSigpipeHandler();
01421 
01428   static bool guiEnabled();
01429 
01430 signals:
01437   void tdedisplayPaletteChanged();
01438 
01446   void tdedisplayStyleChanged();
01447 
01459   void tdedisplayFontChanged();
01460 
01466   void appearanceChanged();
01467 
01471   void toolbarAppearanceChanged(int);
01472 
01478   void backgroundChanged(int desk);
01479 
01486   void settingsChanged(int category);
01487 
01492   void iconChanged(int group);
01493 
01503   void kipcMessage(int id, int data);
01504 
01534   void saveYourself();
01535 
01543   void shutDown();
01544 
01549   void updateIconLoaders();
01550 
01555   void coreFakeKeyPress(unsigned int keyCode);
01556 
01557 private:
01558   void propagateSettings(SettingsCategory category);
01559   void tdedisplaySetPalette();
01560   void tdedisplaySetStyle();
01561   void tdedisplaySetFont();
01562   void applyGUIStyle();
01563   static void sigpipeHandler(int);
01564 
01565   int captionLayout;
01566 
01567   TDEApplication(const TDEApplication&);
01568   TDEApplication& operator=(const TDEApplication&);
01569 protected:
01570   virtual void virtual_hook( int id, void* data );
01571 private:
01572   TDEApplicationPrivate* d;
01573 };
01574 
01575 
01593 TDECORE_EXPORT bool checkAccess(const TQString& pathname, int mode);
01594 
01595 class KSessionManagedPrivate;
01596 
01613 class TDECORE_EXPORT KSessionManaged
01614 {
01615 public:
01616   KSessionManaged();
01617   virtual ~KSessionManaged();
01618 
01628   virtual bool saveState( TQSessionManager& sm );
01638   virtual bool commitData( TQSessionManager& sm );
01639 
01640 protected:
01641   virtual void virtual_hook( int id, void* data );
01642 private:
01643   KSessionManagedPrivate *d;
01644 };
01645 
01646 
01647 #endif
01648 

tdecore

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

tdecore

Skip menu "tdecore"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdecore by doxygen 1.7.6.1
This website is maintained by Timothy Pearson.