# THIS FILE IS A PART OF VCStudio # PYTHON 3 import os # GTK module ( Graphical interface import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GLib from gi.repository import Gdk import cairo # Own modules from settings import settings from settings import talk from project_manager import pm_project #UI modules from UI import UI_elements from UI import UI_color def layer(win): # Making the layer surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, win.current['w'], win.current['h']) layer = cairo.Context(surface) #text setting layer.select_font_face("Monospace", cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_NORMAL) UI_color.set(layer, win, "dark_overdrop") layer.rectangle( 0, 0, win.current["w"], win.current["h"], ) layer.fill() UI_color.set(layer, win, "node_background") UI_elements.roundrect(layer, win, win.current["w"]/2-250, 100, 500, win.current["h"]-200, 10) # Exit button def do(): win.url = "project_manager" win.textactive = "" UI_elements.roundrect(layer, win, win.current["w"]/2+210, win.current["h"]-140, 40, 40, 10, button=do, icon="cancel", tip=talk.text("cancel")) # Clipping everything UI_elements.roundrect(layer, win, win.current["w"]/2-250, 100, 500, win.current["h"]-260, 10, fill=False) layer.clip() clip = [ win.current["w"]/2-250, 100, 500, win.current["h"]-260] # Setting up the scroll if "pm_settings" not in win.scroll: win.scroll["pm_settings"] = 0 current_Y = 0 # The max scroll value # Username UI_elements.image(layer, win, "settings/themes/"\ +win.settings["Theme"]+"/icons/user.png", win.current["w"]/2-240, 110 + current_Y + win.scroll["pm_settings"], 40, 40) UI_elements.text(layer, win, "Username_setting", win.current["w"]/2-190, 110 + current_Y + win.scroll["pm_settings"], 420, 40, set_text=win.settings["Username"], tip=talk.text("username")) if win.text["Username_setting"]["text"] != win.settings["Username"]: def do(): win.settings["Username"] = win.text["Username_setting"]["text"] settings.write("Username", win.settings["Username"]) UI_elements.roundrect(layer, win, win.current["w"]/2-240+430, 110 + current_Y + win.scroll["pm_settings"], 40, 40, 10, button=do, icon="ok", tip=talk.text("checked")) current_Y += 50 # Preparing lists. if "settings_lists" not in win.current: win.current["settings_lists"] = {} win.current["settings_lists"]["languages"] = settings.list_languages() win.current["settings_lists"]["languages_open"] = False # Languages def do(): win.current["settings_lists"]["languages_open"] = \ not win.current["settings_lists"]["languages_open"] UI_elements.roundrect(layer, win, win.current["w"]/2-240, 110 + current_Y + win.scroll["pm_settings"], 450, 40, 10, button=do, icon="font", tip=talk.text("change_language")) UI_color.set(layer, win, "text_normal") layer.set_font_size(20) layer.move_to(win.current["w"]/2-180, current_Y + win.scroll["pm_settings"] + 135) layer.show_text(win.settings["Language"]) current_Y += 50 if win.current["settings_lists"]["languages_open"]: for lang in win.current["settings_lists"]["languages"]: if lang != win.settings["Language"]: UI_color.set(layer, win, "button_active") layer.move_to(win.current["w"]/2-227, 102 + current_Y + win.scroll["pm_settings"]) layer.line_to(win.current["w"]/2-227, 152 + current_Y + win.scroll["pm_settings"]) layer.stroke() def do(): win.settings["Language"] = lang settings.write("Language", lang) win.current["settings_lists"]["languages_open"] = False UI_elements.roundrect(layer, win, win.current["w"]/2-220, 110 + current_Y + win.scroll["pm_settings"], 430, 40, 10, button=do, icon="font", tip=talk.text("set_language")+lang) UI_color.set(layer, win, "text_normal") layer.set_font_size(20) layer.move_to(win.current["w"]/2-150, current_Y + win.scroll["pm_settings"] + 135) layer.show_text(lang) current_Y += 50 # BLUR blur_ok = "unchecked" if win.settings["Blur"]: blur_ok = "checked" def do(): win.settings["Blur"] = not win.settings["Blur"] settings.write("Blur", win.settings["Blur"]) UI_elements.roundrect(layer, win, win.current["w"]/2-240, 110 + current_Y + win.scroll["pm_settings"], 450, 40, 10, button=do, icon=blur_ok, tip=talk.text("Blur")) UI_color.set(layer, win, "text_normal") layer.set_font_size(20) layer.move_to(win.current["w"]/2-180, current_Y + win.scroll["pm_settings"] + 135) layer.show_text(talk.text("Blur")) current_Y += 50 if win.settings["Blur"]: ablur_ok = "unchecked" if win.settings["Auto_De-Blur"]: ablur_ok = "checked" def do(): win.settings["Auto_De-Blur"] = not win.settings["Auto_De-Blur"] settings.write("Auto_De-Blur", win.settings["Auto_De-Blur"]) UI_elements.roundrect(layer, win, win.current["w"]/2-240, 110 + current_Y + win.scroll["pm_settings"], 450, 40, 10, button=do, icon=ablur_ok, tip=talk.text("Auto_De-Blur")) UI_color.set(layer, win, "text_normal") layer.set_font_size(20) layer.move_to(win.current["w"]/2-180, current_Y + win.scroll["pm_settings"] + 135) layer.show_text(talk.text("Auto_De-Blur")) current_Y += 50 UI_elements.scroll_area(layer, win, "pm_settings", int(win.current["w"]/2-250), 100, 500, win.current["h"]-260, current_Y, bar=True, mmb=True, url="settings_layer" ) return surface