korganizer

koprojectview.h
00001 /*
00002     This file is part of KOrganizer.
00003     Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
00004 
00005     This program is free software; you can redistribute it and/or modify
00006     it under the terms of the GNU General Public License as published by
00007     the Free Software Foundation; either version 2 of the License, or
00008     (at your option) any later version.
00009 
00010     This program 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
00013     GNU General Public License for more details.
00014 
00015     You should have received a copy of the GNU General Public License
00016     along with this program; if not, write to the Free Software
00017     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00018 */
00019 #ifndef KOPROJECTVIEW_H
00020 #define KOPROJECTVIEW_H
00021 /* $Id$ */
00022 
00023 #include <tqptrlist.h>
00024 #include <tqfontmetrics.h>
00025 
00026 #include <tqmap.h>
00027 
00028 #include <libkcal/calendar.h>
00029 #include <libkcal/event.h>
00030 
00031 #include "korganizer/baseview.h"
00032 #include "KGanttItem.h"
00033 
00034 class KGantt;
00035 class TQLineEdit;
00036 class TQFont;
00037 class TQLabel;
00038 class TQPopupMenu;
00039 class TQListBox;
00040 class TQStrList;
00041 class TQListView;
00042 
00047 class KOProjectViewItem : public KGanttItem {
00048   public:
00049     KOProjectViewItem(Todo *,KGanttItem* parentTask, const TQString& text,
00050                       const TQDateTime& start, const TQDateTime& end);
00051     ~KOProjectViewItem();
00052 
00053     Todo *event();
00054 
00055   private:
00056     Todo *mEvent;
00057 };
00058 
00059 
00066 class KOProjectView : public KOrg::BaseView
00067 {
00068     Q_OBJECT
00069   TQ_OBJECT
00070   public:
00071     KOProjectView(Calendar *, TQWidget* parent=0, const char* name=0 );
00072     ~KOProjectView() {}
00073 
00074     Incidence::List selectedIncidences();
00075     DateList selectedDates();
00076 
00078     int currentDateCount() { return 0; }
00079 
00080     void readSettings();
00081     void writeSettings(KConfig *);
00082 
00083   public slots:
00084     void updateView();
00085     void updateConfig();
00086 
00087     void changeIncidenceDisplay(Incidence *, int);
00088 
00089     void showDates(const TQDate &start, const TQDate &end);
00090     void showIncidences( const Incidence::List &incidenceList );
00091 
00092 /*
00093     void editItem(TQListViewItem *item);
00094     void showItem(TQListViewItem *item);
00095     void popupMenu(TQListViewItem *item,const TQPoint &,int);
00096     void newTodo();
00097     void newSubTodo();
00098     void itemClicked(TQListViewItem *);
00099 */
00100 
00101   protected slots:
00102     void showModeMenu();
00103     void zoomIn();
00104     void zoomOut();
00105     void taskChanged(KGanttItem *task,KGanttItem::Change change);
00106 
00107   private:
00108     void createMainTask();
00109     KGanttItem *createTask(KGanttItem *,Todo *);
00110 
00111     KGantt *mGantt;
00112     KGanttItem *mMainTask;
00113 
00114     TQMap<Todo *,KGanttItem *>::ConstIterator insertTodoItem(Todo *todo);
00115 
00116     TQMap<Todo *,KGanttItem *> mTodoMap;
00117 };
00118 
00119 #endif