瀏覽代碼

Split general FLTK appearance to separate file

These are general things and not specific to TigerVNC, so let's move it
to the fltk specific directory for clarity.
pull/1529/head
Pierre Ossman 1 年之前
父節點
當前提交
adf32175be
共有 4 個文件被更改,包括 90 次插入23 次删除
  1. 1
    0
      vncviewer/CMakeLists.txt
  2. 57
    0
      vncviewer/fltk/theme.cxx
  3. 29
    0
      vncviewer/fltk/theme.h
  4. 3
    23
      vncviewer/vncviewer.cxx

+ 1
- 0
vncviewer/CMakeLists.txt 查看文件

@@ -5,6 +5,7 @@ include_directories(${CMAKE_SOURCE_DIR}/common)

add_executable(vncviewer
fltk/MonitorArrangement.cxx
fltk/theme.cxx
menukey.cxx
BaseTouchHandler.cxx
CConn.cxx

+ 57
- 0
vncviewer/fltk/theme.cxx 查看文件

@@ -0,0 +1,57 @@
/* 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 <config.h>
#endif

#include <FL/Fl.H>
#include <FL/Fl_Widget.H>
#include <FL/fl_ask.H>

#include "theme.h"

void init_theme()
{
// 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);

#ifdef WIN32
// Most "normal" Windows apps use this font for UI elements.
Fl::set_font(FL_HELVETICA, "Tahoma");
#endif
}

+ 29
- 0
vncviewer/fltk/theme.h 查看文件

@@ -0,0 +1,29 @@
/* Copyright 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.
*/

#ifndef __FLTK_THEME_H__
#define __FLTK_THEME_H__

void init_theme();

#endif

+ 3
- 23
vncviewer/vncviewer.cxx 查看文件

@@ -60,13 +60,12 @@
#include <network/TcpSocket.h>
#include <os/os.h>

#include <FL/Fl.H>
#include <FL/Fl_Widget.H>
#include <FL/Fl_PNG_Image.H>
#include <FL/Fl_Sys_Menu_Bar.H>
#include <FL/fl_ask.H>
#include <FL/x.H>

#include "fltk/theme.h"
#include "fltk/util.h"
#include "i18n.h"
#include "parameters.h"
@@ -323,18 +322,8 @@ static const char* getlocaledir()
}
static void init_fltk()
{
// 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
// Adjust look of FLTK
init_theme();

// Proper Gnome Shell integration requires that we set a sensible
// WM_CLASS for the window.
@@ -395,21 +384,12 @@ static void init_fltk()
delete icons[i];
#endif

// This makes the "icon" in dialogs rounded, which fits better
// with the above schemes.
fl_message_icon()->box(FL_UP_BOX);

// Turn off the annoying behaviour where popups track the mouse.
fl_message_hotspot(false);

// Avoid empty titles for popups
fl_message_title_default(_("TigerVNC Viewer"));

#ifdef WIN32
// Most "normal" Windows apps use this font for UI elements.
Fl::set_font(FL_HELVETICA, "Tahoma");
#endif

// FLTK exposes these so that we can translate them.
fl_no = _("No");
fl_yes = _("Yes");

Loading…
取消
儲存