DynExp
Highly flexible laboratory automation for dynamically changing experiments.
Loading...
Searching...
No Matches
DynExpDefinitions.h.in
Go to the documentation of this file.
1// This file is part of DynExp.
2
9#pragma once
10
11Q_DECLARE_METATYPE(QTreeWidgetItem*);
12
16namespace DynExp
17{
21 constexpr auto DynExpName = "DynExp";
22
26 constexpr auto DynExpVersion = "@PROJECT_VERSION@";
27
31 constexpr auto DynExpDescription = "Highly flexible laboratory automation for dynamically changing experiments.";
32
36 constexpr auto DefaultLocale = "en_US.UTF8";
37
41 struct DefaultLocaleSeparator : std::numpunct<char>
42 {
43 virtual char do_decimal_point() const override { return '.'; }
44 virtual std::string do_grouping() const override { return ""; }
45 };
46
50 using ItemIDType = size_t;
51
55 enum : ItemIDType { ItemIDNotSet = 0 };
56}
57
61namespace DynExpUI
62{
67 namespace Icons
68 {
69 constexpr auto DynExp = ":/DynExpManager/icons/DynExp.svg";
70 constexpr auto New = ":/DynExpManager/icons/Document-new.svg";
71 constexpr auto Open = ":/DynExpManager/icons/Document-open.svg";
72 constexpr auto Save = ":/DynExpManager/icons/Document-save.svg";
73 constexpr auto Delete = ":/DynExpManager/icons/Edit-delete.svg";
74 constexpr auto HardwareAdapter = ":/DynExpManager/icons/Media-flash.svg";
75 constexpr auto Instrument = ":/DynExpManager/icons/Utilities-system-monitor.svg";
76 constexpr auto Module = ":/DynExpManager/icons/Application-x-executable.svg";
77 constexpr auto UndockedWindow = ":/DynExpManager/icons/Preferences-system-windows.svg";
78 constexpr auto Undo = ":/DynExpManager/icons/Edit-undo.svg";
79 constexpr auto Ready = ":/DynExpManager/icons/Applications-system.svg";
80 constexpr auto NotReady = ":/DynExpManager/icons/Emblem-system.svg";
81 constexpr auto Running = ":/DynExpManager/icons/Media-playback-start.svg";
82 constexpr auto Stopped = ":/DynExpManager/icons/Media-playback-stop.svg";
83 constexpr auto Paused = ":/DynExpManager/icons/Media-playback-pause.svg";
84 constexpr auto Info = ":/DynExpManager/icons/Emblem-notice.svg";
85 constexpr auto Warning = ":/DynExpManager/icons/Emblem-important-yellow.svg";
86 constexpr auto Error = ":/DynExpManager/icons/Dialog-error-round.svg";
87 constexpr auto NotResponding = ":/DynExpManager/icons/Emblem-question.svg";
88 constexpr auto Network = ":/DynExpManager/icons/Internet-web-browser.svg";
89 constexpr auto Edit = ":/QModules/icons/Text-x-generic_with_pencil.svg";
90 }
91
95 namespace DarkPalette
96 {
97 const QColor darkGray(53, 53, 53);
98 const QColor gray(128, 128, 128);
99 const QColor black(25, 25, 25);
100 const QColor blue(42, 130, 218);
101 const QColor green("lime");
102
103 QPalette GetPalette();
104
105 constexpr auto GetStyleSheet()
106 {
107 return "\
108 QToolTip { color: #ffffff; background-color: #808080; border: 1px solid white; }\
109 QMenu::separator { height: 1px; margin-left: 5px; margin-right: 5px; background: #808080; }\
110 ";
111 }
112 }
113
117 namespace PlotColors
118 {
123 constexpr const std::vector<QColor>& GetColors()
124 {
125 static const std::vector<QColor> Colors {
126 QColor("#8DFF3F"), // lime green
127 QColor("#00D7FF"), // cyan
128 QColor("#FFB000"), // orange
129 QColor("#B07CFF"), // purple
130 QColor("#00C4A7"), // teal
131 QColor("#FF69C6"), // magenta
132 QColor("#4FA3FF"), // sky blue
133 QColor("#FFD84D"), // gold
134 QColor("#66E6A8"), // mint
135 QColor("#D2A8FF") // lavender
136 };
137
138 return Colors;
139 }
140
147 constexpr QColor ColorFromIndex(size_t Index)
148 {
149 const auto& Colors = GetColors();
150
151 return Colors[Index % Colors.size()];
152 }
153 }
154
155 constexpr auto PushButtonDefaultStyleSheet = "border:none;";
156 constexpr auto StatusBarDefaultStyleSheet = "text-align:left center; padding-left:8px;";
157 constexpr auto StatusBarReadyStyleSheetBright = "color: black;";
158 constexpr auto StatusBarReadyStyleSheetDark = "color: white;";
159 constexpr auto StatusBarRunningStyleSheet = "font-weight: bold; background-color:lime; color: black;";
160 constexpr auto StatusBarWarningStyleSheet = "font-weight: bold; background-color: orange; color: black;";
161 constexpr auto StatusBarErrorStyleSheet = "font-weight: bold; background-color: red; color: white;";
162 constexpr auto StatusBarBusyStyleSheet = "font-weight: bold; color: white; background-color: #2A82DA;";
163 constexpr auto StatusBarReadyStyleSheetHover = "background-color: darkgray;";
164 constexpr auto StatusBarRunningStyleSheetHover = "background-color: lightgreen;";
165 constexpr auto StatusBarWarningStyleSheetHover = "background-color: lightsalmon;";
166 constexpr auto StatusBarErrorStyleSheetHover = "background-color: salmon;";
167 constexpr auto StatusBarBusyStyleSheetHover = "background-color: #6da9e6;";
168
169 static auto MakePushButtonStyleSheet(const char* DefaultStyle, const char* HoverStyle)
170 {
171 return std::string("QPushButton{") + StatusBarDefaultStyleSheet + PushButtonDefaultStyleSheet + DefaultStyle
172 + "}QPushButton:hover{" + HoverStyle + "}";
173 }
174
181
182 QLinearGradient GetDefaultLinearGradient();
183}
184
189constexpr int CompilationYear()
190{
191 constexpr int YearChar = 7;
192 constexpr int NumYearChars = 4;
193
194 int result = 0;
195 for (int i = YearChar + NumYearChars - 1, Multiplier = 1; i >= YearChar; i--, Multiplier *= 10)
196 result += (__DATE__[i] - '0') * Multiplier;
197
198 return result;
199}
Q_DECLARE_METATYPE(QTreeWidgetItem *)
constexpr int CompilationYear()
Extracts the compilation year from the DATE macro.
const QColor darkGray(53, 53, 53)
const QColor gray(128, 128, 128)
const QColor black(25, 25, 25)
const QColor green("lime")
const QColor blue(42, 130, 218)
constexpr auto Warning
constexpr auto Stopped
constexpr auto Instrument
constexpr auto UndockedWindow
constexpr auto NotReady
constexpr auto HardwareAdapter
constexpr auto Network
constexpr auto Paused
constexpr auto Module
constexpr auto NotResponding
constexpr auto Running
constexpr auto Delete
constexpr QColor ColorFromIndex(size_t Index)
Returns the plot color from the cycle list to be assigned to the plot with index Index.
constexpr const std::vector< QColor > & GetColors()
Returns the plot color cycle list.
DynExp's user interface namespace contains user interface style definitions.
constexpr auto PushButtonDefaultStyleSheet
constexpr auto StatusBarDefaultStyleSheet
const auto PushButtonReadyStyleSheetBright
const auto PushButtonRunningStyleSheet
constexpr auto StatusBarWarningStyleSheet
constexpr auto StatusBarReadyStyleSheetBright
const auto PushButtonErrorStyleSheet
constexpr auto StatusBarRunningStyleSheet
constexpr auto StatusBarBusyStyleSheetHover
const auto PushButtonReadyStyleSheetDark
constexpr auto StatusBarReadyStyleSheetDark
constexpr auto StatusBarErrorStyleSheetHover
constexpr auto StatusBarErrorStyleSheet
QLinearGradient GetDefaultLinearGradient()
constexpr auto StatusBarWarningStyleSheetHover
constexpr auto StatusBarReadyStyleSheetHover
static auto MakePushButtonStyleSheet(const char *DefaultStyle, const char *HoverStyle)
constexpr auto StatusBarBusyStyleSheet
const auto PushButtonBusyStyleSheet
constexpr auto StatusBarRunningStyleSheetHover
const auto PushButtonWarningStyleSheet
DynExp's main namespace contains the implementation of DynExp including classes to manage resources (...
constexpr auto DefaultLocale
Default locale string.
constexpr auto DynExpName
DynExp's name string
size_t ItemIDType
ID type of objects/items managed by DynExp.
constexpr auto DynExpDescription
DynExp's description string
constexpr auto DynExpVersion
DynExp's version string
Default number separators used within DynExp.
virtual char do_decimal_point() const override
virtual std::string do_grouping() const override