Merge remote-tracking branch 'origin/develop' into installer

This commit is contained in:
misyaguziya
2023-11-01 06:28:01 +09:00
16 changed files with 923 additions and 554 deletions

View File

@@ -356,7 +356,7 @@ class Config:
@INPUT_MIC_WORD_FILTER.setter
def INPUT_MIC_WORD_FILTER(self, value):
if type(value) is list:
self._INPUT_MIC_WORD_FILTER = value
self._INPUT_MIC_WORD_FILTER = sorted(set(value), key=value.index)
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
@property

View File

@@ -487,19 +487,40 @@ def callbackSetMicMaxPhrases(value):
except:
view.showErrorMessage_MicMaxPhrases()
def callbackSetMicWordFilter(value):
print("callbackSetMicWordFilter", value)
word_filter = str(value)
word_filter = [w.strip() for w in word_filter.split(",") if len(w.strip()) > 0]
word_filter = ",".join(word_filter)
print("callbackSetMicWordFilter_afterSplitting", word_filter)
if len(word_filter) > 0:
config.INPUT_MIC_WORD_FILTER = word_filter.split(",")
else:
config.INPUT_MIC_WORD_FILTER = []
def callbackSetMicWordFilter(values):
print("callbackSetMicWordFilter", values)
values = str(values)
values = [w.strip() for w in values.split(",") if len(w.strip()) > 0]
# Copy the list
new_input_mic_word_filter_list = config.INPUT_MIC_WORD_FILTER
new_added_value = []
for value in values:
if value in new_input_mic_word_filter_list:
# If the value is already in the list, do nothing.
pass
else:
new_input_mic_word_filter_list.append(value)
new_added_value.append(value)
config.INPUT_MIC_WORD_FILTER = new_input_mic_word_filter_list
view.addValueToList_WordFilter(new_added_value)
view.clearEntryBox_WordFilter()
view.setLatestConfigVariable("MicMicWordFilter")
model.resetKeywordProcessor()
model.addKeywords()
def callbackDeleteMicWordFilter(value):
print("callbackDeleteMicWordFilter", value)
try:
new_input_mic_word_filter_list = config.INPUT_MIC_WORD_FILTER
new_input_mic_word_filter_list.remove(str(value))
config.INPUT_MIC_WORD_FILTER = new_input_mic_word_filter_list
view.setLatestConfigVariable("MicMicWordFilter")
except:
print("There was no the target word in config.INPUT_MIC_WORD_FILTER")
def callbackSetSpeakerEnergyThreshold(value):
print("callbackSetSpeakerEnergyThreshold", value)
if value == "": return
@@ -718,6 +739,7 @@ def createMainWindow():
"callback_set_mic_phrase_timeout": callbackSetMicPhraseTimeout,
"callback_set_mic_max_phrases": callbackSetMicMaxPhrases,
"callback_set_mic_word_filter": callbackSetMicWordFilter,
"callback_delete_mic_word_filter": callbackDeleteMicWordFilter,
# Transcription Tab (Speaker)
"callback_set_speaker_energy_threshold": callbackSetSpeakerEnergyThreshold,

BIN
img/cancel_icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
img/redo_white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -138,7 +138,9 @@ config_window:
mic_word_filter:
label: Mic Word Filter
desc: "It will not send the sentence if the word(s) included in the set list of words.\nHow to set: e.g. AAA,BBB,CCC"
desc: "If a registered word is detected, the text will not be sent. To add multiple words at once, separate them with a \",\" (comma). \n*Duplicate words will not be registered."
add_button_label: Add
count_desc: "Current registered word count: %{count}"
speaker_dynamic_energy_threshold:

View File

@@ -138,7 +138,9 @@ config_window:
mic_word_filter:
label: ワードフィルター
desc: "設定された単語を検出すると、その文章は送信されません。\n設定の例: AAA,BBB,CCC"
desc: "登録された単語を検出すると、その文章は送信されません。\n「,」カンマで区切ると、まとめて複数の単語を追加できます。\n※重複した単語は登録されません。"
add_button_label: 追加
count_desc: "現在登録されている単語数: %{count}"
speaker_dynamic_energy_threshold:

93
view.py
View File

@@ -8,7 +8,7 @@ import i18n
from languages import selectable_languages
from customtkinter import StringVar, IntVar, BooleanVar, END as CTK_END, get_appearance_mode
from vrct_gui.ui_managers import ColorThemeManager, ImageFileManager, UiScalingManager
from vrct_gui.ui_managers import ColorThemeManager, UiScalingManager
from vrct_gui import vrct_gui
from utils import callFunctionIfCallable, generatePercentageStringsList, intToPercentageStringsFormatter
@@ -37,10 +37,9 @@ class View():
theme = "Dark"
all_ctm = ColorThemeManager(theme)
all_uism = UiScalingManager(config.UI_SCALING)
image_file = ImageFileManager(theme)
common_args = {
"image_file": image_file,
"image_file": all_ctm.image_file,
"FONT_FAMILY": config.FONT_FAMILY,
}
@@ -69,7 +68,6 @@ class View():
)
self.settings.error_message_window = SimpleNamespace(
ctm=all_ctm.error_message_window,
uism=all_uism.error_message_window,
**common_args
)
@@ -286,10 +284,15 @@ class View():
VAR_MIC_MAX_PHRASES=StringVar(value=config.INPUT_MIC_MAX_PHRASES),
CALLBACK_FOCUS_OUT_MIC_MAX_PHRASES=self.callbackBindFocusOut_MicMaxPhrases,
CALLBACK_ARROW_SWITCH_MIC_WORD_FILTER_LIST_OPEN=self._openMicWordFilterList,
CALLBACK_ARROW_SWITCH_MIC_WORD_FILTER_LIST_CLOSE=self._closeMicWordFilterList,
VAR_LABEL_MIC_WORD_FILTER=StringVar(value=i18n.t("config_window.mic_word_filter.label")),
VAR_DESC_MIC_WORD_FILTER=StringVar(value=i18n.t("config_window.mic_word_filter.desc")),
VAR_SWITCH_DESC_MIC_WORD_FILTER=StringVar(value=i18n.t("config_window.mic_word_filter.count_desc", count=len(config.INPUT_MIC_WORD_FILTER))),
VAR_LABEL_MIC_WORD_FILTER_ADD_BUTTON=StringVar(value=i18n.t("config_window.mic_word_filter.add_button_label")),
CALLBACK_SET_MIC_WORD_FILTER=None,
VAR_MIC_WORD_FILTER=StringVar(value=",".join(config.INPUT_MIC_WORD_FILTER) if len(config.INPUT_MIC_WORD_FILTER) > 0 else ""),
MIC_WORD_FILTER_LIST=config.INPUT_MIC_WORD_FILTER,
# Transcription Tab (Speaker)
@@ -464,6 +467,7 @@ class View():
self.view_variable.CALLBACK_SET_MIC_PHRASE_TIMEOUT = config_window_registers.get("callback_set_mic_phrase_timeout", None)
self.view_variable.CALLBACK_SET_MIC_MAX_PHRASES = config_window_registers.get("callback_set_mic_max_phrases", None)
self.view_variable.CALLBACK_SET_MIC_WORD_FILTER = config_window_registers.get("callback_set_mic_word_filter", None)
self.view_variable.CALLBACK_DELETE_MIC_WORD_FILTER = config_window_registers.get("callback_delete_mic_word_filter", None)
# Transcription Tab (Speaker)
self.view_variable.CALLBACK_SET_SPEAKER_ENERGY_THRESHOLD = config_window_registers.get("callback_set_speaker_energy_threshold", None)
@@ -605,10 +609,12 @@ class View():
def enableConfigWindowCompactMode(self):
for additional_widget in vrct_gui.config_window.additional_widgets:
additional_widget.grid_remove()
self._closeMicWordFilterList()
def disableConfigWindowCompactMode(self):
for additional_widget in vrct_gui.config_window.additional_widgets:
additional_widget.grid()
self._closeMicWordFilterList()
def showRestartButtonIfRequired(self, locale:Union[None,str]=None):
@@ -743,27 +749,85 @@ class View():
self.view_variable.VAR_MIC_DEVICE.set(default_selected_mic_device_name)
@staticmethod
def updateSetProgressBar_MicEnergy(new_mic_energy):
vrct_gui.config_window.sb__progressbar_x_slider__progressbar_mic_energy_threshold.set(new_mic_energy/config.MAX_MIC_ENERGY_THRESHOLD)
def updateSetProgressBar_MicEnergy(self, new_mic_energy):
self.updateProgressBar(
target_progressbar_widget=vrct_gui.config_window.sb__progressbar_x_slider__progressbar_mic_energy_threshold,
new_energy=new_mic_energy,
max_energy=config.MAX_MIC_ENERGY_THRESHOLD,
energy_threshold=config.INPUT_MIC_ENERGY_THRESHOLD,
)
@staticmethod
def initProgressBar_MicEnergy():
vrct_gui.config_window.sb__progressbar_x_slider__progressbar_mic_energy_threshold.set(0)
@staticmethod
def updateSetProgressBar_SpeakerEnergy(new_speaker_energy):
vrct_gui.config_window.sb__progressbar_x_slider__progressbar_speaker_energy_threshold.set(new_speaker_energy/config.MAX_SPEAKER_ENERGY_THRESHOLD)
def updateSetProgressBar_SpeakerEnergy(self, new_speaker_energy):
self.updateProgressBar(
target_progressbar_widget=vrct_gui.config_window.sb__progressbar_x_slider__progressbar_speaker_energy_threshold,
new_energy=new_speaker_energy,
max_energy=config.MAX_SPEAKER_ENERGY_THRESHOLD,
energy_threshold=config.INPUT_SPEAKER_ENERGY_THRESHOLD,
)
@staticmethod
def initProgressBar_SpeakerEnergy():
vrct_gui.config_window.sb__progressbar_x_slider__progressbar_speaker_energy_threshold.set(0)
def updateProgressBar(
self,
target_progressbar_widget,
new_energy,
max_energy,
energy_threshold,
):
target_progressbar_widget.set(new_energy/max_energy)
if new_energy >= energy_threshold:
target_progressbar_widget.configure(progress_color=self.settings.config_window.ctm.SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_EXCEED_THRESHOLD_BG_COLOR)
else:
target_progressbar_widget.configure(progress_color=self.settings.config_window.ctm.SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_BG_COLOR)
def _openMicWordFilterList(self):
target_widget = vrct_gui.config_window.sb__widgets["sb__arrow_switch_mic_word_filter"]
target_widget.arrow_switch_open.grid_remove()
target_widget.arrow_switch_close.grid()
vrct_gui.config_window.sb__mic_word_filter_list.grid()
def _closeMicWordFilterList(self):
target_widget = vrct_gui.config_window.sb__widgets["sb__arrow_switch_mic_word_filter"]
target_widget.arrow_switch_close.grid_remove()
target_widget.arrow_switch_open.grid()
vrct_gui.config_window.sb__mic_word_filter_list.grid_remove()
def addValueToList_WordFilter(self, values:list):
target_widget = vrct_gui.config_window.sb__widgets["sb__add_and_delete_able_list_mic_word_filter_list"]
for t_item in target_widget.items:
if t_item.label in values:
values.remove(t_item.label)
t_item.redoFunction()
mic_word_filter_item_row_wrapper, accumulated_labels_width, last_row, last_column = target_widget.addValues(
values,
target_widget.mic_word_filter_item_row_wrapper,
target_widget.accumulated_labels_width,
target_widget.last_row,
target_widget.last_column
)
target_widget.mic_word_filter_item_row_wrapper = mic_word_filter_item_row_wrapper
target_widget.accumulated_labels_width = accumulated_labels_width
target_widget.last_row = last_row
target_widget.last_column = last_column
def clearEntryBox_WordFilter(self):
self._clearEntryBox(vrct_gui.config_window.sb__entry_mic_word_filter_list)
# Widget Control (Whole)
def foregroundOnIfForegroundEnabled(self):
if config.ENABLE_FOREGROUND:
@@ -905,6 +969,7 @@ class View():
def _closeConfigWindow(self):
callFunctionIfCallable(self.view_variable.CALLBACK_CLOSE_CONFIG_WINDOW)
self._closeMicWordFilterList()
vrct_gui._closeConfigWindow()
# Window Control (Main Window Cover)
@@ -962,7 +1027,8 @@ class View():
def setGuiVariable_MicMaxPhrases(self, value):
self.view_variable.VAR_MIC_MAX_PHRASES.set(str(value))
def setGuiVariable_MicWordFilter_Length(self, value):
self.view_variable.VAR_SWITCH_DESC_MIC_WORD_FILTER.set(i18n.t("config_window.mic_word_filter.count_desc", count=value))
def setGuiVariable_SpeakerRecordTimeout(self, value):
self.view_variable.VAR_SPEAKER_RECORD_TIMEOUT.set(str(value))
@@ -992,6 +1058,9 @@ class View():
self.setGuiVariable_MicPhraseTimeout(config.INPUT_MIC_PHRASE_TIMEOUT)
case "MicMaxPhrases":
self.setGuiVariable_MicMaxPhrases(config.INPUT_MIC_MAX_PHRASES)
case "MicMicWordFilter":
self.setGuiVariable_MicWordFilter_Length(len(config.INPUT_MIC_WORD_FILTER))
case "SpeakerRecordTimeout":
self.setGuiVariable_SpeakerRecordTimeout(config.INPUT_SPEAKER_RECORD_TIMEOUT)
case "SpeakerPhraseTimeout":

View File

@@ -5,8 +5,9 @@ from typing import Union
from customtkinter import CTkOptionMenu, CTkFont, CTkFrame, CTkLabel, CTkRadioButton, CTkEntry, CTkSlider, CTkSwitch, CTkCheckBox, CTkProgressBar
from CTkToolTip import *
from vrct_gui.ui_utils import createButtonWithImage, getLatestWidth, createOptionMenuBox
from vrct_gui.ui_utils import createButtonWithImage, getLatestWidth, createOptionMenuBox, getLatestHeight, bindButtonFunctionAndColor
from vrct_gui import vrct_gui
from utils import isEven, callFunctionIfCallable
SETTING_BOX_COLUMN = 1
@@ -17,6 +18,8 @@ class _SettingBoxGenerator():
self.parent_widget = parent_widget
self.settings = settings
self.MAIN_INNER_AREA_MIN_WIDTH = int(self.settings.uism.MAIN_AREA_MIN_WIDTH - self.settings.uism.SB__IPADX)
self.dropdown_menu_window = vrct_gui.vrct_gui.dropdown_menu_window
def _createSettingBoxFrame(self, sb__attr_name, for_var_label_text=None, for_var_desc_text=None):
@@ -274,6 +277,7 @@ class _SettingBoxGenerator():
message=getSliderValueWAfterFormatting(),
delay=0,
bg_color=self.settings.ctm.SB__SLIDER_TOOLTIP_BG_COLOR,
corner_radius=0,
text_color=self.settings.ctm.SB__SLIDER_TOOLTIP_TEXT_COLOR,
font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.SB__SLIDER_TOOLTIP_FONT_SIZE, weight="normal"),
)
@@ -448,6 +452,315 @@ class _SettingBoxGenerator():
return setting_box_frame
def createSettingBoxArrowSwitch(
self,
for_var_label_text, for_var_desc_text,
arrow_switch_attr_name,
open_command,
close_command,
var_switch_desc=None,
):
(setting_box_frame, setting_box_item_frame) = self._createSettingBoxFrame(arrow_switch_attr_name, for_var_label_text, for_var_desc_text)
ARROW_BUTTON_COLUMN = SETTING_BOX_COLUMN
if var_switch_desc is not None:
label_widget = CTkLabel(
setting_box_item_frame,
textvariable=var_switch_desc,
height=0,
corner_radius=0,
font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.SB__ARROW_SWITCH_DESC_FONT_SIZE, weight="normal"),
anchor="w",
text_color=self.settings.ctm.LABELS_DESC_TEXT_COLOR,
)
label_widget.grid(row=1, column=SETTING_BOX_COLUMN)
ARROW_BUTTON_COLUMN = SETTING_BOX_COLUMN + 1
for_opening_button_wrapper = createButtonWithImage(
parent_widget=setting_box_item_frame,
button_fg_color=self.settings.ctm.SB__ARROW_SWITCH_BUTTON_COLOR,
button_enter_color=self.settings.ctm.SB__ARROW_SWITCH_BUTTON_HOVERED_COLOR,
button_clicked_color=self.settings.ctm.SB__ARROW_SWITCH_BUTTON_CLICKED_COLOR,
button_image_file=self.settings.image_file.ARROW_LEFT.rotate(270),
button_image_size=self.settings.uism.SB__ARROW_SWITCH_BUTTON_ICON_SIZE,
button_ipadxy=self.settings.uism.SB__ARROW_SWITCH_BUTTON_IPADXY,
button_command=open_command,
)
for_opening_button_wrapper.grid(row=1, column=ARROW_BUTTON_COLUMN, padx=self.settings.uism.SB__ARROW_SWITCH_LEFT_PADX, sticky="e")
self.config_window.sb__widgets[arrow_switch_attr_name].arrow_switch_open = for_opening_button_wrapper
for_closing_button_wrapper = createButtonWithImage(
parent_widget=setting_box_item_frame,
button_fg_color=self.settings.ctm.SB__ARROW_SWITCH_BUTTON_COLOR,
button_enter_color=self.settings.ctm.SB__ARROW_SWITCH_BUTTON_HOVERED_COLOR,
button_clicked_color=self.settings.ctm.SB__ARROW_SWITCH_BUTTON_CLICKED_COLOR,
button_image_file=self.settings.image_file.ARROW_LEFT.rotate(90),
button_image_size=self.settings.uism.SB__ARROW_SWITCH_BUTTON_ICON_SIZE,
button_ipadxy=self.settings.uism.SB__ARROW_SWITCH_BUTTON_IPADXY,
button_command=close_command,
)
for_closing_button_wrapper.grid(row=1, column=ARROW_BUTTON_COLUMN, padx=self.settings.uism.SB__ARROW_SWITCH_LEFT_PADX, sticky="e")
for_closing_button_wrapper.grid_remove()
self.config_window.sb__widgets[arrow_switch_attr_name].arrow_switch_close = for_closing_button_wrapper
return setting_box_frame
# I've added it for the word filter, but it's not currently generalized. If you want to use it in the same way elsewhere, it will require refactoring.
def createSettingBoxAddAndDeleteAbleList(
self,
add_and_delete_able_list_attr_name,
entry_attr_name,
entry_width,
mic_word_filter_list,
):
(setting_box_frame, setting_box_item_frame) = self._createSettingBoxFrame(add_and_delete_able_list_attr_name)
self.config_window.sb__widgets[add_and_delete_able_list_attr_name].items = []
list_container = CTkFrame(setting_box_item_frame, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR, width=0, height=0)
list_container.grid(row=1, column=0, sticky="nsew")
max_width = int(self.MAIN_INNER_AREA_MIN_WIDTH - (self.settings.uism.SB__IPADX*2))
def addValues(mic_word_filter_list, mic_word_filter_item_row_wrapper, accumulated_labels_width, row, column):
for mic_word_filter_item in mic_word_filter_list:
mic_word_filter_item_wrapper = self._createValue(add_and_delete_able_list_attr_name, mic_word_filter_item_row_wrapper, row, column, mic_word_filter_item)
if int(accumulated_labels_width + getLatestWidth(mic_word_filter_item_wrapper) + self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_LEFT_PADX[1]) >= max_width:
accumulated_labels_width = 0
column = 0
row += 1
mic_word_filter_item_wrapper.destroy()
mic_word_filter_item_row_wrapper = self._createRowFrame(list_container, row)
mic_word_filter_item_wrapper = self._createValue(add_and_delete_able_list_attr_name, mic_word_filter_item_row_wrapper, row, column, mic_word_filter_item)
column += 1
else:
column += 1
accumulated_labels_width += int(getLatestWidth(mic_word_filter_item_wrapper) + self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_LEFT_PADX[1])
return mic_word_filter_item_row_wrapper, accumulated_labels_width, row, column
accumulated_labels_width = 0
row=0
column=0
mic_word_filter_item_row_wrapper = self._createRowFrame(list_container, row)
mic_word_filter_list = self.view_variable.MIC_WORD_FILTER_LIST
mic_word_filter_item_row_wrapper, accumulated_labels_width, row, column = addValues(mic_word_filter_list, mic_word_filter_item_row_wrapper, accumulated_labels_width, row, column)
self.config_window.sb__widgets[add_and_delete_able_list_attr_name].mic_word_filter_item_row_wrapper = mic_word_filter_item_row_wrapper
self.config_window.sb__widgets[add_and_delete_able_list_attr_name].accumulated_labels_width = accumulated_labels_width
self.config_window.sb__widgets[add_and_delete_able_list_attr_name].last_row = row
self.config_window.sb__widgets[add_and_delete_able_list_attr_name].last_column = column
self.config_window.sb__widgets[add_and_delete_able_list_attr_name].addValues = lambda values, mic_word_filter_item_row_wrapper, accumulated_labels_width, last_row, last_column: addValues(values, mic_word_filter_item_row_wrapper, accumulated_labels_width, last_row, last_column)
entry_and_add_button_wrapper = CTkFrame(setting_box_item_frame, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR)
entry_and_add_button_wrapper.grid(row=2, column=0, pady=(self.settings.uism.SB__IPADY, 0), sticky="ew")
entry_and_add_button_wrapper.grid_columnconfigure((0,3), weight=1)
entry_widget = CTkEntry(
entry_and_add_button_wrapper,
text_color=self.settings.ctm.SB__ENTRY_TEXT_COLOR,
fg_color=self.settings.ctm.SB__ENTRY_BG_COLOR,
border_color=self.settings.ctm.SB__ENTRY_BORDER_COLOR,
width=entry_width,
placeholder_text="AAA or AAA,BBB,CCC",
height=self.settings.uism.SB__PROGRESSBAR_X_SLIDER__ENTRY_HEIGHT,
font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.SB__ENTRY_FONT_SIZE, weight="normal"),
)
setattr(self.config_window, entry_attr_name, entry_widget)
entry_widget.grid(row=0, column=1, sticky="ew")
add_button = CTkFrame(entry_and_add_button_wrapper, corner_radius=self.settings.uism.BUTTONS_CORNER_RADIUS, fg_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_COLOR, cursor="hand2")
add_button.grid(row=0, column=2, padx=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_LEFT_PADX, sticky="ew")
add_button.grid_columnconfigure(0, weight=1)
add_button_label_wrapper = CTkFrame(add_button, corner_radius=0, fg_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_COLOR)
add_button_label_wrapper.grid(row=0, column=0, padx=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_IPADX, pady=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_IPADY, sticky="ew")
add_button_label_wrapper.grid_columnconfigure((0,2), weight=1)
add_button_label = CTkLabel(
add_button_label_wrapper,
textvariable=self.view_variable.VAR_LABEL_MIC_WORD_FILTER_ADD_BUTTON,
height=0,
corner_radius=0,
font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_FONT_SIZE, weight="normal"),
anchor="w",
text_color=self.settings.ctm.LABELS_TEXT_COLOR,
)
add_button_label.grid(row=0, column=1)
def adjustedCommand():
callFunctionIfCallable(self.view_variable.CALLBACK_SET_MIC_WORD_FILTER, entry_widget.get())
entry_widget.focus_set()
bindButtonFunctionAndColor(
target_widgets=[
add_button,
add_button_label_wrapper,
add_button_label,
],
enter_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_HOVERED_COLOR,
leave_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_COLOR,
clicked_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_CLICKED_COLOR,
buttonReleasedFunction=lambda _e: adjustedCommand(),
)
return setting_box_frame
def _createRowFrame(self, parent_widget, row):
mic_word_filter_item_row_wrapper = CTkFrame(parent_widget, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR, width=0, height=0)
mic_word_filter_item_row_wrapper.grid(row=row, column=0, pady=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_BOTTOM_PADY, sticky="nsew")
return mic_word_filter_item_row_wrapper
def _createValue(self, add_and_delete_able_list_attr_name, parent_row_frame, row, column, mic_word_filter_item):
mic_word_filter_item_wrapper = CTkFrame(parent_row_frame, corner_radius=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_CORNER_RADIUS, fg_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST_BG_COLOR, width=0, height=0)
mic_word_filter_item_wrapper.grid(row=0, column=column, padx=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_LEFT_PADX, sticky="nsew")
setattr(self, f"{row}_{column}", mic_word_filter_item_wrapper)
mic_word_filter_item_wrapper.grid_rowconfigure((0,2), weight=1)
label_widget = CTkLabel(
mic_word_filter_item_wrapper,
text=mic_word_filter_item,
height=0,
corner_radius=0,
font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_FONT_SIZE, weight="normal"),
anchor="w",
text_color=self.settings.ctm.BASIC_TEXT_COLOR,
)
label_widget.grid(row=1, column=0, padx=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADX, pady=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADY)
if isEven(getLatestHeight(label_widget)) is False:
label_widget.grid(
pady=(
self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADY,
self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADY + 1
)
)
if isEven(getLatestWidth(label_widget)) is False:
label_widget.grid(
padx=(
self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADX[0],
self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADX[1] + 1
)
)
def pressedDeleteButtonCommand(_e, delete_button, redo_button):
# overstrike true
label_widget.configure(font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_FONT_SIZE, weight="normal", overstrike=True))
# change fg_color
mic_word_filter_item_wrapper.configure(fg_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST_DELETED_BG_COLOR)
# change button img to redo button
delete_button.grid_remove()
redo_button.grid()
# callback delete function
callFunctionIfCallable(self.view_variable.CALLBACK_DELETE_MIC_WORD_FILTER, mic_word_filter_item)
def pressedRedoButtonCommand(_e, delete_button, redo_button):
# overstrike false
label_widget.configure(font=CTkFont(family=self.settings.FONT_FAMILY, size=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_FONT_SIZE, weight="normal", overstrike=False))
# change fg_color
mic_word_filter_item_wrapper.configure(fg_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST_BG_COLOR)
# change button img to delete button
redo_button.grid_remove()
delete_button.grid()
# callback add function
callFunctionIfCallable(self.view_variable.CALLBACK_SET_MIC_WORD_FILTER, mic_word_filter_item)
delete_button = createButtonWithImage(
parent_widget=mic_word_filter_item_wrapper,
button_fg_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST_BG_COLOR,
button_enter_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_HOVERED_BG_COLOR,
button_clicked_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_CLICKED_BG_COLOR,
button_image_file=self.settings.image_file.CANCEL_ICON,
button_image_size=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_IMG_SIZE,
button_ipadxy=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_IPADXY,
button_command=lambda _e: pressedDeleteButtonCommand(_e, delete_button, redo_button),
)
delete_button.grid(row=1, column=1, padx=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_PADX, sticky="e")
redo_button = createButtonWithImage(
parent_widget=mic_word_filter_item_wrapper,
button_fg_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST_DELETED_BG_COLOR,
button_enter_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__VALUES_DELETED_BUTTON_HOVERED_BG_COLOR,
button_clicked_color=self.settings.ctm.SB__ADD_AND_DELETE_ABLE_LIST__VALUES_DELETED_BUTTON_CLICKED_BG_COLOR,
button_image_file=self.settings.image_file.REDO_ICON,
button_image_size=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_IMG_SIZE,
button_ipadxy=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_IPADXY,
button_command=lambda _e: pressedRedoButtonCommand(_e, delete_button, redo_button),
)
redo_button.grid(row=1, column=1, padx=self.settings.uism.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_PADX, sticky="e")
redo_button.grid_remove()
partial_pressedRedoButtonCommand = partial(pressedRedoButtonCommand, _e=None, delete_button=delete_button, redo_button=redo_button)
item_data = SimpleNamespace(
label = mic_word_filter_item,
redoFunction = lambda: partial_pressedRedoButtonCommand(),
)
items = self.config_window.sb__widgets[add_and_delete_able_list_attr_name].items
if len(items) == 0:
items.append(item_data)
else:
is_replaced = False
for i, item in enumerate(items):
if item.label == mic_word_filter_item:
items[i] = item_data
is_replaced = True
break
if is_replaced is False: items.append(item_data)
return mic_word_filter_item_wrapper
# if setting_box_type == "dropdown_menu_x_dropdown_menu":
# self.setting_box_dropdown_menu_x_dropdown_menu = CTkFrame(self.setting_box, corner_radius=0, fg_color=self.settings.ctm.SB__BG_COLOR, width=0, height=0)

View File

@@ -8,6 +8,8 @@ def createSettingBox_Mic(setting_box_wrapper, config_window, settings, view_vari
createSettingBoxSwitch = sbg.createSettingBoxSwitch
createSettingBoxProgressbarXSlider = sbg.createSettingBoxProgressbarXSlider
createSettingBoxEntry = sbg.createSettingBoxEntry
createSettingBoxArrowSwitch = sbg.createSettingBoxArrowSwitch
createSettingBoxAddAndDeleteAbleList = sbg.createSettingBoxAddAndDeleteAbleList
def checkbox_input_mic_threshold_check_callback(is_turned_on):
@@ -36,6 +38,11 @@ def createSettingBox_Mic(setting_box_wrapper, config_window, settings, view_vari
def entry_input_mic_max_phrases_callback(value):
callFunctionIfCallable(view_variable.CALLBACK_SET_MIC_MAX_PHRASES, value)
def arrow_switch_mic_word_filter_list_open_callback(value):
callFunctionIfCallable(view_variable.CALLBACK_ARROW_SWITCH_MIC_WORD_FILTER_LIST_OPEN)
def arrow_switch_mic_word_filter_list_close_callback(value):
callFunctionIfCallable(view_variable.CALLBACK_ARROW_SWITCH_MIC_WORD_FILTER_LIST_CLOSE)
def entry_input_mic_word_filters_callback(value):
callFunctionIfCallable(view_variable.CALLBACK_SET_MIC_WORD_FILTER, value)
@@ -140,13 +147,24 @@ def createSettingBox_Mic(setting_box_wrapper, config_window, settings, view_vari
# # __________
config_window.sb__mic_word_filter = createSettingBoxEntry(
config_window.sb__mic_word_filter = createSettingBoxArrowSwitch(
for_var_label_text=view_variable.VAR_LABEL_MIC_WORD_FILTER,
for_var_desc_text=view_variable.VAR_DESC_MIC_WORD_FILTER,
entry_attr_name="sb__entry_mic_word_filter",
entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_300,
entry_bind__Any_KeyRelease=lambda value: entry_input_mic_word_filters_callback(value),
entry_textvariable=view_variable.VAR_MIC_WORD_FILTER,
arrow_switch_attr_name="sb__arrow_switch_mic_word_filter",
open_command=lambda value: arrow_switch_mic_word_filter_list_open_callback(value),
close_command=lambda value: arrow_switch_mic_word_filter_list_close_callback(value),
var_switch_desc=view_variable.VAR_SWITCH_DESC_MIC_WORD_FILTER,
)
config_window.sb__mic_word_filter.grid(row=row, pady=0)
row+=1
config_window.sb__mic_word_filter_list = createSettingBoxAddAndDeleteAbleList(
add_and_delete_able_list_attr_name="sb__add_and_delete_able_list_mic_word_filter_list",
entry_attr_name="sb__entry_mic_word_filter_list",
entry_width=settings.uism.RESPONSIVE_UI_SIZE_INT_300,
mic_word_filter_list=view_variable.MIC_WORD_FILTER_LIST,
)
config_window.sb__mic_word_filter_list.grid(row=row, pady=0)
# Default, close the list.
config_window.sb__mic_word_filter_list.grid_remove()
row+=1

View File

@@ -1,487 +1,114 @@
from types import SimpleNamespace
from .Themes import _darkTheme, _lightTheme
class ColorThemeManager():
def __init__(self, theme):
self.main = SimpleNamespace()
self.config_window = SimpleNamespace()
self.selectable_language_window = SimpleNamespace()
self.main_window_cover = SimpleNamespace()
self.error_message_window = SimpleNamespace()
self.confirmation_modal = SimpleNamespace()
# base_color 100, 200, 300...900 is generated by https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors . I put the comment "Source". I used it as a source color and generated.
# and like 750, 888... is made by https://meyerweb.com/eric/tools/color-blend/#:::hex
# old one. But leave it here for now.
# self.PRIMARY_100_COLOR = "#c4eac1"
# self.PRIMARY_200_COLOR = "#9cdd98"
# self.PRIMARY_300_COLOR = "#70d16c"
# self.PRIMARY_400_COLOR = "#49c649"
# self.PRIMARY_500_COLOR = "#0abb1d"
# self.PRIMARY_600_COLOR = "#00ac11"
# self.PRIMARY_650_COLOR = "#00A309"
# self.PRIMARY_700_COLOR = "#009900"
# self.PRIMARY_800_COLOR = "#008800"
# self.PRIMARY_900_COLOR = "#006900"
self.base_color = SimpleNamespace(
PRIMARY_100_COLOR = "#b7ded8",
PRIMARY_200_COLOR = "#8acac0",
PRIMARY_300_COLOR = "#61b4a7",
PRIMARY_400_COLOR = "#48a495", # Source
PRIMARY_450_COLOR = "#429c8c",
PRIMARY_500_COLOR = "#3b9483",
PRIMARY_600_COLOR = "#368777",
PRIMARY_650_COLOR = "#347f6f",
PRIMARY_700_COLOR = "#317767",
PRIMARY_750_COLOR = "#2F6F60",
PRIMARY_800_COLOR = "#2c6759",
PRIMARY_900_COLOR = "#214b3f",
SENT_400_COLOR = "#6197b4", # Source PRIMARY_300_COLOR #61b4a7. ANALOGOUS' Second one.
RECEIVED_300_COLOR = "#a861b4", # Source PRIMARY_300_COLOR #61b4a7. TRIADIC' Second one.
DARK_BASIC_TEXT_COLOR = "#f2f2f2",
DARK_100_COLOR = "#f5f7fb", # THE LIGHTEST BG COLOR
DARK_200_COLOR = "#f1f2f6",
DARK_300_COLOR = "#e9eaee",
DARK_350_COLOR = "#d8d9dd",
DARK_400_COLOR = "#c7c8cc",
DARK_450_COLOR = "#b8b9bd",
DARK_500_COLOR = "#a9aaae",
DARK_600_COLOR = "#7f8084",
DARK_650_COLOR = "#75767a",
DARK_700_COLOR = "#6a6c6f",
DARK_725_COLOR = "#636467",
DARK_750_COLOR = "#5b5c5f",
DARK_775_COLOR = "#535457",
DARK_800_COLOR = "#4b4c4f",
DARK_825_COLOR = "#434447",
DARK_850_COLOR = "#3a3b3e",
DARK_863_COLOR = "#36373a",
DARK_875_COLOR = "#323336",
DARK_888_COLOR = "#2e2f32",
DARK_900_COLOR = "#292a2d", # Source
DARK_925_COLOR = "#242528",
DARK_950_COLOR = "#1f2022",
DARK_975_COLOR = "#1a1b1d",
DARK_1000_COLOR = "#151517", # THE DARKEST BG COLOR
# new one.
self.PRIMARY_100_COLOR = "#b7ded8"
self.PRIMARY_200_COLOR = "#8acac0"
self.PRIMARY_300_COLOR = "#61b4a7"
self.PRIMARY_400_COLOR = "#48a495"
self.PRIMARY_450_COLOR = "#429c8c"
self.PRIMARY_500_COLOR = "#3b9483"
self.PRIMARY_600_COLOR = "#368777"
self.PRIMARY_650_COLOR = "#347f6f"
self.PRIMARY_700_COLOR = "#317767"
self.PRIMARY_750_COLOR = "#2F6F60"
self.PRIMARY_800_COLOR = "#2c6759"
self.PRIMARY_900_COLOR = "#214b3f"
LIGHT_100_COLOR = "#f2f2f2", # THE LIGHTEST BG COLOR
LIGHT_200_COLOR = "#e9e9e9",
LIGHT_250_COLOR = "#e1e1e1",
LIGHT_300_COLOR = "#d9d9d9",
LIGHT_325_COLOR = "#d0d0d0",
LIGHT_350_COLOR = "#c7c7c7",
LIGHT_375_COLOR = "#bebebe",
LIGHT_400_COLOR = "#b5b5b5",
LIGHT_450_COLOR = "#a5a5a5",
LIGHT_500_COLOR = "#959595",
LIGHT_600_COLOR = "#6d6d6d",
LIGHT_700_COLOR = "#5a5a5a",
LIGHT_750_COLOR = "#515151",
LIGHT_800_COLOR = "#3b3b3b",
LIGHT_850_COLOR = "#323232",
LIGHT_875_COLOR = "#2b2b2b",
LIGHT_900_COLOR = "#1b1b1b",
# LIGHT_925_COLOR = "#121212",
# LIGHT_950_COLOR = "#0c0c0c",
# LIGHT_975_COLOR = "#070707",
LIGHT_1000_COLOR = "#010101", # THE DARKEST BG COLOR
)
self.DARK_100_COLOR = "#f5f7fb"
self.DARK_200_COLOR = "#f1f2f6"
self.DARK_300_COLOR = "#e9eaee"
self.DARK_350_COLOR = "#d8d9dd"
self.DARK_400_COLOR = "#c7c8cc"
self.DARK_450_COLOR = "#b8b9bd"
self.DARK_500_COLOR = "#a9aaae"
self.DARK_600_COLOR = "#7f8084"
self.DARK_650_COLOR = "#75767a"
self.DARK_700_COLOR = "#6a6c6f"
self.DARK_725_COLOR = "#636467"
self.DARK_750_COLOR = "#5b5c5f"
self.DARK_775_COLOR = "#535457"
self.DARK_800_COLOR = "#4b4c4f"
self.DARK_825_COLOR = "#434447"
self.DARK_850_COLOR = "#3a3b3e"
self.DARK_863_COLOR = "#36373a"
self.DARK_875_COLOR = "#323336"
self.DARK_888_COLOR = "#2e2f32"
self.DARK_900_COLOR = "#292a2d"
self.DARK_925_COLOR = "#242528"
self.DARK_950_COLOR = "#1f2022"
self.DARK_975_COLOR = "#1a1b1d"
self.DARK_1000_COLOR = "#151517" # THE DARKEST COLOR
self.LIGHT_100_COLOR = "#f2f2f2" # THE LIGHTEST COLOR
self.LIGHT_200_COLOR = "#e9e9e9"
self.LIGHT_250_COLOR = "#e1e1e1"
self.LIGHT_300_COLOR = "#d9d9d9"
self.LIGHT_325_COLOR = "#d0d0d0"
self.LIGHT_350_COLOR = "#c7c7c7"
self.LIGHT_375_COLOR = "#bebebe"
self.LIGHT_400_COLOR = "#b5b5b5"
self.LIGHT_450_COLOR = "#a5a5a5"
self.LIGHT_500_COLOR = "#959595"
self.LIGHT_600_COLOR = "#6d6d6d"
self.LIGHT_700_COLOR = "#5a5a5a"
self.LIGHT_750_COLOR = "#515151"
self.LIGHT_800_COLOR = "#3b3b3b"
self.LIGHT_850_COLOR = "#323232"
self.LIGHT_875_COLOR = "#2b2b2b"
self.LIGHT_900_COLOR = "#1b1b1b"
# self.LIGHT_925_COLOR = "#121212"
# self.LIGHT_950_COLOR = "#0c0c0c"
# self.LIGHT_975_COLOR = "#070707"
self.LIGHT_1000_COLOR = "#010101"
# It's actually meaningless to separate it from __init__. but it's just set to use the dark theme by default, so I did it just in case to change the default theme.
selected_color_theme = _darkTheme(self.base_color)
for each_key in selected_color_theme.__dict__.keys():
setattr(self, each_key, getattr(selected_color_theme, each_key))
if theme == "Dark":
self._createDarkModeColor()
pass
elif theme == "Light":
self._createLightModeColor()
selected_color_theme = _lightTheme(self.base_color)
self._colorThemeDictsMerger(selected_color_theme)
def _createDarkModeColor(self):
# Common
self.main.BASIC_TEXT_COLOR = self.LIGHT_100_COLOR
self.main.LABELS_TEXT_COLOR = self.main.BASIC_TEXT_COLOR
# Main
self.main.MAIN_BG_COLOR = self.DARK_888_COLOR
self.main.TEXTBOX_BG_COLOR = self.DARK_900_COLOR
self.main.TEXTBOX_TEXT_COLOR = self.main.BASIC_TEXT_COLOR
self.main.TEXTBOX_TEXT_SUB_COLOR = self.DARK_450_COLOR
self.main.TEXTBOX_SYSTEM_TAG_TEXT_COLOR = self.PRIMARY_300_COLOR
self.main.TEXTBOX_SENT_TAG_TEXT_COLOR = "#6197b4"
self.main.TEXTBOX_RECEIVED_TAG_TEXT_COLOR = "#a861b4"
self.main.TEXTBOX_ERROR_TAG_TEXT_COLOR = "#c27583"
self.main.TEXTBOX_TIMESTAMP_TEXT_COLOR = self.DARK_600_COLOR
self.main.TEXTBOX_TAB_BG_PASSIVE_COLOR = self.DARK_850_COLOR
self.main.TEXTBOX_TAB_BG_ACTIVE_COLOR = self.main.TEXTBOX_BG_COLOR
self.main.TEXTBOX_TAB_BG_HOVERED_COLOR = self.DARK_800_COLOR
self.main.TEXTBOX_TAB_BG_CLICKED_COLOR = self.DARK_925_COLOR
self.main.TEXTBOX_TAB_TEXT_ACTIVE_COLOR = self.main.BASIC_TEXT_COLOR
self.main.TEXTBOX_TAB_TEXT_PASSIVE_COLOR = self.DARK_500_COLOR
def _colorThemeDictsMerger(self, selected_color_theme):
# Each section(main, selectable_language_window, config_window...) marge to default theme.
for selected_theme_section_key in selected_color_theme.__dict__.keys():
# Get same section data by section key from default theme.
default_theme_target_section_data = getattr(self, selected_theme_section_key)
self.main.TEXTBOX_ENTRY_TEXT_COLOR = self.DARK_300_COLOR
self.main.TEXTBOX_ENTRY_TEXT_DISABLED_COLOR = self.DARK_500_COLOR
self.main.TEXTBOX_ENTRY_BG_COLOR = self.DARK_875_COLOR
self.main.TEXTBOX_ENTRY_BORDER_COLOR = self.DARK_750_COLOR
self.main.TEXTBOX_ENTRY_PLACEHOLDER_COLOR = self.DARK_500_COLOR
self.main.TEXTBOX_ENTRY_PLACEHOLDER_DISABLED_COLOR = self.DARK_700_COLOR
selected_theme_section_data = getattr(selected_color_theme, selected_theme_section_key)
self._mergeNestedDicts(default_theme_target_section_data.__dict__, selected_theme_section_data.__dict__)
# Sidebar
self.main.SIDEBAR_BG_COLOR = self.DARK_850_COLOR
def _mergeNestedDicts(self, d1, d2):
for key, value in d2.items():
if key in d1 and isinstance(d1[key], dict) and isinstance(value, dict):
self._mergeNestedDicts(d1[key], value)
else:
d1[key] = value
# Sidebar Features
self.main.SF__BG_COLOR = self.DARK_825_COLOR
self.main.SF__HOVERED_BG_COLOR = self.DARK_800_COLOR
self.main.SF__CLICKED_BG_COLOR = self.DARK_875_COLOR
self.main.SF__TEXT_DISABLED_COLOR = self.DARK_500_COLOR
self.main.SF__SWITCH_BOX_BG_COLOR = self.DARK_775_COLOR
self.main.SF__SWITCH_BOX_HOVERED_BG_COLOR = self.DARK_725_COLOR
self.main.SF__SWITCH_BOX_CLICKED_BG_COLOR = self.DARK_825_COLOR
self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR
self.main.SF__SWITCH_BOX_ACTIVE_HOVERED_BG_COLOR = self.PRIMARY_400_COLOR
self.main.SF__SWITCH_BOX_ACTIVE_CLICKED_BG_COLOR = self.PRIMARY_700_COLOR
self.main.SF__SWITCH_BOX_DISABLE_BG_COLOR = self.PRIMARY_800_COLOR
self.main.SF__SWITCH_BOX_BUTTON_COLOR = self.DARK_400_COLOR
# It's not working because It overrode internally.
self.main.SF__SWITCH_BOX_BUTTON_HOVERED_COLOR = self.DARK_350_COLOR
self.main.SF__SELECTED_MARK_ACTIVE_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR
self.main.SF__SELECTED_MARK_ACTIVE_HOVERED_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_HOVERED_BG_COLOR
self.main.SF__SELECTED_MARK_ACTIVE_CLICKED_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_CLICKED_BG_COLOR
self.main.SF__SELECTED_MARK_DISABLE_BG_COLOR = self.main.SF__SWITCH_BOX_DISABLE_BG_COLOR
# Sidebar Languages Settings
self.main.SLS__TITLE_TEXT_COLOR = self.DARK_400_COLOR
self.main.SLS__BG_COLOR = self.DARK_800_COLOR
self.main.SLS__PRESETS_TAB_BG_HOVERED_COLOR = self.DARK_825_COLOR
self.main.SLS__PRESETS_TAB_BG_CLICKED_COLOR = self.DARK_875_COLOR
self.main.SLS__PRESETS_TAB_BG_PASSIVE_COLOR = self.main.SIDEBAR_BG_COLOR
self.main.SLS__PRESETS_TAB_BG_ACTIVE_COLOR = self.main.SLS__BG_COLOR
self.main.SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR_PASSIVE = self.DARK_600_COLOR
self.main.SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR = self.main.BASIC_TEXT_COLOR
self.main.SLS__BOX_BG_COLOR = self.DARK_825_COLOR
self.main.SLS__BOX_SECTION_TITLE_TEXT_COLOR = self.DARK_400_COLOR
self.main.SLS__BOX_ARROWS_TEXT_COLOR = self.DARK_500_COLOR
self.main.SLS__OPTIONMENU_BG_COLOR = self.DARK_888_COLOR
self.main.SLS__OPTIONMENU_HOVERED_BG_COLOR = self.DARK_875_COLOR
self.main.SLS__OPTIONMENU_CLICKED_BG_COLOR = self.DARK_900_COLOR
self.main.CONFIG_BUTTON_BG_COLOR = self.main.SIDEBAR_BG_COLOR
self.main.CONFIG_BUTTON_HOVERED_BG_COLOR = self.DARK_800_COLOR
self.main.CONFIG_BUTTON_CLICKED_BG_COLOR = self.DARK_875_COLOR
# self.main.CONFIG_BUTTON_DISABLE_COLOR = self.DARK_900_COLOR
self.main.MINIMIZE_SIDEBAR_BUTTON_BG_COLOR = self.main.SIDEBAR_BG_COLOR
self.main.MINIMIZE_SIDEBAR_BUTTON_HOVERED_BG_COLOR = self.DARK_800_COLOR
self.main.MINIMIZE_SIDEBAR_BUTTON_CLICKED_BG_COLOR = self.DARK_900_COLOR
# self.main.MINIMIZE_SIDEBAR_BUTTON_DISABLE_COLOR = self.DARK_900_COLOR
self.main.TOP_BAR_BUTTON_BG_COLOR = self.main.MAIN_BG_COLOR
self.main.TOP_BAR_BUTTON_HOVERED_BG_COLOR = self.DARK_850_COLOR
self.main.TOP_BAR_BUTTON_CLICKED_BG_COLOR = self.DARK_900_COLOR
# self.main.TOP_BAR_BUTTON_DISABLE_COLOR = self.DARK_900_COLOR
self.main.UPDATE_AVAILABLE_BUTTON_BG_COLOR = self.main.TOP_BAR_BUTTON_BG_COLOR
self.main.UPDATE_AVAILABLE_BUTTON_HOVERED_BG_COLOR = self.main.TOP_BAR_BUTTON_HOVERED_BG_COLOR
self.main.UPDATE_AVAILABLE_BUTTON_CLICKED_BG_COLOR = self.main.TOP_BAR_BUTTON_CLICKED_BG_COLOR
# self.main.UPDATE_AVAILABLE_BUTTON_DISABLE_COLOR = self.main.TOP_BAR_BUTTON_DISABLE_COLOR
self.main.UPDATE_AVAILABLE_BUTTON_TEXT_COLOR = self.PRIMARY_300_COLOR
self.main.HELP_AND_INFO_BUTTON_BG_COLOR = self.main.TOP_BAR_BUTTON_BG_COLOR
self.main.HELP_AND_INFO_BUTTON_HOVERED_BG_COLOR = self.main.TOP_BAR_BUTTON_HOVERED_BG_COLOR
self.main.HELP_AND_INFO_BUTTON_CLICKED_BG_COLOR = self.main.TOP_BAR_BUTTON_CLICKED_BG_COLOR
# self.main.HELP_AND_INFO_BUTTON_DISABLE_COLOR = self.main.TOP_BAR_BUTTON_DISABLE_COLOR
# Selectable Language Window
self.selectable_language_window.BASIC_TEXT_COLOR = self.main.BASIC_TEXT_COLOR
self.selectable_language_window.MAIN_BG_COLOR = self.DARK_875_COLOR
self.selectable_language_window.GO_BACK_BUTTON_BG_COLOR = self.DARK_800_COLOR
self.selectable_language_window.GO_BACK_BUTTON_BG_HOVERED_COLOR = self.DARK_750_COLOR
self.selectable_language_window.GO_BACK_BUTTON_BG_CLICKED_COLOR = self.DARK_875_COLOR
self.selectable_language_window.TOP_BG_COLOR = self.main.SIDEBAR_BG_COLOR
self.selectable_language_window.TITLE_TEXT_COLOR = self.DARK_400_COLOR
self.selectable_language_window.LANGUAGE_BUTTON_BG_COLOR = self.selectable_language_window.MAIN_BG_COLOR
self.selectable_language_window.LANGUAGE_BUTTON_BG_HOVERED_COLOR = self.DARK_825_COLOR
self.selectable_language_window.LANGUAGE_BUTTON_BG_CLICKED_COLOR = self.DARK_888_COLOR
# Modal Window (Main Window)
self.main_window_cover.TEXT_COLOR = self.LIGHT_100_COLOR
self.confirmation_modal.MESSAGE_TEXT_COLOR = self.LIGHT_100_COLOR
self.confirmation_modal.FAKE_BORDER_COLOR = self.DARK_600_COLOR
self.confirmation_modal.BG_COLOR = self.DARK_800_COLOR
self.confirmation_modal.CONFIRMATION_BUTTONS_TEXT_COLOR = self.LIGHT_100_COLOR
self.confirmation_modal.ACCEPT_BUTTON_BG_COLOR = self.PRIMARY_600_COLOR
self.confirmation_modal.ACCEPT_BUTTON_HOVERED_BG_COLOR = self.PRIMARY_450_COLOR
self.confirmation_modal.ACCEPT_BUTTON_CLICKED_BG_COLOR = self.PRIMARY_750_COLOR
self.confirmation_modal.DENY_BUTTON_BG_COLOR = self.DARK_750_COLOR
self.confirmation_modal.DENY_BUTTON_HOVERED_BG_COLOR = self.DARK_700_COLOR
self.confirmation_modal.DENY_BUTTON_CLICKED_BG_COLOR = self.DARK_825_COLOR
# Common
self.config_window.BASIC_TEXT_COLOR = self.main.BASIC_TEXT_COLOR
self.config_window.LABELS_TEXT_COLOR = self.config_window.BASIC_TEXT_COLOR
self.config_window.LABELS_DESC_TEXT_COLOR = self.DARK_500_COLOR
self.config_window.LABELS_TEXT_DISABLED_COLOR = self.DARK_600_COLOR
# Top bar
self.config_window.TOP_BAR_BG_COLOR = self.DARK_850_COLOR
# Restart Button
self.config_window.RESTART_BUTTON_BG_COLOR = self.PRIMARY_600_COLOR
self.config_window.RESTART_BUTTON_HOVERED_BG_COLOR = self.PRIMARY_500_COLOR
self.config_window.RESTART_BUTTON_CLICKED_BG_COLOR = self.PRIMARY_700_COLOR
# Compact Mode
self.config_window.COMPACT_MODE_SWITCH_BOX_BG_COLOR = self.DARK_775_COLOR
self.config_window.COMPACT_MODE_SWITCH_BOX_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR
self.config_window.COMPACT_MODE_SWITCH_BOX_BUTTON_COLOR = self.DARK_350_COLOR
self.config_window.COMPACT_MODE_SWITCH_BOX_BUTTON_HOVERED_COLOR = self.DARK_300_COLOR
# Main
self.config_window.MAIN_BG_COLOR = self.DARK_950_COLOR
# This is for fake border color
self.config_window.SB__WRAPPER_BG_COLOR = self.DARK_750_COLOR
self.config_window.SB__BG_COLOR = self.DARK_888_COLOR
self.config_window.SB__OPTIONMENU_BG_COLOR = self.DARK_925_COLOR
self.config_window.SB__OPTIONMENU_HOVERED_BG_COLOR = self.DARK_850_COLOR
self.config_window.SB__OPTIONMENU_CLICKED_BG_COLOR = self.DARK_950_COLOR
self.config_window.SB__DROPDOWN_MENU_WINDOW_BG_COLOR = self.config_window.MAIN_BG_COLOR
self.config_window.SB__DROPDOWN_MENU_WINDOW_BORDER_COLOR = self.DARK_600_COLOR
# self.config_window.SB__DROPDOWN_MENU_WINDOW_BG_COLOR = self.DARK_700_COLOR
self.config_window.SB__DROPDOWN_MENU_BG_COLOR = self.DARK_875_COLOR
self.config_window.SB__DROPDOWN_MENU_HOVERED_BG_COLOR = self.DARK_800_COLOR
self.config_window.SB__DROPDOWN_MENU_CLICKED_BG_COLOR = self.DARK_900_COLOR
self.config_window.SB__SLIDER_BG_COLOR = self.DARK_700_COLOR
self.config_window.SB__SLIDER_PROGRESS_BG_COLOR = self.DARK_500_COLOR
self.config_window.SB__SLIDER_BUTTON_COLOR = self.DARK_700_COLOR
self.config_window.SB__SLIDER_BUTTON_HOVERED_COLOR = self.DARK_600_COLOR
self.config_window.SB__SLIDER_TOOLTIP_BG_COLOR = self.DARK_850_COLOR
self.config_window.SB__SLIDER_TOOLTIP_TEXT_COLOR = self.DARK_200_COLOR
self.config_window.SB__SWITCH_BOX_BG_COLOR = self.DARK_800_COLOR
self.config_window.SB__SWITCH_BOX_ACTIVE_BG_COLOR = self.PRIMARY_500_COLOR
self.config_window.SB__SWITCH_BOX_BUTTON_COLOR = self.DARK_400_COLOR
self.config_window.SB__SWITCH_BOX_BUTTON_HOVERED_COLOR = self.DARK_350_COLOR
self.config_window.SB__CHECKBOX_BORDER_COLOR = self.DARK_600_COLOR
self.config_window.SB__CHECKBOX_HOVER_COLOR = self.DARK_800_COLOR
self.config_window.SB__CHECKBOX_CHECKED_COLOR = self.PRIMARY_700_COLOR
self.config_window.SB__CHECKBOX_CHECKMARK_COLOR = self.config_window.BASIC_TEXT_COLOR
self.config_window.SB__ENTRY_TEXT_COLOR = self.DARK_300_COLOR
self.config_window.SB__ENTRY_BG_COLOR = self.DARK_863_COLOR
self.config_window.SB__ENTRY_BORDER_COLOR = self.DARK_775_COLOR
self.config_window.SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_BG_COLOR = self.DARK_800_COLOR
self.config_window.SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_BG_COLOR = self.PRIMARY_400_COLOR
self.config_window.SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_COLOR = self.PRIMARY_600_COLOR
self.config_window.SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_HOVERED_COLOR = self.PRIMARY_400_COLOR
self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_COLOR = self.DARK_800_COLOR
self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_COLOR = self.DARK_800_COLOR
self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_HOVERED_COLOR = self.DARK_700_COLOR
self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_CLICKED_COLOR = self.DARK_900_COLOR
self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_DISABLED_COLOR = self.DARK_850_COLOR
self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_COLOR = self.PRIMARY_600_COLOR
self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_HOVERED_COLOR = self.PRIMARY_500_COLOR
self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_CLICKED_COLOR = self.PRIMARY_800_COLOR
# self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_DISABLED_COLOR = self.PRIMARY_900_COLOR
# Side menu
self.config_window.SIDE_MENU_BG_COLOR = self.config_window.MAIN_BG_COLOR
self.config_window.SIDE_MENU_LABELS_BG_COLOR = self.config_window.SIDE_MENU_BG_COLOR
self.config_window.SIDE_MENU_LABELS_BG_FOR_FAKE_BORDER_COLOR = self.config_window.SIDE_MENU_BG_COLOR
self.config_window.SIDE_MENU_LABELS_HOVERED_BG_COLOR = self.DARK_850_COLOR
self.config_window.SIDE_MENU_LABELS_CLICKED_BG_COLOR = self.PRIMARY_750_COLOR
self.config_window.SIDE_MENU_LABELS_SELECTED_TEXT_COLOR = self.PRIMARY_200_COLOR
self.config_window.SIDE_MENU_SELECTED_MARK_ACTIVE_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR
self.config_window.NOW_VERSION_TEXT_COLOR = self.DARK_300_COLOR
# Error Message Window for Config Window
# The color code [#bb4448] is a mixture of [#a9555c] and [#cc3333] (for a redder shade).
self.config_window.SB__ERROR_MESSAGE_BG_COLOR = "#bb4448"
self.config_window.SB__ERROR_MESSAGE_TEXT_COLOR = "#fff"
# def _createLightModeColor(self):
# # Common
# self.main.BASIC_TEXT_COLOR = self.DARK_1000_COLOR
# self.main.LABELS_TEXT_COLOR = self.main.BASIC_TEXT_COLOR
# # Main
# self.main.MAIN_BG_COLOR = self.LIGHT_300_COLOR
# self.main.TEXTBOX_BG_COLOR = self.LIGHT_200_COLOR
# self.main.TEXTBOX_TEXT_COLOR = self.main.BASIC_TEXT_COLOR
# self.main.TEXTBOX_TAB_BG_PASSIVE_COLOR = self.LIGHT_350_COLOR
# self.main.TEXTBOX_TAB_BG_ACTIVE_COLOR = self.main.TEXTBOX_BG_COLOR
# self.main.TEXTBOX_TAB_BG_HOVERED_COLOR = self.LIGHT_300_COLOR
# self.main.TEXTBOX_TAB_BG_CLICKED_COLOR = self.LIGHT_350_COLOR
# self.main.TEXTBOX_TAB_TEXT_ACTIVE_COLOR = self.main.BASIC_TEXT_COLOR
# self.main.TEXTBOX_TAB_TEXT_PASSIVE_COLOR = self.LIGHT_600_COLOR
# self.main.TEXTBOX_ENTRY_TEXT_COLOR = self.LIGHT_800_COLOR
# self.main.TEXTBOX_ENTRY_TEXT_DISABLED_COLOR = self.LIGHT_500_COLOR
# self.main.TEXTBOX_ENTRY_BG_COLOR = self.LIGHT_325_COLOR
# self.main.TEXTBOX_ENTRY_BORDER_COLOR = self.LIGHT_400_COLOR
# self.main.TEXTBOX_ENTRY_PLACEHOLDER_COLOR = self.LIGHT_600_COLOR
# self.main.TEXTBOX_ENTRY_PLACEHOLDER_DISABLED_COLOR = self.LIGHT_700_COLOR
# # Sidebar
# self.main.SIDEBAR_BG_COLOR = self.LIGHT_350_COLOR
# # Sidebar Features
# self.main.SF__BG_COLOR = self.LIGHT_375_COLOR
# self.main.SF__HOVERED_BG_COLOR = self.LIGHT_300_COLOR
# self.main.SF__CLICKED_BG_COLOR = self.LIGHT_200_COLOR
# self.main.SF__TEXT_DISABLED_COLOR = self.LIGHT_500_COLOR
# self.main.SF__SWITCH_BOX_BG_COLOR = self.LIGHT_300_COLOR
# self.main.SF__SWITCH_BOX_HOVERED_BG_COLOR = self.LIGHT_450_COLOR
# self.main.SF__SWITCH_BOX_CLICKED_BG_COLOR = self.LIGHT_350_COLOR
# self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR = self.PRIMARY_650_COLOR
# self.main.SF__SWITCH_BOX_ACTIVE_HOVERED_BG_COLOR = self.PRIMARY_500_COLOR
# self.main.SF__SWITCH_BOX_ACTIVE_CLICKED_BG_COLOR = self.PRIMARY_700_COLOR
# self.main.SF__SWITCH_BOX_DISABLE_BG_COLOR = self.PRIMARY_900_COLOR
# self.main.SF__SELECTED_MARK_ACTIVE_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR
# self.main.SF__SELECTED_MARK_ACTIVE_HOVERED_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_HOVERED_BG_COLOR
# self.main.SF__SELECTED_MARK_ACTIVE_CLICKED_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_CLICKED_BG_COLOR
# self.main.SF__SELECTED_MARK_DISABLE_BG_COLOR = self.main.SF__SWITCH_BOX_DISABLE_BG_COLOR
# # Sidebar quick settings
# self.main.SLS__TITLE_TEXT_COLOR = self.LIGHT_800_COLOR
# self.main.SLS__BG_COLOR = self.LIGHT_300_COLOR
# self.main.SLS__PRESETS_TAB_BG_HOVERED_COLOR = self.LIGHT_350_COLOR
# self.main.SLS__PRESETS_TAB_BG_CLICKED_COLOR = self.LIGHT_800_COLOR
# self.main.SLS__PRESETS_TAB_BG_PASSIVE_COLOR = self.main.SIDEBAR_BG_COLOR
# self.main.SLS__PRESETS_TAB_BG_ACTIVE_COLOR = self.main.SLS__BG_COLOR
# self.main.SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR_PASSIVE = self.LIGHT_600_COLOR
# self.main.SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR = self.main.BASIC_TEXT_COLOR
# self.main.SLS__BOX_BG_COLOR = self.LIGHT_350_COLOR
# self.main.SLS__BOX_SECTION_TITLE_TEXT_COLOR = self.LIGHT_800_COLOR
# self.main.SLS__BOX_ARROWS_TEXT_COLOR = self.LIGHT_700_COLOR
# self.main.SLS__OPTIONMENU_BG_COLOR = self.LIGHT_500_COLOR
# self.main.CONFIG_BUTTON_BG_COLOR = self.main.SIDEBAR_BG_COLOR
# self.main.CONFIG_BUTTON_HOVERED_BG_COLOR = self.LIGHT_800_COLOR
# self.main.CONFIG_BUTTON_CLICKED_BG_COLOR = self.LIGHT_900_COLOR
# # self.main.CONFIG_BUTTON_DISABLE_COLOR = self.LIGHT_900_COLOR
# self.main.MINIMIZE_SIDEBAR_BUTTON_BG_COLOR = self.main.SIDEBAR_BG_COLOR
# self.main.MINIMIZE_SIDEBAR_BUTTON_HOVERED_BG_COLOR = self.LIGHT_800_COLOR
# self.main.MINIMIZE_SIDEBAR_BUTTON_CLICKED_BG_COLOR = self.LIGHT_900_COLOR
# # self.main.MINIMIZE_SIDEBAR_BUTTON_DISABLE_COLOR = self.LIGHT_900_COLOR
# self.main.HELP_AND_INFO_BUTTON_BG_COLOR = self.main.MAIN_BG_COLOR
# self.main.HELP_AND_INFO_BUTTON_HOVERED_BG_COLOR = self.LIGHT_350_COLOR
# self.main.HELP_AND_INFO_BUTTON_CLICKED_BG_COLOR = self.LIGHT_450_COLOR
# # self.main.HELP_AND_INFO_BUTTON_DISABLE_COLOR = self.LIGHT_900_COLOR
# # Common
# self.config_window.BASIC_TEXT_COLOR = self.main.BASIC_TEXT_COLOR
# self.config_window.LABELS_TEXT_COLOR = self.config_window.BASIC_TEXT_COLOR
# self.config_window.LABELS_DESC_TEXT_COLOR = self.DARK_500_COLOR
# # Top bar
# self.config_window.TOP_BAR_BG_COLOR = self.DARK_850_COLOR
# # Main
# self.config_window.MAIN_BG_COLOR = self.DARK_950_COLOR
# # This is for fake border color
# self.config_window.SB__WRAPPER_BG_COLOR = self.DARK_750_COLOR
# self.config_window.SB__BG_COLOR = self.DARK_888_COLOR
# self.config_window.SB__OPTIONMENU_BG_COLOR = self.DARK_925_COLOR
# self.config_window.SB__OPTIONMENU_HOVERED_BG_COLOR = self.DARK_875_COLOR
# self.config_window.SB__SLIDER_BUTTON_COLOR = self.DARK_700_COLOR
# self.config_window.SB__SLIDER_BUTTON_HOVERED_COLOR = self.DARK_600_COLOR
# self.config_window.SB__SWITCH_BOX_BG_COLOR = self.main.SF__SWITCH_BOX_BG_COLOR
# self.config_window.SB__SWITCH_BOX_ACTIVE_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR
# self.config_window.SB__CHECKBOX_BORDER_COLOR = self.DARK_500_COLOR
# self.config_window.SB__CHECKBOX_HOVER_COLOR = self.DARK_800_COLOR
# self.config_window.SB__CHECKBOX_CHECKED_COLOR = self.PRIMARY_700_COLOR
# self.config_window.SB__CHECKBOX_CHECKMARK_COLOR = self.config_window.BASIC_TEXT_COLOR
# self.config_window.SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_COLOR = self.PRIMARY_700_COLOR
# self.config_window.SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_HOVERED_COLOR = self.PRIMARY_500_COLOR
# self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_COLOR = self.DARK_800_COLOR
# self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_COLOR = self.DARK_800_COLOR
# self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_HOVERED_COLOR = self.DARK_700_COLOR
# self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_CLICKED_COLOR = self.DARK_900_COLOR
# self.config_window.SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_DISABLED_COLOR = self.DARK_850_COLOR
# self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_COLOR = self.PRIMARY_700_COLOR
# self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_HOVERED_COLOR = self.PRIMARY_600_COLOR
# self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_CLICKED_COLOR = self.PRIMARY_900_COLOR
# # self.config_window.SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_DISABLED_COLOR = self.PRIMARY_900_COLOR
# # Side menu
# self.config_window.SIDE_MENU_BG_COLOR = self.config_window.MAIN_BG_COLOR
# self.config_window.SIDE_MENU_LABELS_BG_COLOR = self.config_window.SIDE_MENU_BG_COLOR
# self.config_window.SIDE_MENU_LABELS_BG_FOR_FAKE_BORDER_COLOR = self.config_window.SIDE_MENU_BG_COLOR
# self.config_window.SIDE_MENU_LABELS_HOVERED_BG_COLOR = self.DARK_850_COLOR
# self.config_window.SIDE_MENU_LABELS_CLICKED_BG_COLOR = self.PRIMARY_900_COLOR
# self.config_window.SIDE_MENU_LABELS_SELECTED_TEXT_COLOR = self.PRIMARY_300_COLOR
# self.config_window.SIDE_MENU_SELECTED_MARK_ACTIVE_BG_COLOR = self.main.SF__SWITCH_BOX_ACTIVE_BG_COLOR
return d1

View File

@@ -1,58 +0,0 @@
from ..ui_utils import getImageFileFromUiUtils
class ImageFileManager():
def __init__(self, theme:str ="Dark"):
if theme == "Dark":
self._createDarkModeImages()
elif theme == "Light":
self._createLightModeImages()
def _createDarkModeImages(self):
self.VRCT_LOGO = getImageFileFromUiUtils("vrct_logo_for_dark_mode.png")
self.VRCT_LOGO_MARK = getImageFileFromUiUtils("vrct_logo_mark_white.png")
self.TRANSLATION_ICON = getImageFileFromUiUtils("translation_icon_white.png")
self.TRANSLATION_ICON_DISABLED = getImageFileFromUiUtils("translation_icon_disabled.png")
self.MIC_ICON = getImageFileFromUiUtils("mic_icon_white.png")
self.MIC_ICON_DISABLED = getImageFileFromUiUtils("mic_icon_disabled.png")
self.HEADPHONES_ICON = getImageFileFromUiUtils("headphones_icon_white.png")
self.HEADPHONES_ICON_DISABLED = getImageFileFromUiUtils("headphones_icon_disabled.png")
self.FOREGROUND_ICON = getImageFileFromUiUtils("foreground_icon_white.png")
self.FOREGROUND_ICON_DISABLED = getImageFileFromUiUtils("foreground_icon_disabled.png")
self.NARROW_ARROW_DOWN = getImageFileFromUiUtils("narrow_arrow_down.png")
self.CONFIGURATION_ICON = getImageFileFromUiUtils("configuration_icon_white.png")
self.CONFIGURATION_ICON_DISABLED = getImageFileFromUiUtils("configuration_icon_disabled.png")
self.ARROW_LEFT = getImageFileFromUiUtils("arrow_left_white.png")
self.ARROW_LEFT_DISABLED = getImageFileFromUiUtils("arrow_left_disabled.png")
self.REFRESH_ICON = getImageFileFromUiUtils("refresh_icon.png")
self.HELP_ICON = getImageFileFromUiUtils("help_icon_white.png")
def _createLightModeImages(self):
self.VRCT_LOGO = getImageFileFromUiUtils("vrct_logo_for_light_mode.png")
self.VRCT_LOGO_MARK = getImageFileFromUiUtils("vrct_logo_mark_black.png")
self.TRANSLATION_ICON = getImageFileFromUiUtils("translation_icon_white.png")
self.TRANSLATION_ICON_DISABLED = getImageFileFromUiUtils("translation_icon_disabled.png")
self.MIC_ICON = getImageFileFromUiUtils("mic_icon_white.png")
self.MIC_ICON_DISABLED = getImageFileFromUiUtils("mic_icon_disabled.png")
self.HEADPHONES_ICON = getImageFileFromUiUtils("headphones_icon_white.png")
self.HEADPHONES_ICON_DISABLED = getImageFileFromUiUtils("headphones_icon_disabled.png")
self.FOREGROUND_ICON = getImageFileFromUiUtils("foreground_icon_white.png")
self.FOREGROUND_ICON_DISABLED = getImageFileFromUiUtils("foreground_icon_disabled.png")
self.NARROW_ARROW_DOWN = getImageFileFromUiUtils("narrow_arrow_down.png")
self.CONFIGURATION_ICON = getImageFileFromUiUtils("configuration_icon_white.png")
self.CONFIGURATION_ICON_DISABLED = getImageFileFromUiUtils("configuration_icon_disabled.png")
self.ARROW_LEFT = getImageFileFromUiUtils("arrow_left_white.png")
self.ARROW_LEFT_DISABLED = getImageFileFromUiUtils("arrow_left_disabled.png")
self.HELP_ICON = getImageFileFromUiUtils("help_icon_white.png")

View File

@@ -0,0 +1,2 @@
from ._darkTheme import _darkTheme
from ._lightTheme import _lightTheme

View File

@@ -0,0 +1,300 @@
from types import SimpleNamespace
from ...ui_utils import getImageFileFromUiUtils
def _darkTheme(base_color):
theme_settings = SimpleNamespace(
main = SimpleNamespace(
# Common
BASIC_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR,
LABELS_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR,
# Main
MAIN_BG_COLOR = base_color.DARK_888_COLOR,
TEXTBOX_BG_COLOR = base_color.DARK_900_COLOR,
TEXTBOX_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR,
TEXTBOX_TEXT_SUB_COLOR = base_color.DARK_450_COLOR,
TEXTBOX_SYSTEM_TAG_TEXT_COLOR = base_color.PRIMARY_300_COLOR,
TEXTBOX_SENT_TAG_TEXT_COLOR = base_color.SENT_400_COLOR,
TEXTBOX_RECEIVED_TAG_TEXT_COLOR = base_color.RECEIVED_300_COLOR,
# TEXTBOX_ERROR_TAG_TEXT_COLOR = "#c27583",
TEXTBOX_TIMESTAMP_TEXT_COLOR = base_color.DARK_600_COLOR,
TEXTBOX_TAB_BG_PASSIVE_COLOR = base_color.DARK_850_COLOR,
TEXTBOX_TAB_BG_ACTIVE_COLOR = base_color.DARK_900_COLOR,
TEXTBOX_TAB_BG_HOVERED_COLOR = base_color.DARK_800_COLOR,
TEXTBOX_TAB_BG_CLICKED_COLOR = base_color.DARK_925_COLOR,
TEXTBOX_TAB_TEXT_ACTIVE_COLOR = base_color.DARK_BASIC_TEXT_COLOR,
TEXTBOX_TAB_TEXT_PASSIVE_COLOR = base_color.DARK_500_COLOR,
TEXTBOX_ENTRY_TEXT_COLOR = base_color.DARK_300_COLOR,
TEXTBOX_ENTRY_TEXT_DISABLED_COLOR = base_color.DARK_500_COLOR,
TEXTBOX_ENTRY_BG_COLOR = base_color.DARK_875_COLOR,
TEXTBOX_ENTRY_BORDER_COLOR = base_color.DARK_750_COLOR,
TEXTBOX_ENTRY_PLACEHOLDER_COLOR = base_color.DARK_500_COLOR,
TEXTBOX_ENTRY_PLACEHOLDER_DISABLED_COLOR = base_color.DARK_700_COLOR,
# Sidebar
SIDEBAR_BG_COLOR = base_color.DARK_850_COLOR,
# Sidebar Features
SF__BG_COLOR = base_color.DARK_825_COLOR,
SF__HOVERED_BG_COLOR = base_color.DARK_800_COLOR,
SF__CLICKED_BG_COLOR = base_color.DARK_875_COLOR,
SF__TEXT_DISABLED_COLOR = base_color.DARK_500_COLOR,
SF__SWITCH_BOX_BG_COLOR = base_color.DARK_775_COLOR,
SF__SWITCH_BOX_HOVERED_BG_COLOR = base_color.DARK_725_COLOR,
SF__SWITCH_BOX_CLICKED_BG_COLOR = base_color.DARK_825_COLOR,
SF__SWITCH_BOX_ACTIVE_BG_COLOR = base_color.PRIMARY_500_COLOR,
SF__SWITCH_BOX_ACTIVE_HOVERED_BG_COLOR = base_color.PRIMARY_400_COLOR,
SF__SWITCH_BOX_ACTIVE_CLICKED_BG_COLOR = base_color.PRIMARY_700_COLOR,
SF__SWITCH_BOX_DISABLE_BG_COLOR = base_color.PRIMARY_800_COLOR,
SF__SWITCH_BOX_BUTTON_COLOR = base_color.DARK_400_COLOR,
# It's not working because It overrode internally.
SF__SWITCH_BOX_BUTTON_HOVERED_COLOR = base_color.DARK_350_COLOR,
SF__SELECTED_MARK_ACTIVE_BG_COLOR = base_color.PRIMARY_500_COLOR,
SF__SELECTED_MARK_ACTIVE_HOVERED_BG_COLOR = base_color.PRIMARY_400_COLOR,
SF__SELECTED_MARK_ACTIVE_CLICKED_BG_COLOR = base_color.PRIMARY_700_COLOR,
SF__SELECTED_MARK_DISABLE_BG_COLOR = base_color.PRIMARY_800_COLOR,
# Sidebar Languages Settings
SLS__TITLE_TEXT_COLOR = base_color.DARK_400_COLOR,
SLS__BG_COLOR = base_color.DARK_800_COLOR,
SLS__PRESETS_TAB_BG_HOVERED_COLOR = base_color.DARK_825_COLOR,
SLS__PRESETS_TAB_BG_CLICKED_COLOR = base_color.DARK_875_COLOR,
SLS__PRESETS_TAB_BG_PASSIVE_COLOR = base_color.DARK_850_COLOR,
SLS__PRESETS_TAB_BG_ACTIVE_COLOR = base_color.DARK_800_COLOR,
SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR_PASSIVE = base_color.DARK_600_COLOR,
SLS__PRESETS_TAB_ACTIVE_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR,
SLS__BOX_BG_COLOR = base_color.DARK_825_COLOR,
SLS__BOX_SECTION_TITLE_TEXT_COLOR = base_color.DARK_400_COLOR,
SLS__BOX_ARROWS_TEXT_COLOR = base_color.DARK_500_COLOR,
SLS__OPTIONMENU_BG_COLOR = base_color.DARK_888_COLOR,
SLS__OPTIONMENU_HOVERED_BG_COLOR = base_color.DARK_875_COLOR,
SLS__OPTIONMENU_CLICKED_BG_COLOR = base_color.DARK_900_COLOR,
CONFIG_BUTTON_BG_COLOR = base_color.DARK_850_COLOR,
CONFIG_BUTTON_HOVERED_BG_COLOR = base_color.DARK_800_COLOR,
CONFIG_BUTTON_CLICKED_BG_COLOR = base_color.DARK_875_COLOR,
MINIMIZE_SIDEBAR_BUTTON_BG_COLOR = base_color.DARK_850_COLOR,
MINIMIZE_SIDEBAR_BUTTON_HOVERED_BG_COLOR = base_color.DARK_800_COLOR,
MINIMIZE_SIDEBAR_BUTTON_CLICKED_BG_COLOR = base_color.DARK_900_COLOR,
TOP_BAR_BUTTON_BG_COLOR = base_color.DARK_888_COLOR,
TOP_BAR_BUTTON_HOVERED_BG_COLOR = base_color.DARK_850_COLOR,
TOP_BAR_BUTTON_CLICKED_BG_COLOR = base_color.DARK_900_COLOR,
UPDATE_AVAILABLE_BUTTON_BG_COLOR = base_color.DARK_888_COLOR,
UPDATE_AVAILABLE_BUTTON_HOVERED_BG_COLOR = base_color.DARK_850_COLOR,
UPDATE_AVAILABLE_BUTTON_CLICKED_BG_COLOR = base_color.DARK_900_COLOR,
UPDATE_AVAILABLE_BUTTON_TEXT_COLOR = base_color.PRIMARY_300_COLOR,
HELP_AND_INFO_BUTTON_BG_COLOR = base_color.DARK_888_COLOR,
HELP_AND_INFO_BUTTON_HOVERED_BG_COLOR = base_color.DARK_850_COLOR,
HELP_AND_INFO_BUTTON_CLICKED_BG_COLOR = base_color.DARK_900_COLOR,
),
selectable_language_window = SimpleNamespace(
# Selectable Language Window
BASIC_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR,
MAIN_BG_COLOR = base_color.DARK_875_COLOR,
GO_BACK_BUTTON_BG_COLOR = base_color.DARK_800_COLOR,
GO_BACK_BUTTON_BG_HOVERED_COLOR = base_color.DARK_750_COLOR,
GO_BACK_BUTTON_BG_CLICKED_COLOR = base_color.DARK_875_COLOR,
TOP_BG_COLOR = base_color.DARK_850_COLOR,
TITLE_TEXT_COLOR = base_color.DARK_400_COLOR,
LANGUAGE_BUTTON_BG_COLOR = base_color.DARK_875_COLOR,
LANGUAGE_BUTTON_BG_HOVERED_COLOR = base_color.DARK_825_COLOR,
LANGUAGE_BUTTON_BG_CLICKED_COLOR = base_color.DARK_888_COLOR,
),
# Modal Window (Main Window)
main_window_cover = SimpleNamespace(
TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR,
),
confirmation_modal = SimpleNamespace(
MESSAGE_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR,
FAKE_BORDER_COLOR = base_color.DARK_600_COLOR,
BG_COLOR = base_color.DARK_800_COLOR,
CONFIRMATION_BUTTONS_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR,
ACCEPT_BUTTON_BG_COLOR = base_color.PRIMARY_600_COLOR,
ACCEPT_BUTTON_HOVERED_BG_COLOR = base_color.PRIMARY_450_COLOR,
ACCEPT_BUTTON_CLICKED_BG_COLOR = base_color.PRIMARY_750_COLOR,
DENY_BUTTON_BG_COLOR = base_color.DARK_750_COLOR,
DENY_BUTTON_HOVERED_BG_COLOR = base_color.DARK_700_COLOR,
DENY_BUTTON_CLICKED_BG_COLOR = base_color.DARK_825_COLOR,
),
config_window = SimpleNamespace(
# Common
BASIC_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR,
LABELS_TEXT_COLOR = base_color.DARK_BASIC_TEXT_COLOR,
LABELS_DESC_TEXT_COLOR = base_color.DARK_500_COLOR,
LABELS_TEXT_DISABLED_COLOR = base_color.DARK_600_COLOR,
# Top bar
TOP_BAR_BG_COLOR = base_color.DARK_850_COLOR,
# Restart Button
RESTART_BUTTON_BG_COLOR = base_color.PRIMARY_600_COLOR,
RESTART_BUTTON_HOVERED_BG_COLOR = base_color.PRIMARY_500_COLOR,
RESTART_BUTTON_CLICKED_BG_COLOR = base_color.PRIMARY_700_COLOR,
# Compact Mode
COMPACT_MODE_SWITCH_BOX_BG_COLOR = base_color.DARK_775_COLOR,
COMPACT_MODE_SWITCH_BOX_ACTIVE_BG_COLOR = base_color.PRIMARY_500_COLOR,
COMPACT_MODE_SWITCH_BOX_BUTTON_COLOR = base_color.DARK_350_COLOR,
COMPACT_MODE_SWITCH_BOX_BUTTON_HOVERED_COLOR = base_color.DARK_300_COLOR,
# Main
MAIN_BG_COLOR = base_color.DARK_950_COLOR,
# This is for fake border color
SB__WRAPPER_BG_COLOR = base_color.DARK_750_COLOR,
SB__BG_COLOR = base_color.DARK_888_COLOR,
SB__OPTIONMENU_BG_COLOR = base_color.DARK_925_COLOR,
SB__OPTIONMENU_HOVERED_BG_COLOR = base_color.DARK_850_COLOR,
SB__OPTIONMENU_CLICKED_BG_COLOR = base_color.DARK_950_COLOR,
SB__DROPDOWN_MENU_WINDOW_BG_COLOR = base_color.DARK_950_COLOR,
SB__DROPDOWN_MENU_WINDOW_BORDER_COLOR = base_color.DARK_600_COLOR,
SB__DROPDOWN_MENU_BG_COLOR = base_color.DARK_875_COLOR,
SB__DROPDOWN_MENU_HOVERED_BG_COLOR = base_color.DARK_800_COLOR,
SB__DROPDOWN_MENU_CLICKED_BG_COLOR = base_color.DARK_900_COLOR,
SB__SLIDER_BG_COLOR = base_color.DARK_700_COLOR,
SB__SLIDER_PROGRESS_BG_COLOR = base_color.DARK_500_COLOR,
SB__SLIDER_BUTTON_COLOR = base_color.DARK_700_COLOR,
SB__SLIDER_BUTTON_HOVERED_COLOR = base_color.DARK_600_COLOR,
SB__SLIDER_TOOLTIP_BG_COLOR = base_color.DARK_850_COLOR,
SB__SLIDER_TOOLTIP_TEXT_COLOR = base_color.DARK_200_COLOR,
SB__SWITCH_BOX_BG_COLOR = base_color.DARK_800_COLOR,
SB__SWITCH_BOX_ACTIVE_BG_COLOR = base_color.PRIMARY_500_COLOR,
SB__SWITCH_BOX_BUTTON_COLOR = base_color.DARK_400_COLOR,
SB__SWITCH_BOX_BUTTON_HOVERED_COLOR = base_color.DARK_350_COLOR,
SB__CHECKBOX_BORDER_COLOR = base_color.DARK_600_COLOR,
SB__CHECKBOX_HOVER_COLOR = base_color.DARK_800_COLOR,
SB__CHECKBOX_CHECKED_COLOR = base_color.PRIMARY_700_COLOR,
SB__CHECKBOX_CHECKMARK_COLOR = base_color.DARK_BASIC_TEXT_COLOR,
SB__ENTRY_TEXT_COLOR = base_color.DARK_300_COLOR,
SB__ENTRY_BG_COLOR = base_color.DARK_863_COLOR,
SB__ENTRY_BORDER_COLOR = base_color.DARK_775_COLOR,
SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_BG_COLOR = base_color.DARK_800_COLOR,
SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_BG_COLOR = base_color.PRIMARY_750_COLOR,
SB__PROGRESSBAR_X_SLIDER__PROGRESSBAR_PROGRESS_EXCEED_THRESHOLD_BG_COLOR = base_color.PRIMARY_400_COLOR,
SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_COLOR = base_color.PRIMARY_600_COLOR,
SB__PROGRESSBAR_X_SLIDER__SLIDER_BUTTON_HOVERED_COLOR = base_color.PRIMARY_400_COLOR,
SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_COLOR = base_color.DARK_800_COLOR,
SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_HOVERED_COLOR = base_color.DARK_700_COLOR,
SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_CLICKED_COLOR = base_color.DARK_900_COLOR,
SB__PROGRESSBAR_X_SLIDER__PASSIVE_BUTTON_DISABLED_COLOR = base_color.DARK_850_COLOR,
SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_COLOR = base_color.PRIMARY_600_COLOR,
SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_HOVERED_COLOR = base_color.PRIMARY_500_COLOR,
SB__PROGRESSBAR_X_SLIDER__ACTIVE_BUTTON_CLICKED_COLOR = base_color.PRIMARY_800_COLOR,
SB__ARROW_SWITCH_BUTTON_COLOR = base_color.DARK_888_COLOR,
SB__ARROW_SWITCH_BUTTON_HOVERED_COLOR = base_color.DARK_800_COLOR,
SB__ARROW_SWITCH_BUTTON_CLICKED_COLOR = base_color.DARK_900_COLOR,
SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_COLOR = base_color.PRIMARY_600_COLOR,
SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_HOVERED_COLOR = base_color.PRIMARY_500_COLOR,
SB__ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_CLICKED_COLOR = base_color.PRIMARY_700_COLOR,
SB__ADD_AND_DELETE_ABLE_LIST_BG_COLOR = base_color.DARK_800_COLOR,
SB__ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_HOVERED_BG_COLOR = base_color.DARK_750_COLOR,
SB__ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_CLICKED_BG_COLOR = base_color.DARK_850_COLOR,
SB__ADD_AND_DELETE_ABLE_LIST_DELETED_BG_COLOR = base_color.DARK_850_COLOR,
SB__ADD_AND_DELETE_ABLE_LIST__VALUES_DELETED_BUTTON_HOVERED_BG_COLOR = base_color.DARK_800_COLOR,
SB__ADD_AND_DELETE_ABLE_LIST__VALUES_DELETED_BUTTON_CLICKED_BG_COLOR = base_color.DARK_900_COLOR,
# Side menu
SIDE_MENU_BG_COLOR = base_color.DARK_950_COLOR,
SIDE_MENU_LABELS_BG_COLOR = base_color.DARK_950_COLOR,
SIDE_MENU_LABELS_BG_FOR_FAKE_BORDER_COLOR = base_color.DARK_950_COLOR,
SIDE_MENU_LABELS_HOVERED_BG_COLOR = base_color.DARK_850_COLOR,
SIDE_MENU_LABELS_CLICKED_BG_COLOR = base_color.PRIMARY_750_COLOR,
SIDE_MENU_LABELS_SELECTED_TEXT_COLOR = base_color.PRIMARY_200_COLOR,
SIDE_MENU_SELECTED_MARK_ACTIVE_BG_COLOR = base_color.PRIMARY_500_COLOR,
NOW_VERSION_TEXT_COLOR = base_color.DARK_300_COLOR,
# Error Message Window for Config Window
# The color code [#bb4448] is a mixture of [#a9555c] and [#cc3333] (for a redder shade).
SB__ERROR_MESSAGE_BG_COLOR = "#bb4448",
SB__ERROR_MESSAGE_TEXT_COLOR = "#fff",
),
image_file = SimpleNamespace(
VRCT_LOGO = getImageFileFromUiUtils("vrct_logo_for_dark_mode.png"),
VRCT_LOGO_MARK = getImageFileFromUiUtils("vrct_logo_mark_white.png"),
TRANSLATION_ICON = getImageFileFromUiUtils("translation_icon_white.png"),
TRANSLATION_ICON_DISABLED = getImageFileFromUiUtils("translation_icon_disabled.png"),
MIC_ICON = getImageFileFromUiUtils("mic_icon_white.png"),
MIC_ICON_DISABLED = getImageFileFromUiUtils("mic_icon_disabled.png"),
HEADPHONES_ICON = getImageFileFromUiUtils("headphones_icon_white.png"),
HEADPHONES_ICON_DISABLED = getImageFileFromUiUtils("headphones_icon_disabled.png"),
FOREGROUND_ICON = getImageFileFromUiUtils("foreground_icon_white.png"),
FOREGROUND_ICON_DISABLED = getImageFileFromUiUtils("foreground_icon_disabled.png"),
NARROW_ARROW_DOWN = getImageFileFromUiUtils("narrow_arrow_down.png"),
CONFIGURATION_ICON = getImageFileFromUiUtils("configuration_icon_white.png"),
CONFIGURATION_ICON_DISABLED = getImageFileFromUiUtils("configuration_icon_disabled.png"),
ARROW_LEFT = getImageFileFromUiUtils("arrow_left_white.png"),
ARROW_LEFT_DISABLED = getImageFileFromUiUtils("arrow_left_disabled.png"),
REFRESH_ICON = getImageFileFromUiUtils("refresh_icon.png"),
HELP_ICON = getImageFileFromUiUtils("help_icon_white.png"),
CANCEL_ICON = getImageFileFromUiUtils("cancel_icon.png"),
REDO_ICON = getImageFileFromUiUtils("redo_white.png"),
),
)
return theme_settings

View File

@@ -0,0 +1,47 @@
from types import SimpleNamespace
from ...ui_utils import getImageFileFromUiUtils
def _lightTheme(base_color):
theme_settings = SimpleNamespace(
main = SimpleNamespace(
# Common
BASIC_TEXT_COLOR = base_color.LIGHT_100_COLOR,
LABELS_TEXT_COLOR = base_color.LIGHT_100_COLOR,
# Main
MAIN_BG_COLOR = base_color.DARK_888_COLOR,
),
config_window = SimpleNamespace(
# Common
BASIC_TEXT_COLOR = base_color.LIGHT_100_COLOR,
),
image_file = SimpleNamespace(
VRCT_LOGO = getImageFileFromUiUtils("vrct_logo_for_light_mode.png"),
VRCT_LOGO_MARK = getImageFileFromUiUtils("vrct_logo_mark_black.png"),
TRANSLATION_ICON = getImageFileFromUiUtils("translation_icon_white.png"),
TRANSLATION_ICON_DISABLED = getImageFileFromUiUtils("translation_icon_disabled.png"),
MIC_ICON = getImageFileFromUiUtils("mic_icon_white.png"),
MIC_ICON_DISABLED = getImageFileFromUiUtils("mic_icon_disabled.png"),
HEADPHONES_ICON = getImageFileFromUiUtils("headphones_icon_white.png"),
HEADPHONES_ICON_DISABLED = getImageFileFromUiUtils("headphones_icon_disabled.png"),
FOREGROUND_ICON = getImageFileFromUiUtils("foreground_icon_white.png"),
FOREGROUND_ICON_DISABLED = getImageFileFromUiUtils("foreground_icon_disabled.png"),
NARROW_ARROW_DOWN = getImageFileFromUiUtils("narrow_arrow_down.png"),
CONFIGURATION_ICON = getImageFileFromUiUtils("configuration_icon_white.png"),
CONFIGURATION_ICON_DISABLED = getImageFileFromUiUtils("configuration_icon_disabled.png"),
ARROW_LEFT = getImageFileFromUiUtils("arrow_left_white.png"),
ARROW_LEFT_DISABLED = getImageFileFromUiUtils("arrow_left_disabled.png"),
HELP_ICON = getImageFileFromUiUtils("help_icon_white.png"),
),
)
return theme_settings

View File

@@ -217,6 +217,10 @@ class UiScalingManager():
self.config_window.SB__DESC_TOP_PADY = self._calculateUiSize(2)
self.config_window.BUTTONS_CORNER_RADIUS = self._calculateUiSize(6)
# self.config_window.BUTTONS_IPADX = self._calculateUiSize(10)
# self.config_window.BUTTONS_IPADY = self._calculateUiSize(6)
self.config_window.SB__ERROR_MESSAGE_IPADX = (self._calculateUiSize(10), self._calculateUiSize(10))
self.config_window.SB__ERROR_MESSAGE_IPADY = (self._calculateUiSize(6), self._calculateUiSize(6))
self.config_window.SB__ERROR_MESSAGE_FONT_SIZE = self._calculateUiSize(14)
@@ -276,6 +280,28 @@ class UiScalingManager():
self.config_window.SB__ARROW_SWITCH_BUTTON_IPADXY = self._calculateUiSize(16)
self.config_window.SB__ARROW_SWITCH_BUTTON_ICON_SIZE = self._calculateUiSize(24)
self.config_window.SB__ARROW_SWITCH_DESC_FONT_SIZE = self._calculateUiSize(16)
self.config_window.SB__ARROW_SWITCH_LEFT_PADX = (self._calculateUiSize(20), 0)
self.config_window.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_IPADX = self._calculateUiSize(16)
self.config_window.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_IPADY = self._calculateUiSize(6)
self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_CORNER_RADIUS = self._calculateUiSize(2)
self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_LEFT_PADX = (0, self._calculateUiSize(4))
self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_BOTTOM_PADY = (0, self._calculateUiSize(4))
self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_FONT_SIZE = self._calculateUiSize(14)
self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADX = (self._calculateUiSize(8), 0)
self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_TEXT_IPADY = self._calculateUiSize(6)
self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_IMG_SIZE = self._calculateUiSize(14)
self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_IPADXY = self._calculateUiSize(6)
self.config_window.ADD_AND_DELETE_ABLE_LIST__VALUES_ACTION_BUTTON_PADX = (self._calculateUiSize(6), self._calculateUiSize(8))
self.config_window.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_LEFT_PADX = (self._calculateUiSize(20), 0)
self.config_window.ADD_AND_DELETE_ABLE_LIST__ADD_BUTTON_FONT_SIZE = self._calculateUiSize(14)
def _calculateUiSize(self, default_size, is_allowed_odd:bool=False, is_zero_allowed:bool=False):
size = calculateUiSize(default_size, self.SCALING_FLOAT, is_allowed_odd, is_zero_allowed)
return size

View File

@@ -1,3 +1,2 @@
from .ColorThemeManager import ColorThemeManager
from .ImageFileManager import ImageFileManager
from .UiScalingManager import UiScalingManager