mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-27 19:59:46 +00:00
399e6e788c
* src/frontends/xforms/Color.[Ch]: move to src * src/Color.[Ch] (getRGBColor): move to src/frontends/*/lyx_gui.C * src/BranchList.h (Branch::color_): change type to lyx::RGBColor * src/BranchList.[Ch] (Branch): new constrcutor, set color_ to LColor::background (getColor, setColor): adapt to type change of color_ * src/bufferparams.C (BufferParams::writeFile): adapt to type change of branch color * src/frontends/lyx_gui.h * src/frontends/gtk/lyx_gui.C * src/frontends/qt2/lyx_gui.C * src/frontends/qt4/lyx_gui.C * src/frontends/xforms/lyx_gui.C (getRGBColor): move from src/Color.[Ch] here * src/frontends/gtk/lyx_gui.C * src/frontends/xforms/lyx_gui.C (hexname): use getRGBColor * src/frontends/gtk/GDocument.C (update): adapt to type change of branch color (apply): add comment about color chooser * src/frontends/qt2/QDocumentDialog.C (updateBranchView): adapt to type change of branch color (toggleBranchColor): ditto * src/frontends/qt2/lcolorcache.[Ch] * src/frontends/qt4/lcolorcache.[Ch] (rgb2qcolor): new utility function * src/frontends/qt4/QBranches.C (QBranches::update): adapt to type change of branch color (QBranches::on_colorPB_clicked): ditto * src/frontends/xforms/FormDocument.C (get_current_color): adapt to type change of branch color (FormDocument::branch_update): * src/frontends/xforms/FormPreferences.C (FormPreferences::Colors::LoadBrowse): adapt to RGBColor changes * src/frontends/xforms/FormPreferences.h: remove unneeded RGBColor forward declaration * src/frontends/xforms/XWorkArea.C (XWorkArea::XWorkArea): adapt to RGBColor changes * src/frontends/xforms/Makefile.am: remove Color.[Ch] * src/frontends/xforms/FormColorpicker.[Ch]: adapt to RGBColor changes * src/frontends/xforms/xformsImage.C: adapt to RGBColor changes * src/frontends/controllers/ControlDocument.C (ControlDocument::dispatchParams): adapt to type change of branch color * src/Makefile.am: add Color.[Ch] git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13466 a592a061-630c-0410-9148-cb99ea01b6c8
128 lines
2.7 KiB
C++
128 lines
2.7 KiB
C++
// -*- 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
|
|
*
|
|
* Full author contact details are available in file CREDITS.
|
|
*
|
|
*
|
|
* \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 "Color.h"
|
|
|
|
#include <string>
|
|
#include <list>
|
|
|
|
|
|
class Branch {
|
|
public:
|
|
///
|
|
Branch();
|
|
///
|
|
std::string const & getBranch() const;
|
|
///
|
|
void setBranch(std::string const &);
|
|
///
|
|
bool getSelected() const;
|
|
/** Select/deselect the branch.
|
|
* \return true if the selection status changes.
|
|
*/
|
|
bool setSelected(bool);
|
|
///
|
|
lyx::RGBColor const & getColor() const;
|
|
///
|
|
void setColor(lyx::RGBColor const &);
|
|
/**
|
|
* Set color from a string "#rrggbb".
|
|
* Use LColor:background if the string is no valid color.
|
|
* This ensures compatibility with LyX 1.4.0 that had the symbolic
|
|
* color "none" that was displayed as LColor:background.
|
|
*/
|
|
void setColor(std::string const &);
|
|
|
|
|
|
private:
|
|
///
|
|
std::string branch_;
|
|
///
|
|
bool selected_;
|
|
///
|
|
lyx::RGBColor color_;
|
|
};
|
|
|
|
|
|
class BranchList {
|
|
///
|
|
typedef std::list<Branch> List;
|
|
public:
|
|
typedef List::const_iterator const_iterator;
|
|
|
|
///
|
|
BranchList() : separator_("|") {}
|
|
|
|
///
|
|
bool empty() const { return list.empty(); }
|
|
///
|
|
void clear() { list.clear(); }
|
|
///
|
|
const_iterator begin() const { return list.begin(); }
|
|
const_iterator end() const { return list.end(); }
|
|
|
|
/** \returns the Branch with \c name. If not found, returns 0.
|
|
*/
|
|
Branch * find(std::string const & name);
|
|
Branch const * find(std::string const & name) const;
|
|
|
|
/** Add (possibly multiple (separated by separator())) branches to list
|
|
* \returns true if a branch is added.
|
|
*/
|
|
bool add(std::string const &);
|
|
/** remove a branch from list by name
|
|
* \returns true if a branch is removed.
|
|
*/
|
|
bool remove(std::string const &);
|
|
|
|
private:
|
|
///
|
|
List list;
|
|
///
|
|
std::string separator_;
|
|
};
|
|
|
|
|
|
class BranchNamesEqual : public std::unary_function<Branch, bool> {
|
|
public:
|
|
BranchNamesEqual(std::string const & name)
|
|
: name_(name) {}
|
|
bool operator()(Branch const & branch) const
|
|
{
|
|
return branch.getBranch() == name_;
|
|
}
|
|
private:
|
|
std::string name_;
|
|
};
|
|
|
|
#endif
|