[Update] テキストボックスのフォントサイズを、UI全体のサイズとは別でユーザーが変えられるように。
(UI size, scalingを基準とした倍率)
This commit is contained in:
12
config.py
12
config.py
@@ -225,6 +225,17 @@ class Config:
|
|||||||
self._UI_SCALING = value
|
self._UI_SCALING = value
|
||||||
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
|
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
|
||||||
|
|
||||||
|
@property
|
||||||
|
@json_serializable('TEXTBOX_UI_SCALING')
|
||||||
|
def TEXTBOX_UI_SCALING(self):
|
||||||
|
return self._TEXTBOX_UI_SCALING
|
||||||
|
|
||||||
|
@TEXTBOX_UI_SCALING.setter
|
||||||
|
def TEXTBOX_UI_SCALING(self, value):
|
||||||
|
if type(value) is int and 50 <= value <= 200:
|
||||||
|
self._TEXTBOX_UI_SCALING = value
|
||||||
|
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@json_serializable('FONT_FAMILY')
|
@json_serializable('FONT_FAMILY')
|
||||||
def FONT_FAMILY(self):
|
def FONT_FAMILY(self):
|
||||||
@@ -546,6 +557,7 @@ class Config:
|
|||||||
self._TRANSPARENCY = 100
|
self._TRANSPARENCY = 100
|
||||||
self._APPEARANCE_THEME = "System"
|
self._APPEARANCE_THEME = "System"
|
||||||
self._UI_SCALING = "100%"
|
self._UI_SCALING = "100%"
|
||||||
|
self._TEXTBOX_UI_SCALING = 100
|
||||||
self._FONT_FAMILY = "Yu Gothic UI"
|
self._FONT_FAMILY = "Yu Gothic UI"
|
||||||
self._UI_LANGUAGE = "en"
|
self._UI_LANGUAGE = "en"
|
||||||
self._CHOICE_MIC_HOST = getDefaultInputDevice()["host"]["name"]
|
self._CHOICE_MIC_HOST = getDefaultInputDevice()["host"]["name"]
|
||||||
|
|||||||
@@ -352,6 +352,11 @@ def callbackSetUiScaling(value):
|
|||||||
print("callbackSetUiScaling_new_scaling_float", new_scaling_float)
|
print("callbackSetUiScaling_new_scaling_float", new_scaling_float)
|
||||||
view.showRestartButtonIfRequired()
|
view.showRestartButtonIfRequired()
|
||||||
|
|
||||||
|
def callbackSetTextboxUiScaling(value):
|
||||||
|
print("callbackSetTextboxUiScaling", int(value))
|
||||||
|
config.TEXTBOX_UI_SCALING = int(value)
|
||||||
|
view.setMainWindowTextboxUiSize(config.TEXTBOX_UI_SCALING/100)
|
||||||
|
|
||||||
def callbackSetFontFamily(value):
|
def callbackSetFontFamily(value):
|
||||||
print("callbackSetFontFamily", value)
|
print("callbackSetFontFamily", value)
|
||||||
config.FONT_FAMILY = value
|
config.FONT_FAMILY = value
|
||||||
@@ -694,6 +699,7 @@ def createMainWindow():
|
|||||||
"callback_set_transparency": callbackSetTransparency,
|
"callback_set_transparency": callbackSetTransparency,
|
||||||
"callback_set_appearance": callbackSetAppearance,
|
"callback_set_appearance": callbackSetAppearance,
|
||||||
"callback_set_ui_scaling": callbackSetUiScaling,
|
"callback_set_ui_scaling": callbackSetUiScaling,
|
||||||
|
"callback_set_textbox_ui_scaling": callbackSetTextboxUiScaling,
|
||||||
"callback_set_font_family": callbackSetFontFamily,
|
"callback_set_font_family": callbackSetFontFamily,
|
||||||
"callback_set_ui_language": callbackSetUiLanguage,
|
"callback_set_ui_language": callbackSetUiLanguage,
|
||||||
|
|
||||||
|
|||||||
@@ -95,6 +95,10 @@ config_window:
|
|||||||
ui_size:
|
ui_size:
|
||||||
label: UI Size
|
label: UI Size
|
||||||
|
|
||||||
|
textbox_ui_size:
|
||||||
|
label: Text Box Font Size
|
||||||
|
desc: You can adjust the font size used in the logs relative to the UI size.
|
||||||
|
|
||||||
font_family:
|
font_family:
|
||||||
label: Font Family
|
label: Font Family
|
||||||
|
|
||||||
|
|||||||
@@ -95,6 +95,10 @@ config_window:
|
|||||||
ui_size:
|
ui_size:
|
||||||
label: UIサイズ
|
label: UIサイズ
|
||||||
|
|
||||||
|
textbox_ui_size:
|
||||||
|
label: テキストボックス フォントサイズ
|
||||||
|
desc: ログに表示されるフォントのサイズを、UIサイズを基準にして倍率を変えられます。
|
||||||
|
|
||||||
font_family:
|
font_family:
|
||||||
label: 使用フォント
|
label: 使用フォント
|
||||||
|
|
||||||
|
|||||||
14
view.py
14
view.py
@@ -211,6 +211,14 @@ class View():
|
|||||||
CALLBACK_SET_UI_SCALING=None,
|
CALLBACK_SET_UI_SCALING=None,
|
||||||
VAR_UI_SCALING=StringVar(value=config.UI_SCALING),
|
VAR_UI_SCALING=StringVar(value=config.UI_SCALING),
|
||||||
|
|
||||||
|
VAR_LABEL_TEXTBOX_UI_SCALING=StringVar(value=i18n.t("config_window.textbox_ui_size.label")),
|
||||||
|
VAR_DESC_TEXTBOX_UI_SCALING=StringVar(value=i18n.t("config_window.textbox_ui_size.desc")),
|
||||||
|
SLIDER_RANGE_TEXTBOX_UI_SCALING=(50, 200),
|
||||||
|
CALLBACK_SET_TEXTBOX_UI_SCALING=None,
|
||||||
|
VAR_TEXTBOX_UI_SCALING=IntVar(value=config.TEXTBOX_UI_SCALING),
|
||||||
|
CALLBACK_BUTTON_PRESS_TEXTBOX_UI_SCALING=self._closeTheCoverOfMainWindow,
|
||||||
|
CALLBACK_BUTTON_RELEASE_TEXTBOX_UI_SCALING=self._openTheCoverOfMainWindow,
|
||||||
|
|
||||||
VAR_LABEL_FONT_FAMILY=StringVar(value=i18n.t("config_window.font_family.label")),
|
VAR_LABEL_FONT_FAMILY=StringVar(value=i18n.t("config_window.font_family.label")),
|
||||||
VAR_DESC_FONT_FAMILY=None,
|
VAR_DESC_FONT_FAMILY=None,
|
||||||
LIST_FONT_FAMILY=self.getAvailableFonts(),
|
LIST_FONT_FAMILY=self.getAvailableFonts(),
|
||||||
@@ -432,6 +440,7 @@ class View():
|
|||||||
|
|
||||||
self.view_variable.CALLBACK_SET_APPEARANCE = config_window_registers.get("callback_set_appearance", None)
|
self.view_variable.CALLBACK_SET_APPEARANCE = config_window_registers.get("callback_set_appearance", None)
|
||||||
self.view_variable.CALLBACK_SET_UI_SCALING = config_window_registers.get("callback_set_ui_scaling", None)
|
self.view_variable.CALLBACK_SET_UI_SCALING = config_window_registers.get("callback_set_ui_scaling", None)
|
||||||
|
self.view_variable.CALLBACK_SET_TEXTBOX_UI_SCALING = config_window_registers.get("callback_set_textbox_ui_scaling", None)
|
||||||
self.view_variable.CALLBACK_SET_FONT_FAMILY = config_window_registers.get("callback_set_font_family", None)
|
self.view_variable.CALLBACK_SET_FONT_FAMILY = config_window_registers.get("callback_set_font_family", None)
|
||||||
self.view_variable.CALLBACK_SET_UI_LANGUAGE = config_window_registers.get("callback_set_ui_language", None)
|
self.view_variable.CALLBACK_SET_UI_LANGUAGE = config_window_registers.get("callback_set_ui_language", None)
|
||||||
|
|
||||||
@@ -517,7 +526,7 @@ class View():
|
|||||||
|
|
||||||
|
|
||||||
# Insert sample conversation for testing.
|
# Insert sample conversation for testing.
|
||||||
self._insertSampleConversationToTextbox()
|
# self._insertSampleConversationToTextbox()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -776,6 +785,9 @@ class View():
|
|||||||
def setMainWindowTransparency(transparency:float):
|
def setMainWindowTransparency(transparency:float):
|
||||||
vrct_gui.wm_attributes("-alpha", transparency)
|
vrct_gui.wm_attributes("-alpha", transparency)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def setMainWindowTextboxUiSize(custom_font_size_scale:float):
|
||||||
|
vrct_gui.print_to_textbox.setTagsSettings(custom_font_size_scale=custom_font_size_scale)
|
||||||
|
|
||||||
# Function
|
# Function
|
||||||
def _adjustUiSizeAndRestart(self):
|
def _adjustUiSizeAndRestart(self):
|
||||||
|
|||||||
@@ -7,10 +7,12 @@ class _PrintToTextbox():
|
|||||||
self,
|
self,
|
||||||
vrct_gui,
|
vrct_gui,
|
||||||
settings,
|
settings,
|
||||||
|
init_scaling:float,
|
||||||
):
|
):
|
||||||
|
|
||||||
self.vrct_gui = vrct_gui
|
self.vrct_gui = vrct_gui
|
||||||
self.settings = settings
|
self.settings = settings
|
||||||
|
self.init_scaling = init_scaling
|
||||||
|
|
||||||
self._DEFAULT_TEXTBOX_FIRST_INSERT_SPACING = self.settings.uism.TEXTBOX_FIRST_INSERT_SPACING
|
self._DEFAULT_TEXTBOX_FIRST_INSERT_SPACING = self.settings.uism.TEXTBOX_FIRST_INSERT_SPACING
|
||||||
self._DEFAULT_TEXTBOX_FONT_SIZE__LABEL = self.settings.uism.TEXTBOX_FONT_SIZE__LABEL
|
self._DEFAULT_TEXTBOX_FONT_SIZE__LABEL = self.settings.uism.TEXTBOX_FONT_SIZE__LABEL
|
||||||
@@ -32,7 +34,7 @@ class _PrintToTextbox():
|
|||||||
self.all_textbox_widgets = [self.vrct_gui.textbox_all, self.vrct_gui.textbox_system, self.vrct_gui.textbox_sent, self.vrct_gui.textbox_received]
|
self.all_textbox_widgets = [self.vrct_gui.textbox_all, self.vrct_gui.textbox_system, self.vrct_gui.textbox_sent, self.vrct_gui.textbox_received]
|
||||||
|
|
||||||
|
|
||||||
self.setTagsSettings()
|
self.setTagsSettings(self.init_scaling)
|
||||||
|
|
||||||
|
|
||||||
def printToTextbox(self, target_type, original_message=None, translated_message=None, to_print_to_textbox_all:bool=True):
|
def printToTextbox(self, target_type, original_message=None, translated_message=None, to_print_to_textbox_all:bool=True):
|
||||||
@@ -63,6 +65,8 @@ class _PrintToTextbox():
|
|||||||
|
|
||||||
for each_textbox_widget in self.all_textbox_widgets:
|
for each_textbox_widget in self.all_textbox_widgets:
|
||||||
self._setTagsSettings(target_textbox=each_textbox_widget)
|
self._setTagsSettings(target_textbox=each_textbox_widget)
|
||||||
|
each_textbox_widget.see("end")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def _setTagsSettings(self, target_textbox):
|
def _setTagsSettings(self, target_textbox):
|
||||||
|
|||||||
@@ -18,6 +18,9 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings, vi
|
|||||||
def optionmenu_ui_scaling_callback(value):
|
def optionmenu_ui_scaling_callback(value):
|
||||||
callFunctionIfCallable(view_variable.CALLBACK_SET_UI_SCALING, value)
|
callFunctionIfCallable(view_variable.CALLBACK_SET_UI_SCALING, value)
|
||||||
|
|
||||||
|
def slider_text_box_ui_scaling_callback(value):
|
||||||
|
callFunctionIfCallable(view_variable.CALLBACK_SET_TEXTBOX_UI_SCALING, value)
|
||||||
|
|
||||||
def optionmenu_font_family_callback(value):
|
def optionmenu_font_family_callback(value):
|
||||||
callFunctionIfCallable(view_variable.CALLBACK_SET_FONT_FAMILY, value)
|
callFunctionIfCallable(view_variable.CALLBACK_SET_FONT_FAMILY, value)
|
||||||
|
|
||||||
@@ -64,6 +67,19 @@ def createSettingBox_Appearance(setting_box_wrapper, config_window, settings, vi
|
|||||||
config_window.sb__ui_scaling.grid(row=row)
|
config_window.sb__ui_scaling.grid(row=row)
|
||||||
row+=1
|
row+=1
|
||||||
|
|
||||||
|
config_window.sb__textbox_uis_scaling = createSettingBoxSlider(
|
||||||
|
for_var_label_text=view_variable.VAR_LABEL_TEXTBOX_UI_SCALING,
|
||||||
|
for_var_desc_text=view_variable.VAR_DESC_TEXTBOX_UI_SCALING,
|
||||||
|
slider_attr_name="sb__slider_transparency",
|
||||||
|
slider_range=view_variable.SLIDER_RANGE_TEXTBOX_UI_SCALING,
|
||||||
|
command=lambda value: slider_text_box_ui_scaling_callback(value),
|
||||||
|
variable=view_variable.VAR_TEXTBOX_UI_SCALING,
|
||||||
|
slider_bind__ButtonPress=view_variable.CALLBACK_BUTTON_PRESS_TEXTBOX_UI_SCALING,
|
||||||
|
slider_bind__ButtonRelease=view_variable.CALLBACK_BUTTON_RELEASE_TEXTBOX_UI_SCALING,
|
||||||
|
)
|
||||||
|
config_window.sb__textbox_uis_scaling.grid(row=row)
|
||||||
|
row+=1
|
||||||
|
|
||||||
|
|
||||||
config_window.sb__font_family = createSettingBoxDropdownMenu(
|
config_window.sb__font_family = createSettingBoxDropdownMenu(
|
||||||
for_var_label_text=view_variable.VAR_LABEL_FONT_FAMILY,
|
for_var_label_text=view_variable.VAR_LABEL_FONT_FAMILY,
|
||||||
|
|||||||
@@ -136,6 +136,7 @@ class VRCT_GUI(CTk):
|
|||||||
self.print_to_textbox = _PrintToTextbox(
|
self.print_to_textbox = _PrintToTextbox(
|
||||||
vrct_gui=self,
|
vrct_gui=self,
|
||||||
settings=self.settings.main,
|
settings=self.settings.main,
|
||||||
|
init_scaling=(self._view_variable.VAR_TEXTBOX_UI_SCALING.get()/100)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user