/*! ** Notice: Gubby Copyright 2003 Christian Stigen Larsen ** Author: ** ** $Id: folder.h,v 1.4 2003/03/21 14:18:20 cslsublevel3org Exp $ ** ** This file is part of Gubby. ** ** Gubby is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** Gubby is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with Gubby; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ** */ #include #include struct mail { std::string from; std::string subj; }; class Folder { std::string name_; std::vector vmail; public: Folder() { } Folder(const std::string& s) : name_(s) { } void push(const mail& m) { vmail.push_back(m); } Folder& setname(const std::string s) { name_ = s; return *this; } const std::string& name() const { return name_; } bool operator==(const Folder& f) const { return ( name_ == f.name_ ); } bool operator>(const Folder& f) const { if ( vmail.size() != f.vmail.size() ) return ( vmail.size() > f.vmail.size() ); else return ( name_ > f.name_ ); } bool operator<(const Folder& f) const { if ( vmail.size() != f.vmail.size() ) return ( vmail.size() < f.vmail.size() ); else return ( name_ < f.name_ ); } void clear() { vmail.clear(); } const mail& at(const int n) const { return vmail[n]; } friend class Folders; friend class screens; };