00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef _KAPP_H
00022
#define _KAPP_H
00023
00024
00025
#include "kdeversion.h"
00026
#include "kdelibs_export.h"
00027
00028
class KConfig;
00029
class KCharsets;
00030
class DCOPClient;
00031
class DCOPObject;
00032
00033
typedef unsigned long Atom;
00034
#if !defined(Q_WS_X11)
00035
typedef void Display;
00036
#endif
00037
00038
#include <qapplication.h>
00039
#include <qpixmap.h>
00040
#include <kinstance.h>
00041
00042
struct _IceConn;
00043
class QPopupMenu;
00044
class QStrList;
00045
class KSessionManaged;
00046
class KStyle;
00047
class KURL;
00048
00049
#define kapp KApplication::kApplication()
00050
00051
class KApplicationPrivate;
00052
00094 class KDECORE_EXPORT KApplication :
public QApplication,
public KInstance
00095 {
00096
00097 Q_OBJECT
00098
public:
00099
enum CaptionLayout { CaptionAppLast=1, CaptionAppFirst, CaptionNoApp };
00100
00114 KApplication(
bool allowStyles=
true,
bool GUIenabled=
true);
00115
00116
#ifdef Q_WS_X11
00117
00140 KApplication(Display *display, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0,
00141
bool allowStyles=
true);
00142
00167 KApplication(Display *display,
int& argc,
char** argv,
const QCString& rAppName,
00168
bool allowStyles=
true,
bool GUIenabled=
true);
00169
#endif
00170
00193
00194
00195 KApplication(
int& argc,
char** argv,
00196
const QCString& rAppName,
bool allowStyles=
true,
bool GUIenabled=
true) KDE_DEPRECATED;
00197
00201
static void addCmdLineOptions();
00202
00203
virtual ~KApplication();
00204
00215 static KApplication* kApplication() {
return KApp; }
00216
00224
KConfig* sessionConfig();
00225
00234 bool isRestored()
const {
return QApplication::isSessionRestored(); }
00235
00242
void disableSessionManagement();
00243
00250
void enableSessionManagement();
00251
00255 enum ShutdownConfirm {
00259 ShutdownConfirmDefault = -1,
00263 ShutdownConfirmNo = 0,
00267 ShutdownConfirmYes = 1
00268 };
00269
00273 enum ShutdownType {
00277 ShutdownTypeDefault = -1,
00281 ShutdownTypeNone = 0,
00285 ShutdownTypeReboot = 1,
00289 ShutdownTypeHalt = 2
00290 };
00291
00295 enum ShutdownMode {
00299 ShutdownModeDefault = -1,
00304 ShutdownModeSchedule = 0,
00308 ShutdownModeTryNow = 1,
00312 ShutdownModeForceNow = 2,
00316 ShutdownModeInteractive = 3
00317 };
00318
00334
bool requestShutDown( ShutdownConfirm confirm = ShutdownConfirmDefault,
00335 ShutdownType sdtype = ShutdownTypeDefault,
00336 ShutdownMode sdmode = ShutdownModeDefault );
00337
00351
void propagateSessionManager();
00352
00353
00354
00355
00356
00357
00358
void commitData(
QSessionManager& sm );
00359
00360
00361
00362
00363
00364
00365
void saveState(
QSessionManager& sm );
00366
00376
bool sessionSaving() const;
00377
00384 static
DCOPClient *dcopClient();
00385
00390 static
void disableAutoDcopRegistration();
00391
00396
QPixmap icon() const;
00397
00402
QString iconName() const;
00403
00408
QPixmap miniIcon() const;
00409
00414
QString miniIconName() const;
00415
00426
void setTopWidget(
QWidget *topWidget );
00427
00440
void invokeHelp( const
QString& anchor,
00441 const
QString& appname,
00442 const
QCString& startup_id ) const;
00443
00444
00445
void invokeHelp( const
QString& anchor =
QString::null,
00446 const
QString& appname =
QString::null ) const;
00447
00462
void invokeHTMLHelp( const
QString& aFilename, const
QString& aTopic =
QString::null ) const KDE_DEPRECATED;
00463
00472
void invokeMailer( const
QString &address, const
QString &subject, const
QCString& startup_id );
00473
00474
void invokeMailer( const
QString &address, const
QString &subject );
00475
00485
void invokeMailer( const
KURL &mailtoURL, const
QCString& startup_id,
bool allowAttachments );
00486
00487
void invokeMailer( const
KURL &mailtoURL, const
QCString& startup_id );
00488
00489
void invokeMailer( const
KURL &mailtoURL );
00490
00506
void invokeMailer(const
QString &to, const
QString &cc, const
QString &bcc,
00507 const
QString &subject, const
QString &body,
00508 const
QString &messageFile, const
QStringList &attachURLs,
00509 const
QCString& startup_id );
00510
00511
void invokeMailer(const
QString &to, const
QString &cc, const
QString &bcc,
00512 const
QString &subject, const
QString &body,
00513 const
QString &messageFile =
QString::null, const
QStringList &attachURLs =
QStringList());
00514
00515 public slots:
00526
void invokeBrowser( const
QString &url, const
QCString& startup_id );
00527
00528
void invokeBrowser( const
QString &url );
00529
00537
void cut();
00538
00546
void copy();
00547
00555
void paste();
00556
00582
void clear();
00583
00591
void selectAll();
00592
00593 public:
00599 static
QCString launcher();
00600
00621 static
int startServiceByName( const
QString& _name, const
QString &URL,
00622
QString *error=0,
QCString *dcopService=0,
int *pid=0, const
QCString &startup_id = "",
bool noWait = false );
00623
00644 static
int startServiceByName( const
QString& _name, const QStringList &URLs=QStringList(),
00645
QString *error=0,
QCString *dcopService=0,
int *pid=0, const
QCString &startup_id = "",
bool noWait = false );
00646
00667 static
int startServiceByDesktopPath( const
QString& _name, const
QString &URL,
00668
QString *error=0,
QCString *dcopService=0,
int *pid = 0, const
QCString &startup_id = "",
bool noWait = false );
00669
00690 static
int startServiceByDesktopPath( const
QString& _name, const QStringList &URLs=QStringList(),
00691
QString *error=0,
QCString *dcopService=0,
int *pid = 0, const
QCString &startup_id = "",
bool noWait = false );
00692
00713 static
int startServiceByDesktopName( const
QString& _name, const
QString &URL,
00714
QString *error=0,
QCString *dcopService=0,
int *pid = 0, const
QCString &startup_id = "",
bool noWait = false );
00715
00736 static
int startServiceByDesktopName( const
QString& _name, const QStringList &URLs=QStringList(),
00737
QString *error=0,
QCString *dcopService=0,
int *pid = 0, const
QCString &startup_id = "",
bool noWait = false );
00738
00758 static
int kdeinitExec( const
QString& name, const QStringList &args,
00759
QString *error,
int *pid, const
QCString& startup_id );
00760
00761 static
int kdeinitExec( const
QString& name, const QStringList &args=QStringList(),
00762
QString *error=0,
int *pid = 0 );
00763
00781 static
int kdeinitExecWait( const
QString& name, const QStringList &args,
00782
QString *error,
int *pid, const
QCString& startup_id );
00783
00784 static
int kdeinitExecWait( const
QString& name, const QStringList &args=QStringList(),
00785
QString *error=0,
int *pid = 0 );
00786
00795
QString caption() const;
00796
00800 KDE_DEPRECATED KStyle* kstyle()
const {
return 0; }
00801
00819
QString makeStdCaption(
const QString &userCaption,
00820
bool withAppName=
true,
bool modified=
false )
const;
00821
00829
QString tempSaveName(
const QString& pFilename )
const;
00830
00840
QString checkRecoverFile(
const QString& pFilename,
bool& bRecover )
const;
00841
00842
#ifdef Q_WS_X11
00843
00847 Display *getDisplay() {
return display; }
00848
#endif
00849
00857
void enableStyles();
00858
00866
void disableStyles();
00867
00877
void installX11EventFilter(
QWidget* filter );
00878
00883
void removeX11EventFilter(
const QWidget* filter );
00884
00889
static int random();
00890
00896
static QString randomString(
int length);
00897
00907
void addKipcEventMask(
int id);
00908
00917
void removeKipcEventMask(
int id);
00918
00924
QCString startupId() const;
00925
00933
void setStartupId( const
QCString& startup_id );
00934
00941
void updateUserTimestamp(
unsigned long time = 0 );
00942
00948
unsigned long userTimestamp() const;
00949
00958
void updateRemoteUserTimestamp( const
QCString& dcopId,
unsigned long time = 0 );
00959
00965
QString geometryArgument() const;
00966
00971
void installKDEPropertyMap();
00972
00978
bool authorize(const
QString &genericAction);
00979
00987
bool authorizeKAction(const
char *action);
00988
01002
bool authorizeURLAction(const
QString &action, const
KURL &baseURL, const
KURL &destURL);
01003
01013
void allowURLAction(const
QString &action, const
KURL &_baseURL, const
KURL &_destURL);
01014
01022
bool authorizeControlModule(const
QString &menuId);
01023
01032
QStringList authorizeControlModules(const
QStringList &menuIds);
01033
01043 static ButtonState keyboardMouseState();
01044
01045
01046 enum { ShiftModifier = 1<<0,
01047 LockModifier = 1<<1,
01048 ControlModifier = 1<<2,
01049 Modifier1 = 1<<3,
01050 Modifier2 = 1<<4,
01051 Modifier3 = 1<<5,
01052 Modifier4 = 1<<6,
01053 Modifier5 = 1<<7 };
01058
static uint keyboardModifiers() KDE_DEPRECATED;
01059
01061 enum { Button1Pressed = 1<<8,
01062 Button2Pressed = 1<<9,
01063 Button3Pressed = 1<<10,
01064 Button4Pressed = 1<<11,
01065 Button5Pressed = 1<<12 };
01070
static uint mouseState() KDE_DEPRECATED;
01071
01072
01073 public slots:
01080
void ref();
01081
01086
void deref();
01087
01088 protected:
01092 KApplication(
bool allowStyles,
bool GUIenabled,
KInstance* _instance );
01093
01094 #ifdef Q_WS_X11
01098 KApplication( Display *display,
Qt::HANDLE visual,
Qt::HANDLE colormap,
01099
bool allowStyles,
KInstance* _instance );
01100
01104
bool x11EventFilter( XEvent * );
01105
01106 Display *display;
01107 #endif
01108 Atom kipcCommAtom;
01109
int kipcEventMask;
01110
01112 static KApplication *KApp;
01113
int pArgc;
01114
01146
void invokeEditSlot( const
char *slot );
01147
01148 private slots:
01149
void dcopFailure(const
QString &);
01150
void dcopBlockUserInput(
bool );
01151
void x11FilterDestroyed();
01152
void checkAppStartedSlot();
01153
01154 private:
01155 QString sessionConfigName() const;
01156
KConfig* pSessionConfig;
01157 static
DCOPClient *s_DCOPClient;
01158 static
bool s_dcopClientNeedsPostInit;
01159 QString aCaption;
01160
bool bSessionManagement;
01161 struct oldPixmapType {
QPixmap a, b; };
01162
mutable union {
01163
struct {
01164
QPixmap *icon, *miniIcon;
01165 } pm;
01166
char unused[
sizeof(oldPixmapType)];
01167 } aIconPixmap;
01168
QString aIconName;
01169
QString aMiniIconName;
01170
bool useStyles;
01171
QWidget *smw;
01172
01173
void init(
bool GUIenabled );
01174
01175
void parseCommandLine( );
01176
01177
void read_app_startup_id();
01178
01179
void dcopAutoRegistration();
01180
void dcopClientPostInit();
01181
void initUrlActionRestrictions();
01182
01183
public:
01187
bool notify(
QObject *receiver,
QEvent *event);
01188
01192
int xErrhandler( Display*,
void* );
01193
01197
int xioErrhandler( Display* );
01198
01202
void iceIOErrorHandler( _IceConn *conn );
01203
01207
static bool loadedByKdeinit;
01208
01212
static void startKdeinit();
01213
01217 enum SettingsCategory { SETTINGS_MOUSE, SETTINGS_COMPLETION, SETTINGS_PATHS,
01218 SETTINGS_POPUPMENU, SETTINGS_QT, SETTINGS_SHORTCUTS };
01219
01228
static QPalette createApplicationPalette();
01229
01234
static QPalette createApplicationPalette(
KConfig *config,
int contrast );
01235
01243
static void installSigpipeHandler();
01244
01251
static bool guiEnabled();
01252
01253 signals:
01260
void kdisplayPaletteChanged();
01261
01269
void kdisplayStyleChanged();
01270
01282
void kdisplayFontChanged();
01283
01289
void appearanceChanged();
01290
01294
void toolbarAppearanceChanged(
int);
01295
01301
void backgroundChanged(
int desk);
01302
01309
void settingsChanged(
int category);
01310
01315
void iconChanged(
int group);
01316
01326
void kipcMessage(
int id,
int data);
01327
01357
void saveYourself();
01358
01366
void shutDown();
01367
01368
private:
01369
void propagateSettings(SettingsCategory category);
01370
void kdisplaySetPalette();
01371
void kdisplaySetStyle();
01372
void kdisplaySetFont();
01373
void applyGUIStyle();
01374
static void sigpipeHandler(
int);
01375
01376
int captionLayout;
01377
01378 KApplication(
const KApplication&);
01379 KApplication& operator=(
const KApplication&);
01380
protected:
01381
virtual void virtual_hook(
int id,
void* data );
01382
private:
01383 KApplicationPrivate* d;
01384 };
01385
01386
01404 KDECORE_EXPORT
bool checkAccess(
const QString& pathname,
int mode);
01405
01406
class KSessionManagedPrivate;
01407
01424 class KDECORE_EXPORT KSessionManaged
01425 {
01426
public:
01427 KSessionManaged();
01428
virtual ~KSessionManaged();
01429
01439
virtual bool saveState(
QSessionManager& sm );
01449
virtual bool commitData(
QSessionManager& sm );
01450
01451
protected:
01452
virtual void virtual_hook(
int id,
void* data );
01453
private:
01454 KSessionManagedPrivate *d;
01455 };
01456
01457
01458
#endif
01459