2003-08-17 11:28:23 +00:00
|
|
|
// -*- C++ -*-
|
|
|
|
/**
|
|
|
|
* \file BranchList.h
|
|
|
|
* This file is part of LyX, the document processor.
|
|
|
|
* Licence details can be found in the file COPYING.
|
|
|
|
* \author Martin Vermeer
|
|
|
|
*
|
2003-08-23 00:17:00 +00:00
|
|
|
* Full author contact details are available in file CREDITS.
|
2003-08-17 11:28:23 +00:00
|
|
|
*
|
|
|
|
*
|
|
|
|
* \class Branch
|
|
|
|
*
|
|
|
|
* A class describing a 'branch', i.e., a named alternative for
|
|
|
|
* selectively outputting some parts of a document while suppressing
|
|
|
|
* other parts.
|
|
|
|
*
|
|
|
|
* A branch has a name, can either be selected or not, and uses a
|
|
|
|
* user-specifyable background colour. All these can be set and
|
|
|
|
* queried.
|
|
|
|
*
|
|
|
|
* \class BranchList
|
|
|
|
*
|
|
|
|
* A class containing a vector of all defined branches within a
|
|
|
|
* document. Has methods for selecting or deselecting branches by
|
|
|
|
* name, for outputting a '|'-separated string of all elements or only
|
|
|
|
* the selected ones, and for adding and removing elements.
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef BRANCHES_H
|
|
|
|
#define BRANCHES_H
|
|
|
|
|
|
|
|
#include "LString.h"
|
|
|
|
#include <list>
|
|
|
|
|
|
|
|
class Branch {
|
|
|
|
public:
|
|
|
|
///
|
|
|
|
string const getBranch() const;
|
|
|
|
///
|
|
|
|
void setBranch(string const &);
|
|
|
|
///
|
|
|
|
bool getSelected() const;
|
|
|
|
///
|
|
|
|
void setSelected(bool);
|
|
|
|
///
|
|
|
|
string const getColor() const;
|
|
|
|
///
|
|
|
|
void setColor(string const &);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
///
|
|
|
|
string branch_;
|
|
|
|
///
|
|
|
|
bool selected_;
|
|
|
|
///
|
|
|
|
string color_;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class BranchList {
|
|
|
|
public:
|
|
|
|
///
|
2003-08-18 12:27:49 +00:00
|
|
|
BranchList() : separator_("|") {}
|
2003-08-17 11:28:23 +00:00
|
|
|
|
|
|
|
///
|
|
|
|
typedef std::list<Branch> List;
|
|
|
|
|
|
|
|
///
|
|
|
|
void clear();
|
|
|
|
///
|
2003-08-18 12:27:49 +00:00
|
|
|
bool empty() { return list.empty(); }
|
2003-08-17 11:28:23 +00:00
|
|
|
///
|
2003-08-18 12:27:49 +00:00
|
|
|
bool size() const { return list.size(); }
|
2003-08-17 11:28:23 +00:00
|
|
|
///
|
2003-08-18 12:27:49 +00:00
|
|
|
List::const_iterator begin() const { return list.begin(); }
|
2003-08-17 11:28:23 +00:00
|
|
|
///
|
2003-08-18 12:27:49 +00:00
|
|
|
List::const_iterator end() const { return list.end(); }
|
2003-08-17 11:28:23 +00:00
|
|
|
///
|
|
|
|
string getColor(string const &) const;
|
|
|
|
///
|
|
|
|
void setColor(string const &, string const &);
|
|
|
|
/// Select/deselect multiple branches given in '|'-separated string
|
|
|
|
void setSelected(string const &, bool);
|
|
|
|
/// Add multiple branches to list
|
|
|
|
void add(string const &);
|
|
|
|
/// remove a branch from list by name
|
|
|
|
void remove(string const &);
|
|
|
|
/// return whether this branch is selected
|
|
|
|
bool selected(string const &) const;
|
|
|
|
/// return, as a '|'-separated string, all branch names
|
|
|
|
string allBranches() const;
|
|
|
|
///
|
|
|
|
string allSelected() const;
|
|
|
|
///
|
|
|
|
string const separator() const;
|
|
|
|
|
|
|
|
private:
|
|
|
|
///
|
|
|
|
List list;
|
|
|
|
///
|
|
|
|
string separator_;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|