korganizer
korganizer.h
00001 /* 00002 This file is part of KOrganizer. 00003 00004 Copyright (c) 1997, 1998, 1999 00005 Preston Brown (preston.brown@yale.edu) 00006 Fester Zigterman (F.J.F.ZigtermanRustenburg@student.utwente.nl) 00007 Ian Dawes (iadawes@globalserve.net) 00008 Laszlo Boloni (boloni@cs.purdue.edu) 00009 00010 Copyright (c) 2000-2003 Cornelius Schumacher <schumacher@kde.org> 00011 Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com> 00012 00013 This program is free software; you can redistribute it and/or modify 00014 it under the terms of the GNU General Public License as published by 00015 the Free Software Foundation; either version 2 of the License, or 00016 (at your option) any later version. 00017 00018 This program is distributed in the hope that it will be useful, 00019 but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 GNU General Public License for more details. 00022 00023 You should have received a copy of the GNU General Public License 00024 along with this program; if not, write to the Free Software 00025 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00026 00027 As a special exception, permission is given to link this program 00028 with any edition of Qt, and distribute the resulting executable, 00029 without including the source code for Qt in the source distribution. 00030 */ 00031 #ifndef KORGANIZER_H 00032 #define KORGANIZER_H 00033 00034 #include <kurl.h> 00035 00036 #include <korganizer/mainwindow.h> 00037 #include <korganizer/part.h> 00038 #include <kparts/mainwindow.h> 00039 00040 class KTempFile; 00041 class KRecentFilesAction; 00042 class KOWindowList; 00043 class KToggleAction; 00044 class KProcess; 00045 class KONewStuff; 00046 class ActionManager; 00047 class CalendarView; 00048 00049 namespace KCal { class CalendarResources; } 00050 00051 using namespace KCal; 00052 00053 // Workaround for moc workaround for visual c++ 6.0 sucking 00054 typedef KOrg::MainWindow KOrgMainWindow; 00055 typedef KParts::MainWindow KPartsMainWindow; 00056 00065 class KOrganizer : public KPartsMainWindow, public KOrgMainWindow 00066 { 00067 Q_OBJECT 00068 public: 00073 KOrganizer( const char *name = 0 ); 00074 virtual ~KOrganizer(); 00075 00076 void init( bool hasDocument ); 00077 00078 KOrg::CalendarViewBase *view() const; 00079 ActionManager *actionManager() { return mActionManager; } 00080 KActionCollection *getActionCollection() const { return actionCollection(); } 00081 00086 bool openURL( const KURL &url, bool merge = false ); 00088 bool saveURL(); 00090 bool saveAsURL( const KURL & kurl ); 00092 KURL getCurrentURL() const; 00093 00094 virtual KXMLGUIFactory *mainGuiFactory() { return factory(); } 00095 virtual KXMLGUIClient *mainGuiClient() { return this; } 00096 virtual QWidget *topLevelWidget() { return this; } 00097 00098 public slots: 00100 void showStatusMessage( const QString & ); 00101 00102 protected slots: 00103 00107 void readSettings(); 00108 00110 void writeSettings(); 00111 00112 void statusBarPressed( int ); 00113 00115 void setTitle(); 00116 00117 void newMainWindow( const KURL & ); 00118 00119 protected: 00120 void initActions(); 00121 // void initViews(); 00122 00124 bool queryClose(); 00125 bool queryExit(); 00126 00127 /* Session management */ 00128 void saveProperties( KConfig * ); 00129 void readProperties( KConfig * ); 00130 00131 private: 00132 CalendarView *mCalendarView; // Main view widget 00133 KOrg::Part::List mParts; // List of parts loaded 00134 00135 // status bar ids 00136 enum { ID_HISTORY, ID_GENERAL, ID_ACTIVE, ID_MESSAGES_IN, ID_MESSAGES_OUT }; 00137 ActionManager *mActionManager; 00138 }; 00139 00140 #endif