todo.h
00001 /* 00002 This file is part of libkcal. 00003 00004 Copyright (c) 2001-2003 Cornelius Schumacher <schumacher@kde.org> 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Library General Public 00008 License as published by the Free Software Foundation; either 00009 version 2 of the License, or (at your option) any later version. 00010 00011 This library is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 Library General Public License for more details. 00015 00016 You should have received a copy of the GNU Library General Public License 00017 along with this library; see the file COPYING.LIB. If not, write to 00018 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00019 Boston, MA 02111-1307, USA. 00020 */ 00021 #ifndef KCAL_TODO_H 00022 #define KCAL_TODO_H 00023 00024 #include "incidence.h" 00025 00026 namespace KCal { 00027 00031 class Todo : public Incidence 00032 { 00033 public: 00034 typedef ListBase<Todo> List; 00035 00036 Todo(); 00037 Todo( const Todo & ); 00038 ~Todo(); 00039 bool operator==( const Todo& ) const; 00040 00041 QCString type() const { return "Todo"; } 00042 00047 Todo *clone(); 00048 00052 void setDtDue(const QDateTime &dtDue); 00056 QDateTime dtDue() const; 00061 QString dtDueTimeStr() const; 00069 QString dtDueDateStr( bool shortfmt = true ) const; 00074 QString dtDueStr() const; 00075 00079 bool hasDueDate() const; 00085 void setHasDueDate( bool hasDueDate ); 00086 00090 bool hasStartDate() const; 00096 void setHasStartDate( bool hasStartDate ); 00097 00101 bool isCompleted() const; 00108 void setCompleted( bool completed ); 00109 00114 int percentComplete() const; 00119 void setPercentComplete( int ); 00120 00124 QDateTime completed() const; 00129 QString completedStr() const; 00133 void setCompleted( const QDateTime &completed ); 00134 00139 bool hasCompletedDate() const; 00140 00141 private: 00142 bool accept(Visitor &v) { return v.visit( this ); } 00143 00144 QDateTime mDtDue; // due date of todo 00145 00146 bool mHasDueDate; // if todo has associated due date 00147 bool mHasStartDate; // if todo has associated start date 00148 00149 QDateTime mCompleted; 00150 bool mHasCompletedDate; 00151 00152 int mPercentComplete; 00153 00154 class Private; 00155 Private *d; 00156 }; 00157 00158 } 00159 00160 #endif