00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
#ifndef _KAPP_H
00024
#define _KAPP_H
00025
00026
00027
#include "kdeversion.h"
00028
#include "kdemacros.h"
00029
00030
class KConfig;
00031
class KCharsets;
00032
class DCOPClient;
00033
class DCOPObject;
00034
00035
typedef unsigned long Atom;
00036
#ifdef Q_WS_QWS
00037
typedef void Display;
00038
#endif
00039
00040
#include <qapplication.h>
00041
#include <qpixmap.h>
00042
#include <kinstance.h>
00043
00044
struct _IceConn;
00045
class QPopupMenu;
00046
class QStrList;
00047
class KSessionManaged;
00048
class KStyle;
00049
class KURL;
00050
00051
#define kapp KApplication::kApplication()
00052
00053
class KApplicationPrivate;
00054
00096 class KApplication :
public QApplication,
public KInstance
00097 {
00098
00099 Q_OBJECT
00100
public:
00101
enum CaptionLayout { CaptionAppLast=1, CaptionAppFirst, CaptionNoApp };
00102
00116
KApplication(
bool allowStyles=
true,
bool GUIenabled=
true);
00117
00118
#ifndef Q_WS_QWS
00119
00143
KApplication(Display *display,
int& argc,
char** argv,
const QCString& rAppName,
00144
bool allowStyles=
true,
bool GUIenabled=
true);
00145
#endif
00146
00169
00170
00171
KApplication(
int& argc,
char** argv,
00172
const QCString& rAppName,
bool allowStyles=
true,
bool GUIenabled=
true) KDE_DEPRECATED;
00173
00177
static void addCmdLineOptions();
00178
00179
virtual ~
KApplication();
00180
00191 static KApplication*
kApplication() {
return KApp; }
00192
00200
KConfig*
sessionConfig();
00201
00210 bool isRestored()
const {
return QApplication::isSessionRestored(); }
00211
00218
void disableSessionManagement();
00219
00226
void enableSessionManagement();
00227
00231 enum ShutdownConfirm {
00235
ShutdownConfirmDefault = -1,
00239
ShutdownConfirmNo = 0,
00243
ShutdownConfirmYes = 1
00244 };
00245
00249 enum ShutdownType {
00253
ShutdownTypeDefault = -1,
00257
ShutdownTypeNone = 0,
00261
ShutdownTypeReboot = 1,
00265
ShutdownTypeHalt = 2
00266 };
00267
00271 enum ShutdownMode {
00275
ShutdownModeDefault = -1,
00280
ShutdownModeSchedule = 0,
00284
ShutdownModeTryNow = 1,
00288
ShutdownModeForceNow = 2,
00292
ShutdownModeInteractive = 3
00293 };
00294
00310
bool requestShutDown( ShutdownConfirm confirm = ShutdownConfirmDefault,
00311 ShutdownType sdtype = ShutdownTypeDefault,
00312 ShutdownMode sdmode = ShutdownModeDefault );
00313
00327
void propagateSessionManager();
00328
00329
00330
00331
00332
00333
00334
void commitData(
QSessionManager& sm );
00335
00336
00337
00338
00339
00340
00341
void saveState(
QSessionManager& sm );
00342
00352
bool sessionSaving() const;
00353
00360 static
DCOPClient *dcopClient();
00361
00366 static
void disableAutoDcopRegistration();
00367
00372
QPixmap icon() const;
00373
00378
QString iconName() const;
00379
00384
QPixmap miniIcon() const;
00385
00390
QString miniIconName() const;
00391
00402
void setTopWidget(
QWidget *topWidget );
00403
00416
void invokeHelp( const
QString& anchor,
00417 const
QString& appname,
00418 const
QCString& startup_id ) const;
00419
00420
00421
void invokeHelp( const
QString& anchor =
QString::null,
00422 const
QString& appname =
QString::null ) const;
00423
00438
void invokeHTMLHelp( const
QString& aFilename, const
QString& aTopic =
QString::null ) const KDE_DEPRECATED;
00439
00448
void invokeMailer( const
QString &address, const
QString &subject, const
QCString& startup_id );
00449
00450
void invokeMailer( const
QString &address, const
QString &subject );
00451
00459
void invokeMailer( const
KURL &mailtoURL, const
QCString& startup_id );
00460
00461
void invokeMailer( const
KURL &mailtoURL );
00462
00478
void invokeMailer(const
QString &to, const
QString &cc, const
QString &bcc,
00479 const
QString &subject, const
QString &body,
00480 const
QString &messageFile, const
QStringList &attachURLs,
00481 const
QCString& startup_id );
00482
00483
void invokeMailer(const
QString &to, const
QString &cc, const
QString &bcc,
00484 const
QString &subject, const
QString &body,
00485 const
QString &messageFile =
QString::null, const
QStringList &attachURLs =
QStringList());
00486
00487 public slots:
00498
void invokeBrowser( const
QString &url, const
QCString& startup_id );
00499
00500
void invokeBrowser( const
QString &url );
00501
00509
void cut();
00510
00518
void copy();
00519
00527
void paste();
00528
00554
void clear();
00555
00563
void selectAll();
00564
00565 public:
00571 static
QCString launcher();
00572
00593 static
int startServiceByName( const
QString& _name, const
QString &URL,
00594
QString *error=0,
QCString *dcopService=0,
int *pid=0, const
QCString &startup_id = "",
bool noWait = false );
00595
00616 static
int startServiceByName( const
QString& _name, const QStringList &URLs=QStringList(),
00617
QString *error=0,
QCString *dcopService=0,
int *pid=0, const
QCString &startup_id = "",
bool noWait = false );
00618
00639 static
int startServiceByDesktopPath( const
QString& _name, const
QString &URL,
00640
QString *error=0,
QCString *dcopService=0,
int *pid = 0, const
QCString &startup_id = "",
bool noWait = false );
00641
00662 static
int startServiceByDesktopPath( const
QString& _name, const QStringList &URLs=QStringList(),
00663
QString *error=0,
QCString *dcopService=0,
int *pid = 0, const
QCString &startup_id = "",
bool noWait = false );
00664
00685 static
int startServiceByDesktopName( const
QString& _name, const
QString &URL,
00686
QString *error=0,
QCString *dcopService=0,
int *pid = 0, const
QCString &startup_id = "",
bool noWait = false );
00687
00708 static
int startServiceByDesktopName( const
QString& _name, const QStringList &URLs=QStringList(),
00709
QString *error=0,
QCString *dcopService=0,
int *pid = 0, const
QCString &startup_id = "",
bool noWait = false );
00710
00730 static
int kdeinitExec( const
QString& name, const QStringList &args,
00731
QString *error,
int *pid, const
QCString& startup_id );
00732
00733 static
int kdeinitExec( const
QString& name, const QStringList &args=QStringList(),
00734
QString *error=0,
int *pid = 0 );
00735
00753 static
int kdeinitExecWait( const
QString& name, const QStringList &args,
00754
QString *error,
int *pid, const
QCString& startup_id );
00755
00756 static
int kdeinitExecWait( const
QString& name, const QStringList &args=QStringList(),
00757
QString *error=0,
int *pid = 0 );
00758
00767
QString caption() const;
00768
00772 KDE_DEPRECATED KStyle* kstyle()
const {
return 0; }
00773
00791
QString makeStdCaption(
const QString &userCaption,
00792
bool withAppName=
true,
bool modified=
false )
const;
00793
00801
QString tempSaveName(
const QString& pFilename )
const;
00802
00812
QString checkRecoverFile(
const QString& pFilename,
bool& bRecover )
const;
00813
00814
#ifdef Q_WS_X11
00815
00819 Display *getDisplay() {
return display; }
00820
#endif
00821
00829
void enableStyles();
00830
00838
void disableStyles();
00839
00849
void installX11EventFilter(
QWidget* filter );
00850
00855
void removeX11EventFilter(
const QWidget* filter );
00856
00861
static int random();
00862
00868
static QString randomString(
int length);
00869
00879
void addKipcEventMask(
int id);
00880
00889
void removeKipcEventMask(
int id);
00890
00896
QCString startupId() const;
00897
00903
void setStartupId( const
QCString& startup_id );
00904
00911
void updateUserTimestamp(
unsigned long time = 0 );
00912
00918
unsigned long userTimestamp() const;
00919
00925
QString geometryArgument() const;
00926
00931
void installKDEPropertyMap();
00932
00938
bool authorize(const
QString &genericAction);
00939
00947
bool authorizeKAction(const
char *action);
00948
00962
bool authorizeURLAction(const
QString &action, const
KURL &baseURL, const
KURL &destURL);
00963
00973
void allowURLAction(const
QString &action, const
KURL &_baseURL, const
KURL &_destURL);
00974
00982
bool authorizeControlModule(const
QString &menuId);
00983
00992
QStringList authorizeControlModules(const
QStringList &menuIds);
00993
00994
00995
00996 enum { ShiftModifier = 1<<0,
00997 LockModifier = 1<<1,
00998 ControlModifier = 1<<2,
00999 Modifier1 = 1<<3,
01000 Modifier2 = 1<<4,
01001 Modifier3 = 1<<5,
01002 Modifier4 = 1<<6,
01003 Modifier5 = 1<<7 };
01014
static uint
keyboardModifiers();
01015
01016
01017
enum { Button1Pressed = 1<<8,
01018 Button2Pressed = 1<<9,
01019 Button3Pressed = 1<<10,
01020 Button4Pressed = 1<<11,
01021 Button5Pressed = 1<<12 };
01031
static uint
mouseState();
01032
01033
01034
public slots:
01041
void ref();
01042
01047
void deref();
01048
01049
protected:
01053
KApplication(
bool allowStyles,
bool GUIenabled,
KInstance* _instance );
01054
01055
#ifdef Q_WS_X11
01056
01059
bool x11EventFilter( XEvent * );
01060
01061 Display *display;
01062
#endif
01063
Atom kipcCommAtom;
01064
int kipcEventMask;
01065
01067
static KApplication *
KApp;
01068
int pArgc;
01069
01101
void invokeEditSlot(
const char *slot );
01102
01103
private slots:
01104
void dcopFailure(
const QString &);
01105
void dcopBlockUserInput(
bool );
01106
void x11FilterDestroyed();
01107
void checkAppStartedSlot();
01108
01109
private:
01110
QString sessionConfigName() const;
01111
KConfig* pSessionConfig;
01112 static
DCOPClient *s_DCOPClient;
01113 static
bool s_dcopClientNeedsPostInit;
01114
QString aCaption;
01115
bool bSessionManagement;
01116
QPixmap aIconPixmap;
01117
QPixmap aMiniIconPixmap;
01118
QString aIconName;
01119
QString aMiniIconName;
01120
bool useStyles;
01121
QWidget *smw;
01122
01123
void init(
bool GUIenabled );
01124
01125
void parseCommandLine( );
01126
01127
void read_app_startup_id();
01128
01129
void dcopAutoRegistration();
01130
void dcopClientPostInit();
01131
void initUrlActionRestrictions();
01132
01133 public:
01137
bool notify(
QObject *receiver,
QEvent *event);
01138
01142
int xErrhandler( Display*,
void* );
01143
01147
int xioErrhandler( Display* );
01148
01152
void iceIOErrorHandler( _IceConn *conn );
01153
01157 static
bool loadedByKdeinit;
01158
01162 static
void startKdeinit();
01163
01167 enum SettingsCategory { SETTINGS_MOUSE, SETTINGS_COMPLETION, SETTINGS_PATHS,
01168 SETTINGS_POPUPMENU, SETTINGS_QT, SETTINGS_SHORTCUTS };
01169
01178
static QPalette createApplicationPalette();
01179
01184
static QPalette createApplicationPalette(
KConfig *config,
int contrast );
01185
01193
static void installSigpipeHandler();
01194
01201
static bool guiEnabled();
01202
01203 signals:
01210
void kdisplayPaletteChanged();
01211
01219
void kdisplayStyleChanged();
01220
01232
void kdisplayFontChanged();
01233
01239
void appearanceChanged();
01240
01244
void toolbarAppearanceChanged(
int);
01245
01251
void backgroundChanged(
int desk);
01252
01259
void settingsChanged(
int category);
01260
01265
void iconChanged(
int group);
01266
01276
void kipcMessage(
int id,
int data);
01277
01307
void saveYourself();
01308
01316
void shutDown();
01317
01318
private:
01319
void propagateSettings(SettingsCategory category);
01320
void kdisplaySetPalette();
01321
void kdisplaySetStyle();
01322
void kdisplaySetFont();
01323
void applyGUIStyle();
01324
static void sigpipeHandler(
int);
01325
01326
int captionLayout;
01327
01328
KApplication(
const KApplication&);
01329
KApplication& operator=(
const KApplication&);
01330
protected:
01331
virtual void virtual_hook(
int id,
void* data );
01332
private:
01333 KApplicationPrivate* d;
01334 };
01335
01336
01354
bool checkAccess(
const QString& pathname,
int mode);
01355
01356
class KSessionManagedPrivate;
01357
01374 class KSessionManaged
01375 {
01376
public:
01377
KSessionManaged();
01378
virtual ~
KSessionManaged();
01379
01389
virtual bool saveState(
QSessionManager& sm );
01399
virtual bool commitData(
QSessionManager& sm );
01400
01401
protected:
01402
virtual void virtual_hook(
int id,
void* data );
01403
private:
01404 KSessionManagedPrivate *d;
01405 };
01406
01407
01408
#endif
01409