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 constexpr auto GetStyleSheet()
105 {
106 return "\
107 QToolTip { color: #ffffff; background-color: #808080; border: 1px solid white; }\
108 QMenu::separator { height: 1px; margin-left: 5px; margin-right: 5px; background: #808080; }\
109 ";
110 }
111 }
112
113 constexpr auto DefaultQChartTheme = QChart::ChartThemeDark;
114 constexpr auto DefaultQ3DTheme = Q3DTheme::ThemeStoneMoss;
115 constexpr auto PushButtonDefaultStyleSheet = "border:none;";
116 constexpr auto StatusBarDefaultStyleSheet = "text-align:left center; padding-left:8px;";
117 constexpr auto StatusBarReadyStyleSheetBright = "color: black;";
118 constexpr auto StatusBarReadyStyleSheetDark = "color: white;";
119 constexpr auto StatusBarRunningStyleSheet = "font-weight: bold; background-color:lime; color: black;";
120 constexpr auto StatusBarWarningStyleSheet = "font-weight: bold; background-color: orange; color: black;";
121 constexpr auto StatusBarErrorStyleSheet = "font-weight: bold; background-color: red; color: white;";
122 constexpr auto StatusBarBusyStyleSheet = "font-weight: bold; color: white; background-color: #2A82DA;";
123 constexpr auto StatusBarReadyStyleSheetHover = "background-color: darkgray;";
124 constexpr auto StatusBarRunningStyleSheetHover = "background-color: lightgreen;";
125 constexpr auto StatusBarWarningStyleSheetHover = "background-color: lightsalmon;";
126 constexpr auto StatusBarErrorStyleSheetHover = "background-color: salmon;";
127 constexpr auto StatusBarBusyStyleSheetHover = "background-color: #6da9e6;";
128
129 static auto MakePushButtonStyleSheet(const char* DefaultStyle, const char* HoverStyle)
130 {
131 return std::string("QPushButton{") + StatusBarDefaultStyleSheet + PushButtonDefaultStyleSheet + DefaultStyle
132 + "}QPushButton:hover{" + HoverStyle + "}";
133 }
134
141
142 QLinearGradient GetDefaultLinearGradient();
143}
144
149constexpr int CompilationYear()
150{
151 constexpr int YearChar = 7;
152 constexpr int NumYearChars = 4;
153
154 int result = 0;
155 for (int i = YearChar + NumYearChars - 1, Multiplier = 1; i >= YearChar; i--, Multiplier *= 10)
156 result += (__DATE__[i] - '0') * Multiplier;
157
158 return result;
159}
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
DynExp's user interface namespace contains user interface style definitions.
constexpr auto PushButtonDefaultStyleSheet
constexpr auto StatusBarDefaultStyleSheet
constexpr auto DefaultQChartTheme
static const auto PushButtonReadyStyleSheetBright
static const auto PushButtonRunningStyleSheet
constexpr auto StatusBarWarningStyleSheet
constexpr auto StatusBarReadyStyleSheetBright
static const auto PushButtonErrorStyleSheet
constexpr auto StatusBarRunningStyleSheet
constexpr auto StatusBarBusyStyleSheetHover
constexpr auto DefaultQ3DTheme
static 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
static const auto PushButtonBusyStyleSheet
constexpr auto StatusBarRunningStyleSheetHover
static 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