Cleanup: indentation of public/protected/private keywords

This commit is contained in:
Twan van Laarhoven
2020-05-12 21:57:37 +02:00
parent 86aec577a2
commit 0c3712b61a
167 changed files with 751 additions and 752 deletions
+1 -1
View File
@@ -23,7 +23,7 @@ enum AddingOrRemoving {ADD, REMOVE};
/// Adding or removing some objects from a vector
template <typename T>
class GenericAddAction {
public:
public:
GenericAddAction(AddingOrRemoving, const T& item, const vector<T>& container);
GenericAddAction(AddingOrRemoving, const vector<T>& items, const vector<T>& container);
+6 -6
View File
@@ -26,17 +26,17 @@ DECLARE_POINTER_TYPE(Keyword);
/// An Action the changes the keyword list of a set
class KeywordListAction : public Action {
public:
public:
inline KeywordListAction(Set& set) : set(set) {}
protected:
protected:
Set& set; // the set owns this action, so the set will not be destroyed before this
// therefore we don't need a smart pointer
};
/// Adding or removing a keyword from a set
class AddKeywordAction : public KeywordListAction {
public:
public:
AddKeywordAction(Set& set);
AddKeywordAction(AddingOrRemoving, Set& set, const KeywordP& keyword);
@@ -56,7 +56,7 @@ class AddKeywordAction : public KeywordListAction {
* - reminder text
*/
class KeywordTextValue : public FakeTextValue {
public:
public:
KeywordTextValue(const TextFieldP& field, Keyword* keyword, String* underlying, bool editable, bool untagged = false)
: FakeTextValue(field, underlying, editable, untagged)
, keyword(*keyword)
@@ -67,7 +67,7 @@ class KeywordTextValue : public FakeTextValue {
/// A FakeTextValue that is used to edit reminder text scripts
class KeywordReminderTextValue : public KeywordTextValue {
public:
public:
KeywordReminderTextValue(Set& set, const TextFieldP& field, Keyword* keyword, bool editable);
String errors; ///< Errors in the script
@@ -88,7 +88,7 @@ class KeywordReminderTextValue : public KeywordTextValue {
/// Changing the mode of a keyword
class ChangeKeywordModeAction : public Action {
public:
public:
ChangeKeywordModeAction(Keyword& keyword, const String& new_mode);
virtual String getName(bool to_undo) const;
+14 -14
View File
@@ -28,17 +28,17 @@ DECLARE_POINTER_TYPE(PackType);
/// An Action the changes the card list of a set
class CardListAction : public Action {
public:
public:
inline CardListAction(Set& set) : set(set) {}
protected:
protected:
Set& set; // the set owns this action, so the set will not be destroyed before this
// therefore we don't need a smart pointer
};
/// Adding a new card to a set
class AddCardAction : public CardListAction {
public:
public:
/// Add a newly allocated card
AddCardAction(Set& set);
AddCardAction(AddingOrRemoving, Set& set, const CardP& card);
@@ -54,7 +54,7 @@ class AddCardAction : public CardListAction {
/// Change the position of a card in the card list by swapping two cards
class ReorderCardsAction : public CardListAction {
public:
public:
ReorderCardsAction(Set& set, size_t card_id1, size_t card_id2);
virtual String getName(bool to_undo) const;
@@ -68,14 +68,14 @@ class ReorderCardsAction : public CardListAction {
/// An action that affects the rendering/display/look of a set or cards in the set
class DisplayChangeAction : public Action {
public:
public:
virtual String getName(bool to_undo) const;
virtual void perform(bool to_undo);
};
/// Changing the style of a a card
class ChangeCardStyleAction : public DisplayChangeAction {
public:
public:
ChangeCardStyleAction(const CardP& card, const StyleSheetP& stylesheet);
virtual String getName(bool to_undo) const;
@@ -90,13 +90,13 @@ class ChangeCardStyleAction : public DisplayChangeAction {
/// Changing the style of a set to that of a card
class ChangeSetStyleAction : public DisplayChangeAction {
public:
public:
ChangeSetStyleAction(Set& set, const CardP& card);
virtual String getName(bool to_undo) const;
virtual void perform(bool to_undo);
private:
private:
Set& set; ///< The affected set
CardP card; ///< The card whos stylesheet is copied to the set
StyleSheetP stylesheet; ///< The old stylesheet of the set
@@ -106,7 +106,7 @@ class ChangeSetStyleAction : public DisplayChangeAction {
/// Changing the styling of a card to become custom/non-custom
/** i.e. toggle card->has_styling */
class ChangeCardHasStylingAction : public DisplayChangeAction {
public:
public:
ChangeCardHasStylingAction(Set& set, const CardP& card);
virtual String getName(bool to_undo) const;
@@ -122,17 +122,17 @@ class ChangeCardHasStylingAction : public DisplayChangeAction {
/// An Action the changes the pack types of a set
class PackTypesAction : public Action {
public:
public:
inline PackTypesAction(Set& set) : set(set) {}
protected:
protected:
Set& set; // the set owns this action, so the set will not be destroyed before this
// therefore we don't need a smart pointer
};
/// Adding/removing a pack from a Set
class AddPackAction : public PackTypesAction {
public:
public:
/// Add a newly allocated card
AddPackAction(AddingOrRemoving, Set& set, const PackTypeP& pack);
@@ -144,14 +144,14 @@ class AddPackAction : public PackTypesAction {
/// Updating a pack in a Set
class ChangePackAction : public PackTypesAction {
public:
public:
/// Add a newly allocated card
ChangePackAction(Set& set, size_t pos, const PackTypeP& new_pack);
virtual String getName(bool to_undo) const;
virtual void perform(bool to_undo);
private:
private:
PackTypeP pack;
size_t pos;
};
+36 -36
View File
@@ -24,7 +24,7 @@ class SymbolPartAction : public Action {};
/// Anything that changes a set of parts
class SymbolPartsAction : public SymbolPartAction {
public:
public:
SymbolPartsAction(const set<SymbolPartP>& parts);
const set<SymbolPartP> parts; ///< Affected parts
@@ -37,7 +37,7 @@ class SymbolPartListAction : public SymbolPartAction {};
/// Move some symbol parts
class SymbolPartMoveAction : public SymbolPartsAction {
public:
public:
SymbolPartMoveAction(const set<SymbolPartP>& parts, const Vector2D& delta = Vector2D());
virtual String getName(bool to_undo) const;
@@ -46,13 +46,13 @@ class SymbolPartMoveAction : public SymbolPartsAction {
/// Update this action to move some more
void move(const Vector2D& delta);
private:
private:
Vector2D delta; ///< How much to move
Vector2D moved; ///< How much has been moved
Bounds bounds; ///< Bounding box of the thing we are moving
void movePart(SymbolPart& part); ///< Move a single part
public:
public:
bool constrain; ///< Constrain movement?
int snap; ///< Snap to grid?
};
@@ -61,13 +61,13 @@ class SymbolPartMoveAction : public SymbolPartsAction {
/// Transforming symbol parts using a matrix
class SymbolPartMatrixAction : public SymbolPartsAction {
public:
public:
SymbolPartMatrixAction(const set<SymbolPartP>& parts, const Vector2D& center);
/// Update this action to move some more
void move(const Vector2D& delta);
protected:
protected:
/// Perform the transformation using the given matrix
void transform(const Matrix2D& m);
void transform(SymbolPart& part, const Matrix2D& m);
@@ -77,7 +77,7 @@ class SymbolPartMatrixAction : public SymbolPartsAction {
/// Rotate some symbol parts
class SymbolPartRotateAction : public SymbolPartMatrixAction {
public:
public:
SymbolPartRotateAction(const set<SymbolPartP>& parts, const Vector2D& center);
virtual String getName(bool to_undo) const;
@@ -89,9 +89,9 @@ class SymbolPartRotateAction : public SymbolPartMatrixAction {
/// Update this action to rotate by a deltaAngle
void rotateBy(Radians deltaAngle);
private:
private:
Radians angle; ///< How much to rotate?
public:
public:
bool constrain; ///< Constrain movement?
};
@@ -100,7 +100,7 @@ class SymbolPartRotateAction : public SymbolPartMatrixAction {
/// Shear some symbol parts
class SymbolPartShearAction : public SymbolPartMatrixAction {
public:
public:
SymbolPartShearAction(const set<SymbolPartP>& parts, const Vector2D& center);
virtual String getName(bool to_undo) const;
@@ -109,7 +109,7 @@ class SymbolPartShearAction : public SymbolPartMatrixAction {
/// Change shear by a given amount
void move(const Vector2D& deltaShear);
private:
private:
Vector2D shear; ///< Shearing, shear.x == 0 || shear.y == 0
Vector2D moved;
void shearBy(const Vector2D& shear);
@@ -123,7 +123,7 @@ class SymbolPartShearAction : public SymbolPartMatrixAction {
/// Scale some symbol parts
class SymbolPartScaleAction : public SymbolPartsAction {
public:
public:
SymbolPartScaleAction(const set<SymbolPartP>& parts, int scaleX, int scaleY);
virtual String getName(bool to_undo) const;
@@ -134,7 +134,7 @@ class SymbolPartScaleAction : public SymbolPartsAction {
/// Update the action's effect
void update();
private:
private:
Vector2D old_min, old_size; ///< the original pos/size
Vector2D new_real_min, new_real_size; ///< the target pos/sizevoid shearBy(const Vector2D& shear)
Vector2D new_min, new_size; ///< the target pos/size after applying constrains
@@ -144,7 +144,7 @@ class SymbolPartScaleAction : public SymbolPartsAction {
void transformPart(SymbolPart&);
/// Transform a single vector
inline Vector2D transform(const Vector2D& v);
public:
public:
bool constrain; ///< Constrain movement?
int snap; ///< Snap to grid?
};
@@ -153,14 +153,14 @@ class SymbolPartScaleAction : public SymbolPartsAction {
/// Change the name of a symbol part
class CombiningModeAction : public SymbolPartsAction {
public:
public:
// All parts must be SymbolParts
CombiningModeAction(const set<SymbolPartP>& parts, SymbolShapeCombine mode);
virtual String getName(bool to_undo) const;
virtual void perform(bool to_undo);
private:
private:
void add(const SymbolPartP&, SymbolShapeCombine mode);
vector<pair<SymbolShapeP,SymbolShapeCombine> > parts; ///< Affected parts with new combining modes
};
@@ -169,14 +169,14 @@ class CombiningModeAction : public SymbolPartsAction {
/// Change the name of a symbol part
class SymbolPartNameAction : public SymbolPartAction {
public:
public:
SymbolPartNameAction(const SymbolPartP& part, const String& name, size_t old_cursor, size_t new_cursor);
virtual String getName(bool to_undo) const;
virtual void perform(bool to_undo);
virtual bool merge(const Action& action);
public:
public:
SymbolPartP part; ///< Affected part
String part_name; ///< New name
size_t old_cursor; ///< Cursor position
@@ -187,13 +187,13 @@ class SymbolPartNameAction : public SymbolPartAction {
/// Adding a part to a symbol, added at the front of the list (drawn on top)
class AddSymbolPartAction : public SymbolPartListAction {
public:
public:
AddSymbolPartAction(Symbol& symbol, const SymbolPartP& part);
virtual String getName(bool to_undo) const;
virtual void perform(bool to_undo);
private:
private:
Symbol& symbol; ///< Symbol to add the part to
SymbolPartP part; ///< Part to add
};
@@ -202,17 +202,17 @@ class AddSymbolPartAction : public SymbolPartListAction {
/// Removing parts from a symbol
class RemoveSymbolPartsAction : public SymbolPartListAction {
public:
public:
RemoveSymbolPartsAction(Symbol& symbol, const set<SymbolPartP>& parts);
virtual String getName(bool to_undo) const;
virtual void perform(bool to_undo);
private:
private:
Symbol& symbol;
/// Check for removals in a group
void check(SymbolGroup& group, const set<SymbolPartP>& parts);
public:
public:
/// A removal step
struct Removal {
inline Removal(SymbolGroup& parent, size_t pos, const SymbolPartP& removed)
@@ -222,7 +222,7 @@ class RemoveSymbolPartsAction : public SymbolPartListAction {
size_t pos;
SymbolPartP removed;
};
private:
private:
/// Removed parts, sorted by ascending pos
vector<Removal> removals;
};
@@ -231,7 +231,7 @@ class RemoveSymbolPartsAction : public SymbolPartListAction {
/// Duplicating parts in a symbol
class DuplicateSymbolPartsAction : public SymbolPartListAction {
public:
public:
DuplicateSymbolPartsAction(Symbol& symbol, const set<SymbolPartP>& parts);
virtual String getName(bool to_undo) const;
@@ -240,7 +240,7 @@ class DuplicateSymbolPartsAction : public SymbolPartListAction {
/// Fill a set with all the new parts
void getParts(set<SymbolPartP>& parts);
private:
private:
Symbol& symbol;
/// Duplicates of parts and their positions, sorted by ascending pos
vector<pair<SymbolPartP, size_t> > duplications;
@@ -251,28 +251,28 @@ class DuplicateSymbolPartsAction : public SymbolPartListAction {
/// Change the position of a part in a symbol, by moving a part.
class ReorderSymbolPartsAction : public SymbolPartListAction {
public:
public:
ReorderSymbolPartsAction(SymbolGroup& old_parent, size_t old_position, SymbolGroup& new_parent, size_t new_position);
virtual String getName(bool to_undo) const;
virtual void perform(bool to_undo);
private:
private:
SymbolGroup* old_parent, *new_parent;///< Parents to move from and to
public:
public:
size_t old_position, new_position; ///< Positions to move from and to
};
/// Break up a single group, and put its contents at a specific position
class UngroupReorderSymbolPartsAction : public SymbolPartListAction {
public:
public:
/// Remove all the given groups
UngroupReorderSymbolPartsAction(SymbolGroup& group_parent, size_t group_pos, SymbolGroup& target_parent, size_t target_pos);
virtual String getName(bool to_undo) const;
virtual void perform(bool to_undo);
private:
private:
SymbolGroup& group_parent;
size_t group_pos;
SymbolGroupP group; ///< Group to destroy
@@ -284,29 +284,29 @@ class UngroupReorderSymbolPartsAction : public SymbolPartListAction {
/// Group multiple symbol parts together
class GroupSymbolPartsActionBase : public SymbolPartListAction {
public:
public:
GroupSymbolPartsActionBase(SymbolGroup& root);
virtual void perform(bool to_undo);
protected:
protected:
SymbolGroup& root; ///< Symbol or group to group stuff in
vector<SymbolPartP> old_part_list; ///< Old part list of the symbol
};
/// Group multiple symbol parts together
class GroupSymbolPartsAction : public GroupSymbolPartsActionBase {
public:
public:
GroupSymbolPartsAction(SymbolGroup& root, const set<SymbolPartP>& parts, const SymbolGroupP& group);
virtual String getName(bool to_undo) const;
private:
private:
SymbolGroupP group;
};
/// Break up one or more SymbolGroups
class UngroupSymbolPartsAction : public GroupSymbolPartsActionBase {
public:
public:
/// Remove all the given groups
UngroupSymbolPartsAction(SymbolGroup& root, const set<SymbolPartP>& groups);
+4 -4
View File
@@ -301,13 +301,13 @@ double ssqrt(double x) {
// Remove a single control point
class SinglePointRemoveAction : public Action, public IntrusivePtrBase<SinglePointRemoveAction> {
public:
public:
SinglePointRemoveAction(const SymbolShapeP& shape, UInt position);
virtual String getName(bool to_undo) const { return _("Delete point"); }
virtual void perform(bool to_undo);
private:
private:
SymbolShapeP shape;
UInt position;
ControlPointP point; ///< Removed point
@@ -387,13 +387,13 @@ DECLARE_POINTER_TYPE(SinglePointRemoveAction);
// Internally represented as a list of Single Point Remove Actions.
// Not all points mat be removed, at least two points must remain.
class ControlPointRemoveAction : public Action {
public:
public:
ControlPointRemoveAction(const SymbolShapeP& shape, const set<ControlPointP>& to_delete);
virtual String getName(bool to_undo) const;
virtual void perform(bool to_undo);
private:
private:
vector<SinglePointRemoveActionP> removals;
};
+21 -21
View File
@@ -51,7 +51,7 @@ protected:
/// Moving a control point in a symbol
class ControlPointMoveAction : public ExtendableAction {
public:
public:
ControlPointMoveAction(const set<ControlPointP>& points);
virtual String getName(bool to_undo) const;
@@ -60,11 +60,11 @@ class ControlPointMoveAction : public ExtendableAction {
/// Update this action to move some more
void move(const Vector2D& delta);
private:
private:
set<ControlPointP> points; ///< Points to move
vector<Vector2D> oldValues; ///< Their old positions
Vector2D delta; ///< Amount we moved
public:
public:
bool constrain; ///< Constrain movement?
int snap; ///< Snap to grid?
};
@@ -73,7 +73,7 @@ class ControlPointMoveAction : public ExtendableAction {
/// Moving a handle(before/after) of a control point in a symbol
class HandleMoveAction : public ExtendableAction {
public:
public:
HandleMoveAction(const SelectedHandle& handle);
virtual String getName(bool to_undo) const;
@@ -82,12 +82,12 @@ class HandleMoveAction : public ExtendableAction {
/// Update this action to move some more
void move(const Vector2D& delta);
private:
private:
SelectedHandle handle; ///< The handle to move
Vector2D old_handle; ///< Old value of this handle
Vector2D old_other; ///< Old value of other handle, needed for contraints
Vector2D delta; ///< Amount we moved
public:
public:
bool constrain; ///< Constrain movement?
int snap; ///< Snap to grid?
};
@@ -96,7 +96,7 @@ class HandleMoveAction : public ExtendableAction {
/// Utility class to update a control point
class ControlPointUpdate {
public:
public:
ControlPointUpdate(const ControlPointP& pnt);
/// Perform or undo an update on this control point
@@ -112,13 +112,13 @@ class ControlPointUpdate {
/// Changing a line to a curve and vice versa
class SegmentModeAction : public Action {
public:
public:
SegmentModeAction(const ControlPointP& p1, const ControlPointP& p2, SegmentMode mode);
virtual String getName(bool to_undo) const;
virtual void perform(bool to_undo);
protected:
protected:
ControlPointUpdate point1, point2;
};
@@ -126,13 +126,13 @@ class SegmentModeAction : public Action {
/// Locking a control point
class LockModeAction : public Action {
public:
public:
LockModeAction(const ControlPointP& p, LockMode mode);
virtual String getName(bool to_undo) const;
virtual void perform(bool to_undo);
private:
private:
ControlPointUpdate point; ///< The affected point
};
@@ -142,7 +142,7 @@ class LockModeAction : public Action {
/** Inherits from SegmentModeAction because it also has that effect
*/
class CurveDragAction : public SegmentModeAction {
public:
public:
CurveDragAction(const ControlPointP& point1, const ControlPointP& point2);
virtual String getName(bool to_undo) const;
@@ -156,7 +156,7 @@ class CurveDragAction : public SegmentModeAction {
/// Insert a new point in a symbol shape
class ControlPointAddAction : public Action {
public:
public:
/// Insert a new point in shape, after position insertAfter_, at the time t on the segment
ControlPointAddAction(const SymbolShapeP& shape, UInt insert_after, double t);
@@ -165,7 +165,7 @@ class ControlPointAddAction : public Action {
inline ControlPointP getNewPoint() const { return new_point; }
private:
private:
SymbolShapeP shape; ///< SymbolShape we are in
ControlPointP new_point; ///< The point to insert
UInt insert_after; ///< Insert after index .. in the array
@@ -185,7 +185,7 @@ unique_ptr<Action> control_point_remove_action(const SymbolShapeP& shape, const
/// Moving the handle or the center of a symbol symmetry
class SymmetryMoveAction : public Action {
public:
public:
SymmetryMoveAction(SymbolSymmetry& symmetry, bool is_handle);
virtual String getName(bool to_undo) const;
@@ -194,12 +194,12 @@ class SymmetryMoveAction : public Action {
/// Update this action to move some more
void move(const Vector2D& delta);
private:
private:
SymbolSymmetry& symmetry; ///< Affected part
bool is_handle; ///< Move the handle or the center?
Vector2D delta; ///< Amount we moved
Vector2D original; ///< Original value
public:
public:
bool constrain; ///< Constrain movement?
int snap; ///< Snap to grid?
};
@@ -208,12 +208,12 @@ class SymmetryMoveAction : public Action {
/// Change the type of symmetry
class SymmetryTypeAction : public Action {
public:
public:
SymmetryTypeAction(SymbolSymmetry& symmetry, SymbolSymmetryType type);
virtual String getName(bool to_undo) const;
virtual void perform(bool to_undo);
private:
private:
SymbolSymmetry& symmetry;
SymbolSymmetryType type;
String old_name;
@@ -224,12 +224,12 @@ class SymmetryTypeAction : public Action {
/// Change the number of copies of a symmetry
class SymmetryCopiesAction : public Action {
public:
public:
SymmetryCopiesAction(SymbolSymmetry& symmetry, int copies);
virtual String getName(bool to_undo) const;
virtual void perform(bool to_undo);
private:
private:
SymbolSymmetry& symmetry;
int copies;
String old_name;
+2 -2
View File
@@ -54,7 +54,7 @@ inline void swap_value(MultipleChoiceValue& a, MultipleChoiceValue::ValueType& b
/// A ValueAction that swaps between old and new values
template <typename T, bool ALLOW_MERGE>
class SimpleValueAction : public ValueAction {
public:
public:
inline SimpleValueAction(const intrusive_ptr<T>& value, const typename T::ValueType& new_value)
: ValueAction(value), new_value(new_value)
{}
@@ -77,7 +77,7 @@ class SimpleValueAction : public ValueAction {
return false;
}
private:
private:
typename T::ValueType new_value;
};
+12 -12
View File
@@ -35,7 +35,7 @@ DECLARE_POINTER_TYPE(PackageChoiceValue);
/// An Action the changes a Value
class ValueAction : public Action {
public:
public:
inline ValueAction(const ValueP& value)
: valueP(value), card(nullptr), old_time_modified(wxDateTime::Now())
{}
@@ -48,7 +48,7 @@ class ValueAction : public Action {
const ValueP valueP; ///< The modified value
const Card* card; ///< The card the value is on, or null if it is not a card value
private:
private:
wxDateTime old_time_modified;
};
@@ -66,7 +66,7 @@ unique_ptr<ValueAction> value_action(const PackageChoiceValueP& value, const St
/// An action that changes a TextValue
class TextValueAction : public ValueAction {
public:
public:
TextValueAction(const TextValueP& value, size_t start, size_t end, size_t new_end, const Defaultable<String>& new_value, const String& name);
virtual String getName(bool to_undo) const;
@@ -77,7 +77,7 @@ class TextValueAction : public ValueAction {
/// The modified selection
size_t selection_start, selection_end;
private:
private:
inline TextValue& value() const;
size_t new_selection_end;
@@ -96,7 +96,7 @@ unique_ptr<TextValueAction> typing_action(const TextValueP& value, size_t start_
/// Toggle reminder text for a keyword on or off
class TextToggleReminderAction : public ValueAction {
public:
public:
TextToggleReminderAction(const TextValueP& value, size_t pos);
virtual String getName(bool to_undo) const;
@@ -112,17 +112,17 @@ class TextToggleReminderAction : public ValueAction {
/// A TextValueAction without the start and end stuff
class SimpleTextValueAction : public ValueAction {
public:
public:
SimpleTextValueAction(const Card* card, const TextValueP& value, const Defaultable<String>& new_value);
virtual void perform(bool to_undo);
bool merge(const SimpleTextValueAction& action);
private:
private:
Defaultable<String> new_value;
};
/// An action from "Replace All"; just a bunch of value actions performed in sequence
class ReplaceAllAction : public Action {
public:
public:
~ReplaceAllAction();
virtual String getName(bool to_undo) const;
@@ -135,7 +135,7 @@ class ReplaceAllAction : public Action {
/// Notification that a script caused a value to change
class ScriptValueEvent : public Action {
public:
public:
inline ScriptValueEvent(const Card* card, const Value* value) : card(card), value(value) {}
virtual String getName(bool to_undo) const;
@@ -147,7 +147,7 @@ class ScriptValueEvent : public Action {
/// Notification that a script caused a style to change
class ScriptStyleEvent : public Action {
public:
public:
inline ScriptStyleEvent(const StyleSheet* stylesheet, const Style* style)
: stylesheet(stylesheet), style(style)
{}
@@ -165,7 +165,7 @@ class ScriptStyleEvent : public Action {
/// A loose object for performing ValueActions on a certain value.
/** Used to reduce coupling */
class ValueActionPerformer {
public:
public:
ValueActionPerformer(const ValueP& value, Card* card, const SetP& set);
~ValueActionPerformer();
/// Perform an action. The performer takes ownerwhip of the action.
@@ -173,7 +173,7 @@ class ValueActionPerformer {
const ValueP value; ///< The value
Package& getLocalPackage();
private:
private:
Card* card; ///< Card the value is on (if any)
SetP set; ///< Set for the actions
};