finalcut/src/fwidgetcolors.cpp
2020-12-31 20:45:10 +01:00

473 lines
23 KiB
C++

/***********************************************************************
* fwidgetcolors.cpp - Set widget color theme *
* *
* This file is part of the FINAL CUT widget toolkit *
* *
* Copyright 2018-2020 Markus Gans *
* *
* FINAL CUT is free software; you can redistribute it and/or modify *
* it under the terms of the GNU Lesser General Public License as *
* published by the Free Software Foundation; either version 3 of *
* the License, or (at your option) any later version. *
* *
* FINAL CUT is distributed in the hope that it will be useful, but *
* WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Lesser General Public License for more details. *
* *
* You should have received a copy of the GNU Lesser General Public *
* License along with this program. If not, see *
* <http://www.gnu.org/licenses/>. *
***********************************************************************/
#include "final/fc.h"
#include "final/fterm.h"
#include "final/fwidgetcolors.h"
namespace finalcut
{
//----------------------------------------------------------------------
// class FWidgetColors
//----------------------------------------------------------------------
// constructors and destructor
//----------------------------------------------------------------------
FWidgetColors::~FWidgetColors() noexcept = default;
//----------------------------------------------------------------------
// class default8ColorTheme
//----------------------------------------------------------------------
// constructors and destructor
//----------------------------------------------------------------------
default8ColorTheme::default8ColorTheme()
{
default8ColorTheme::setColorTheme();
}
//----------------------------------------------------------------------
default8ColorTheme::~default8ColorTheme() noexcept = default;
// public methods of default8ColorTheme
//----------------------------------------------------------------------
void default8ColorTheme::setColorTheme()
{
term_fg = FColor::Black;
term_bg = FColor::Blue;
list_fg = FColor::Black;
list_bg = FColor::LightGray;
selected_list_fg = FColor::Blue;
selected_list_bg = FColor::LightGray;
dialog_fg = FColor::Black;
dialog_resize_fg = FColor::Red;
dialog_emphasis_fg = FColor::Blue;
dialog_bg = FColor::LightGray;
error_box_fg = FColor::Black;
error_box_emphasis_fg = FColor::Red;
error_box_bg = FColor::LightGray;
tooltip_fg = FColor::Black;
tooltip_bg = FColor::Cyan;
shadow_fg = FColor::Black;
shadow_bg = FColor::LightGray; // only for transparent shadow
current_element_focus_fg = FColor::LightGray;
current_element_focus_bg = FColor::Red;
current_element_fg = FColor::LightGray;
current_element_bg = FColor::Blue;
current_inc_search_element_fg = FColor::Brown;
selected_current_element_focus_fg = FColor::Blue;
selected_current_element_focus_bg = FColor::Red;
selected_current_element_fg = FColor::Cyan;
selected_current_element_bg = FColor::Blue;
label_fg = FColor::Black;
label_bg = FColor::LightGray;
label_inactive_fg = FColor::Cyan;
label_inactive_bg = FColor::LightGray;
label_hotkey_fg = FColor::Red;
label_hotkey_bg = FColor::LightGray;
label_emphasis_fg = FColor::Blue;
label_ellipsis_fg = FColor::Black;
inputfield_active_focus_fg = FColor::LightGray;
inputfield_active_focus_bg = FColor::Blue;
inputfield_active_fg = FColor::Black;
inputfield_active_bg = FColor::Cyan;
inputfield_inactive_fg = FColor::Black;
inputfield_inactive_bg = FColor::LightGray;
toggle_button_active_focus_fg = FColor::Black;
toggle_button_active_focus_bg = FColor::Cyan;
toggle_button_active_fg = FColor::Black;
toggle_button_active_bg = FColor::LightGray;
toggle_button_inactive_fg = FColor::Cyan;
toggle_button_inactive_bg = FColor::LightGray;
button_active_focus_fg = FColor::LightGray;
button_active_focus_bg = FColor::Red;
button_active_fg = FColor::LightGray;
button_active_bg = FColor::Blue;
button_inactive_fg = FColor::Black;
button_inactive_bg = FColor::Blue;
button_hotkey_fg = FColor::LightGray;
titlebar_active_fg = FColor::LightGray;
titlebar_active_bg = FColor::Red;
titlebar_inactive_fg = FColor::Black;
titlebar_inactive_bg = FColor::LightGray;
titlebar_button_fg = FColor::Black;
titlebar_button_bg = FColor::LightGray;
titlebar_button_focus_fg = FColor::LightGray;
titlebar_button_focus_bg = FColor::Black;
menu_active_focus_fg = FColor::LightGray;
menu_active_focus_bg = FColor::Blue;
menu_active_fg = FColor::Black;
menu_active_bg = FColor::LightGray;
menu_inactive_fg = FColor::Cyan;
menu_inactive_bg = FColor::LightGray;
menu_hotkey_fg = FColor::Red;
menu_hotkey_bg = FColor::LightGray;
statusbar_fg = FColor::Black;
statusbar_bg = FColor::LightGray;
statusbar_hotkey_fg = FColor::Red;
statusbar_hotkey_bg = FColor::LightGray;
statusbar_separator_fg = FColor::Black;
statusbar_active_fg = FColor::LightGray;
statusbar_active_bg = FColor::Black;
statusbar_active_hotkey_fg = FColor::Red;
statusbar_active_hotkey_bg = FColor::Black;
scrollbar_fg = FColor::Black;
scrollbar_bg = FColor::LightGray;
scrollbar_button_fg = FColor::Black;
scrollbar_button_bg = FColor::LightGray;
scrollbar_button_inactive_fg = FColor::Cyan;
scrollbar_button_inactive_bg = FColor::LightGray;
progressbar_fg = FColor::Blue;
progressbar_bg = FColor::LightGray;
}
//----------------------------------------------------------------------
// class default16ColorTheme
//----------------------------------------------------------------------
// constructors and destructor
//----------------------------------------------------------------------
default16ColorTheme::default16ColorTheme()
{
default16ColorTheme::setColorTheme();
}
//----------------------------------------------------------------------
default16ColorTheme::~default16ColorTheme() noexcept = default;
// public methods of default16ColorTheme
//----------------------------------------------------------------------
void default16ColorTheme::setColorTheme()
{
term_fg = FColor::Black;
term_bg = FColor::LightBlue;
list_fg = FColor::Black;
list_bg = FColor::White;
selected_list_fg = FColor::Cyan;
selected_list_bg = FColor::White;
dialog_fg = FColor::Black;
dialog_resize_fg = FColor::Cyan;
dialog_emphasis_fg = FColor::Blue;
dialog_bg = FColor::White;
error_box_fg = FColor::White;
error_box_emphasis_fg = FColor::Yellow;
error_box_bg = FColor::LightRed;
tooltip_fg = FColor::Black;
tooltip_bg = FColor::Yellow;
shadow_fg = FColor::Black;
shadow_bg = FColor::LightGray; // only for transparent shadow
current_element_focus_fg = FColor::White;
current_element_focus_bg = FColor::Blue;
current_element_fg = FColor::LightGray;
current_element_bg = FColor::Blue;
current_inc_search_element_fg = FColor::LightRed;
selected_current_element_focus_fg = FColor::LightCyan;
selected_current_element_focus_bg = FColor::Blue;
selected_current_element_fg = FColor::LightBlue;
selected_current_element_bg = FColor::Blue;
label_fg = FColor::Black;
label_bg = FColor::White;
label_inactive_fg = FColor::LightGray;
label_inactive_bg = FColor::White;
label_hotkey_fg = FColor::Red;
label_hotkey_bg = FColor::White;
label_emphasis_fg = FColor::Blue;
label_ellipsis_fg = FColor::DarkGray;
inputfield_active_focus_fg = FColor::White;
inputfield_active_focus_bg = FColor::Cyan;
inputfield_active_fg = FColor::Black;
inputfield_active_bg = FColor::LightGray;
inputfield_inactive_fg = FColor::DarkGray;
inputfield_inactive_bg = FColor::LightGray;
toggle_button_active_focus_fg = FColor::White;
toggle_button_active_focus_bg = FColor::Cyan;
toggle_button_active_fg = FColor::Black;
toggle_button_active_bg = FColor::White;
toggle_button_inactive_fg = FColor::LightGray;
toggle_button_inactive_bg = FColor::White;
button_active_focus_fg = FColor::LightGray;
button_active_focus_bg = FColor::Blue;
button_active_fg = FColor::LightGray;
button_active_bg = FColor::DarkGray;
button_inactive_fg = FColor::DarkGray;
button_inactive_bg = FColor::LightGray;
button_hotkey_fg = FColor::White;
titlebar_active_fg = FColor::White;
titlebar_active_bg = FColor::Blue;
titlebar_inactive_fg = FColor::LightGray;
titlebar_inactive_bg = FColor::DarkGray;
titlebar_button_fg = FColor::DarkGray;
titlebar_button_bg = FColor::LightGray;
titlebar_button_focus_fg = FColor::LightGray;
titlebar_button_focus_bg = FColor::Black;
menu_active_focus_fg = FColor::White;
menu_active_focus_bg = FColor::Blue;
menu_active_fg = FColor::Black;
menu_active_bg = FColor::White;
menu_inactive_fg = FColor::LightGray;
menu_inactive_bg = FColor::White;
menu_hotkey_fg = FColor::Red;
menu_hotkey_bg = FColor::White;
statusbar_fg = FColor::White;
statusbar_bg = FColor::Blue;
statusbar_hotkey_fg = FColor::LightRed;
statusbar_hotkey_bg = FColor::Blue;
statusbar_separator_fg = FColor::Black;
statusbar_active_fg = FColor::Blue;
statusbar_active_bg = FColor::White;
statusbar_active_hotkey_fg = FColor::DarkGray;
statusbar_active_hotkey_bg = FColor::White;
scrollbar_fg = FColor::DarkGray;
scrollbar_bg = FColor::LightBlue;
scrollbar_button_fg = FColor::Black;
scrollbar_button_bg = FColor::LightGray;
scrollbar_button_inactive_fg = FColor::DarkGray;
scrollbar_button_inactive_bg = FColor::LightGray;
progressbar_fg = FColor::DarkGray;
progressbar_bg = FColor::LightBlue;
if ( ! FTerm::canChangeColorPalette() && FTerm::getMaxColor() > 16 )
term_bg = FColor::SkyBlue2;
}
//----------------------------------------------------------------------
// class default8ColorDarkTheme
//----------------------------------------------------------------------
// constructors and destructor
//----------------------------------------------------------------------
default8ColorDarkTheme::default8ColorDarkTheme()
{
default8ColorDarkTheme::setColorTheme();
}
//----------------------------------------------------------------------
default8ColorDarkTheme::~default8ColorDarkTheme() noexcept = default;
// public methods of default8ColorDarkTheme
//----------------------------------------------------------------------
void default8ColorDarkTheme::setColorTheme()
{
term_fg = FColor::LightGray;
term_bg = FColor::Cyan;
list_fg = FColor::Black;
list_bg = FColor::LightGray;
selected_list_fg = FColor::Cyan;
selected_list_bg = FColor::LightGray;
dialog_fg = FColor::Black;
dialog_resize_fg = FColor::Blue;
dialog_emphasis_fg = FColor::Blue;
dialog_bg = FColor::LightGray;
error_box_fg = FColor::LightGray;
error_box_emphasis_fg = FColor::Black;
error_box_bg = FColor::Red;
tooltip_fg = FColor::LightGray;
tooltip_bg = FColor::Black;
shadow_fg = FColor::Black;
shadow_bg = FColor::LightGray; // only for transparent shadow
current_element_focus_fg = FColor::LightGray;
current_element_focus_bg = FColor::Cyan;
current_element_fg = FColor::Black;
current_element_bg = FColor::Cyan;
current_inc_search_element_fg = FColor::Red;
selected_current_element_focus_fg = FColor::Cyan;
selected_current_element_focus_bg = FColor::Cyan;
selected_current_element_fg = FColor::Blue;
selected_current_element_bg = FColor::Cyan;
label_fg = FColor::Black;
label_bg = FColor::LightGray;
label_inactive_fg = FColor::Cyan;
label_inactive_bg = FColor::LightGray;
label_hotkey_fg = FColor::Red;
label_hotkey_bg = FColor::LightGray;
label_emphasis_fg = FColor::Blue;
label_ellipsis_fg = FColor::Cyan;
inputfield_active_focus_fg = FColor::LightGray;
inputfield_active_focus_bg = FColor::Cyan;
inputfield_active_fg = FColor::LightGray;
inputfield_active_bg = FColor::Cyan;
inputfield_inactive_fg = FColor::Cyan;
inputfield_inactive_bg = FColor::LightGray;
toggle_button_active_focus_fg = FColor::LightGray;
toggle_button_active_focus_bg = FColor::Cyan;
toggle_button_active_fg = FColor::Black;
toggle_button_active_bg = FColor::LightGray;
toggle_button_inactive_fg = FColor::Cyan;
toggle_button_inactive_bg = FColor::LightGray;
button_active_focus_fg = FColor::LightGray;
button_active_focus_bg = FColor::Cyan;
button_active_fg = FColor::LightGray;
button_active_bg = FColor::Black;
button_inactive_fg = FColor::Black;
button_inactive_bg = FColor::Cyan;
button_hotkey_fg = FColor::LightGray;
titlebar_active_fg = FColor::LightGray;
titlebar_active_bg = FColor::Black;
titlebar_inactive_fg = FColor::Black;
titlebar_inactive_bg = FColor::LightGray;
titlebar_button_fg = FColor::Black;
titlebar_button_bg = FColor::LightGray;
titlebar_button_focus_fg = FColor::LightGray;
titlebar_button_focus_bg = FColor::Black;
menu_active_focus_fg = FColor::LightGray;
menu_active_focus_bg = FColor::Blue;
menu_active_fg = FColor::LightGray;
menu_active_bg = FColor::Black;
menu_inactive_fg = FColor::LightGray;
menu_inactive_bg = FColor::Black;
menu_hotkey_fg = FColor::Red;
menu_hotkey_bg = FColor::Black;
statusbar_fg = FColor::LightGray;
statusbar_bg = FColor::Black;
statusbar_hotkey_fg = FColor::Red;
statusbar_hotkey_bg = FColor::Black;
statusbar_separator_fg = FColor::LightGray;
statusbar_active_fg = FColor::LightGray;
statusbar_active_bg = FColor::Blue;
statusbar_active_hotkey_fg = FColor::Red;
statusbar_active_hotkey_bg = FColor::Blue;
scrollbar_fg = FColor::Cyan;
scrollbar_bg = FColor::LightGray;
scrollbar_button_fg = FColor::Black;
scrollbar_button_bg = FColor::LightGray;
scrollbar_button_inactive_fg = FColor::Cyan;
scrollbar_button_inactive_bg = FColor::LightGray;
progressbar_fg = FColor::Cyan;
progressbar_bg = FColor::LightGray;
}
//----------------------------------------------------------------------
// class default16ColorDarkTheme
//----------------------------------------------------------------------
// constructors and destructor
//----------------------------------------------------------------------
default16ColorDarkTheme::default16ColorDarkTheme()
{
default16ColorDarkTheme::setColorTheme();
}
//----------------------------------------------------------------------
default16ColorDarkTheme::~default16ColorDarkTheme() noexcept = default;
// public methods of default16ColorDarkTheme
//----------------------------------------------------------------------
void default16ColorDarkTheme::setColorTheme()
{
term_fg = FColor::White;
term_bg = FColor::Cyan;
list_fg = FColor::Black;
list_bg = FColor::LightGray;
selected_list_fg = FColor::Red;
selected_list_bg = FColor::LightGray;
dialog_fg = FColor::Black;
dialog_resize_fg = FColor::LightBlue;
dialog_emphasis_fg = FColor::Blue;
dialog_bg = FColor::LightGray;
error_box_fg = FColor::White;
error_box_emphasis_fg = FColor::Yellow;
error_box_bg = FColor::Red;
tooltip_fg = FColor::White;
tooltip_bg = FColor::Black;
shadow_fg = FColor::Black;
shadow_bg = FColor::LightGray; // only for transparent shadow
current_element_focus_fg = FColor::White;
current_element_focus_bg = FColor::Cyan;
current_element_fg = FColor::LightBlue;
current_element_bg = FColor::Cyan;
current_inc_search_element_fg = FColor::LightRed;
selected_current_element_focus_fg = FColor::LightRed;
selected_current_element_focus_bg = FColor::Cyan;
selected_current_element_fg = FColor::Red;
selected_current_element_bg = FColor::Cyan;
label_fg = FColor::Black;
label_bg = FColor::LightGray;
label_inactive_fg = FColor::DarkGray;
label_inactive_bg = FColor::LightGray;
label_hotkey_fg = FColor::Red;
label_hotkey_bg = FColor::LightGray;
label_emphasis_fg = FColor::Blue;
label_ellipsis_fg = FColor::DarkGray;
inputfield_active_focus_fg = FColor::White;
inputfield_active_focus_bg = FColor::Cyan;
inputfield_active_fg = FColor::White;
inputfield_active_bg = FColor::DarkGray;
inputfield_inactive_fg = FColor::DarkGray;
inputfield_inactive_bg = FColor::LightGray;
toggle_button_active_focus_fg = FColor::White;
toggle_button_active_focus_bg = FColor::Cyan;
toggle_button_active_fg = FColor::Black;
toggle_button_active_bg = FColor::LightGray;
toggle_button_inactive_fg = FColor::DarkGray;
toggle_button_inactive_bg = FColor::LightGray;
button_active_focus_fg = FColor::LightGray;
button_active_focus_bg = FColor::Cyan;
button_active_fg = FColor::LightGray;
button_active_bg = FColor::DarkGray;
button_inactive_fg = FColor::DarkGray;
button_inactive_bg = FColor::LightBlue;
button_hotkey_fg = FColor::White;
titlebar_active_fg = FColor::White;
titlebar_active_bg = FColor::DarkGray;
titlebar_inactive_fg = FColor::DarkGray;
titlebar_inactive_bg = FColor::LightBlue;
titlebar_button_fg = FColor::DarkGray;
titlebar_button_bg = FColor::LightBlue;
titlebar_button_focus_fg = FColor::LightGray;
titlebar_button_focus_bg = FColor::Black;
menu_active_focus_fg = FColor::White;
menu_active_focus_bg = FColor::Blue;
menu_active_fg = FColor::White;
menu_active_bg = FColor::DarkGray;
menu_inactive_fg = FColor::LightGray;
menu_inactive_bg = FColor::DarkGray;
menu_hotkey_fg = FColor::LightRed;
menu_hotkey_bg = FColor::DarkGray;
statusbar_fg = FColor::White;
statusbar_bg = FColor::DarkGray;
statusbar_hotkey_fg = FColor::LightRed;
statusbar_hotkey_bg = FColor::DarkGray;
statusbar_separator_fg = FColor::LightGray;
statusbar_active_fg = FColor::White;
statusbar_active_bg = FColor::Blue;
statusbar_active_hotkey_fg = FColor::LightRed;
statusbar_active_hotkey_bg = FColor::Blue;
scrollbar_fg = FColor::DarkGray;
scrollbar_bg = FColor::LightBlue;
scrollbar_button_fg = FColor::Black;
scrollbar_button_bg = FColor::LightBlue;
scrollbar_button_inactive_fg = FColor::DarkGray;
scrollbar_button_inactive_bg = FColor::LightGray;
progressbar_fg = FColor::DarkGray;
progressbar_bg = FColor::LightBlue;
}
} // namespace finalcut