mirror of
https://github.com/GothenburgBitFactory/timewarrior.git
synced 2025-07-07 20:06:39 +02:00
Palette: Represents a color palette
This commit is contained in:
parent
b8adbdb1ad
commit
8befd604bb
3 changed files with 118 additions and 0 deletions
|
@ -14,6 +14,7 @@ set (timew_SRCS CLI.cpp CLI.h
|
|||
Extensions.cpp Extensions.h
|
||||
Interval.cpp Interval.h
|
||||
Lexer.cpp Lexer.h
|
||||
Palette.cpp Palette.h
|
||||
Rules.cpp Rules.h
|
||||
Timeline.cpp Timeline.h
|
||||
init.cpp
|
||||
|
|
67
src/Palette.cpp
Normal file
67
src/Palette.cpp
Normal file
|
@ -0,0 +1,67 @@
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright 2015 - 2016, Paul Beckingham, Federico Hernandez.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included
|
||||
// in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
//
|
||||
// http://www.opensource.org/licenses/mit-license.php
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <cmake.h>
|
||||
#include <Palette.h>
|
||||
#include <iostream> // TODO Remove.
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
void Palette::initialize (const Rules& rules)
|
||||
{
|
||||
for (auto& entry : rules.all ("theme.palette.color"))
|
||||
{
|
||||
std::cout << "# Palette " << entry << " = " << rules.get (entry) << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
Color Palette::next ()
|
||||
{
|
||||
return _colors[_current++ % _colors.size ()];
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
void Palette::defaults ()
|
||||
{
|
||||
_colors =
|
||||
{
|
||||
Color ("white on red"),
|
||||
Color ("white on blue"),
|
||||
Color ("black on green"),
|
||||
Color ("black on magenta"),
|
||||
Color ("black on cyan"),
|
||||
Color ("black on yellow"),
|
||||
Color ("black on white"),
|
||||
Color ("white on bright red"),
|
||||
Color ("white on bright blue"),
|
||||
Color ("black on bright green"),
|
||||
Color ("black on bright magenta"),
|
||||
Color ("black on bright cyan"),
|
||||
Color ("black on bright yellow"),
|
||||
};
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
50
src/Palette.h
Normal file
50
src/Palette.h
Normal file
|
@ -0,0 +1,50 @@
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright 2015 - 2016, Paul Beckingham, Federico Hernandez.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included
|
||||
// in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
//
|
||||
// http://www.opensource.org/licenses/mit-license.php
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef INCLUDED_PALETTE
|
||||
#define INCLUDED_PALETTE
|
||||
|
||||
#include <Color.h>
|
||||
#include <Rules.h>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
class Palette
|
||||
{
|
||||
public:
|
||||
Palette () = default;
|
||||
void initialize (const Rules&);
|
||||
Color next ();
|
||||
|
||||
private:
|
||||
void defaults ();
|
||||
|
||||
private:
|
||||
std::vector <Color> _colors {};
|
||||
int _current {0};
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue