/* Copyright 2011-2022 Pierre Ossman for Cendio AB * * 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. */ #ifdef HAVE_CONFIG_H #include #endif #ifdef WIN32 #include #endif #ifdef __APPLE__ #include #endif #include #include #include #include "theme.h" void init_theme() { #if defined(WIN32) || defined(__APPLE__) static char font_name[256]; #endif // Basic text size (10pt @ 96 dpi => 13px) FL_NORMAL_SIZE = 13; // Select a FLTK scheme and background color that looks somewhat // close to modern systems Fl::scheme("gtk+"); Fl::background(220, 220, 220); // macOS has a slightly brighter default background though #ifdef __APPLE__ Fl::background(240, 240, 240); #endif // This makes the "icon" in dialogs rounded, which fits better // with the above schemes. fl_message_icon()->box(FL_UP_BOX); #if defined(WIN32) NONCLIENTMETRICS metrics; metrics.cbSize = sizeof(metrics); if (SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(metrics), &metrics, 0)) { strcpy(font_name, metrics.lfMessageFont.lfFaceName); Fl::set_font(FL_HELVETICA, font_name); } #elif defined(__APPLE__) CTFontRef font; CFStringRef name; font = CTFontCreateUIFontForLanguage(kCTFontSystemFontType, 0.0, NULL); if (font != NULL) { name = CTFontCopyFullName(font); if (name != NULL) { CFStringGetCString(name, font_name, sizeof(font_name), kCFStringEncodingUTF8); Fl::set_font(FL_HELVETICA, font_name); CFRelease(name); } CFRelease(font); } #else // FIXME: Get font from GTK or QT #endif }