DynExp
Highly flexible laboratory automation for dynamically changing experiments.
DynExpDefinitions.h.in
Go to the documentation of this file.
1 // This file is part of DynExp.
2 
9 #pragma once
10 
11 Q_DECLARE_METATYPE(QTreeWidgetItem*);
12 
16 namespace 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 
61 namespace 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 
149 constexpr 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")
constexpr auto GetStyleSheet()
const QColor blue(42, 130, 218)
constexpr auto Undo
constexpr auto Warning
constexpr auto Stopped
constexpr auto Edit
constexpr auto Info
constexpr auto New
constexpr auto Instrument
constexpr auto UndockedWindow
constexpr auto Save
constexpr auto NotReady
constexpr auto HardwareAdapter
constexpr auto Network
constexpr auto Open
constexpr auto Paused
constexpr auto Error
constexpr auto Module
constexpr auto NotResponding
constexpr auto Running
constexpr auto Ready
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