mirror of
https://github.com/RedDeadDepresso/KKAFIO.git
synced 2025-12-22 17:30:01 +00:00
49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
import customtkinter
|
|
import platform
|
|
import customtkinter
|
|
import ctypes
|
|
|
|
from gui.frames.sidebar import Sidebar
|
|
from gui.frames.logger import LoggerTextBox
|
|
from gui.util.config import Config
|
|
from gui.util.linker import Linker
|
|
|
|
class App(customtkinter.CTk):
|
|
def __init__(self):
|
|
super().__init__("#18173C")
|
|
self.configure_window()
|
|
linker = Linker(self)
|
|
config = Config(linker, "config.json")
|
|
sidebar = Sidebar(self, linker, config, fg_color="#25224F")
|
|
sidebar.grid(row=0, column=0, sticky="nsw")
|
|
logger = LoggerTextBox(self, linker, config, fg_color="#262250")
|
|
logger.grid(row=0, column=2, pady=20, sticky="nsew")
|
|
config.load_config()
|
|
|
|
def configure_window(self):
|
|
self.title("KAFIO")
|
|
self.geometry(f"{1500}x{850}")
|
|
self.iconbitmap('gui/icons/karin.ico')
|
|
"""
|
|
solution to Settings Frame and Logger Frame widths not being
|
|
consistent between different windows scaling factors
|
|
"""
|
|
self.scaling_factor = self.get_scaling_factor()
|
|
self.grid_columnconfigure(0, weight=0)
|
|
self.grid_columnconfigure(1, weight=0, minsize=650*self.scaling_factor)
|
|
self.grid_columnconfigure(2, weight=1, minsize=506*self.scaling_factor)
|
|
self.grid_rowconfigure(0, weight=1)
|
|
|
|
def get_scaling_factor(self):
|
|
system = platform.system()
|
|
|
|
if system == 'Windows':
|
|
user32 = ctypes.windll.user32
|
|
return user32.GetDpiForSystem() / 96.0
|
|
|
|
return 1.0 # Default scaling factor for unknown or unsupported systems
|
|
|
|
if __name__ == "__main__":
|
|
app = App()
|
|
app.mainloop()
|