/*!
**    Notice:  Gubby Copyright 2003 Christian Stigen Larsen
**    Author:  <csl@sublevel3.org>
**
**    $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 <string>
#include <vector>

struct mail {
	std::string from;
	std::string subj;
};

class Folder {
	std::string name_;
	std::vector<mail> 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;
};


syntax highlighted by Code2HTML, v. 0.9.1