4 # define WIN32_LEAN_AND_MEAN
5 # include <qt_windows.h>
7 # include <QApplication>
8 #elif defined Q_OS_UNIX
21 # if TTK_QT_VERSION_CHECK(5,0,0)
25 QApplication(count,
nullptr);
28 QScreen *screen = QApplication::primaryScreen();
34 const double x = screen->logicalDotsPerInchX();
35 const double y = screen->logicalDotsPerInchY();
39 #elif defined Q_OS_UNIX
40 Display *dp = XOpenDisplay(
nullptr);
47 const double x = (DisplayWidth(dp, screen) * 25.4) / DisplayWidthMM(dp, screen);
48 const double y = (DisplayHeight(dp, screen) * 25.4) / DisplayHeightMM(dp, screen);
51 return QSize(x + 0.5, y + 0.5);
71 return (dpi.width() + dpi.height()) / 2;
77 typedef void (__stdcall *NTPROC)(DWORD*, DWORD*, DWORD*);
78 HINSTANCE instance = LoadLibraryA(
"ntdll.dll");
79 DWORD major, minor, buildNumber;
80 NTPROC proc =
TTKVoidCast(NTPROC)GetProcAddress(instance,
"RtlGetNtVersionNumbers");
81 proc(&major, &minor, &buildNumber);
83 if(major == 6 && minor == 1)
87 else if(major == 6 && minor == 2)
91 else if(major == 6 && minor == 3)
95 else if(major == 10 && minor == 0)
99 FreeLibrary(instance);
102 GetSystemInfo(&info);
105 os.dwOSVersionInfoSize =
sizeof(OSVERSIONINFOEX);
106 if(GetVersionEx((OSVERSIONINFO *)&os))
108 switch(os.dwMajorVersion)
111 switch(os.dwMinorVersion)
114 if(os.dwPlatformId == VER_PLATFORM_WIN32_NT)
118 else if(os.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
129 switch(os.dwMinorVersion)
134 if(os.wProductType == VER_NT_WORKSTATION && info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64)
138 else if(GetSystemMetrics(SM_SERVERR2) == 0)
142 else if(GetSystemMetrics(SM_SERVERR2) != 0)
150 switch(os.dwMinorVersion)
161 #elif defined Q_OS_LINUX
162 QFile file(
"/etc/lsb-release");
163 if(file.open(QIODevice::ReadOnly))
165 const QRegExp regx(
"DISTRIB_ID=(\\w+)");
166 if(regx.indexIn(QString(file.readAll())) != -1)
168 const QString &system = regx.cap(1).toLower();
170 if(system ==
"ubuntu")
174 else if(system ==
"debian")
178 else if(system ==
"arch")
182 else if(system ==
"centos")
190 #elif defined Q_OS_MACOS