# 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 from studio import analytics #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, "darker_parts") UI_elements.roundrect(layer, win, 50, 50, win.current["w"] - 100, win.current["h"] - 80, 30) # Little verion thing in the bottom corner UI_color.set(layer, win, "testing_banner") layer.set_font_size(15) layer.move_to(win.current["w"]-80, win.current["h"] - 7) layer.show_text(str(win.version)) # Hude analytics button on the top def do(): print("Analytics") UI_elements.roundrect(layer, win, 5, 5, win.current["w"]-10, 40, 10, do, "analytics", talk.text("analytics_tooltip"), url="story_editor") # Progressbar UI_color.set(layer, win, "progress_background") UI_elements.roundrect(layer, win, 55, 15, win.current["w"]/3*2-10, 20, 10) timepassed = 0.0 projectdone = 0.0 try: timepassed = win.analytics["timepassed"] projectdone = win.analytics["fraction"] except: pass # Timepassed UI_color.set(layer, win, "progress_time") UI_elements.roundrect(layer, win, 55, 15, (win.current["w"]/3*2-10)*timepassed, 20, 10) # Project Done UI_color.set(layer, win, "progress_active") UI_elements.roundrect(layer, win, 55, 15, (win.current["w"]/3*2-10)*projectdone, 20, 10) # Separator UI_color.set(layer, win, "node_background") layer.move_to(win.current["w"]/3*2+55, 5) layer.line_to(win.current["w"]/3*2+55, 45) layer.stroke() # Schedule UI_elements.image(layer, win, "settings/themes/"\ +win.settings["Theme"]+"/icons/schedule.png", win.current["w"]/3*2+60, 5, 40, 40) # Temporarely: UI_color.set(layer, win, "text_normal") layer.set_font_size(20) layer.move_to(win.current["w"]/3*2+120, 25) layer.show_text("The Next Task") layer.set_font_size(12) layer.move_to(win.current["w"]/3*2+130+len("The Next Task")*12, 25) layer.show_text("from: AllTasks > Subtasks > This") layer.set_font_size(12) layer.move_to(win.current["w"]/3*2+120, 40) layer.show_text("Character: Moria") ###### LEFT PANNEL ####### # New Scene def do(): print("New Scene") UI_elements.roundrect(layer, win, 5, 105, 40, 40, 10, do, "node", talk.text("new_scene_tooltip"), url="story_editor") # Link Asset def do(): print("Link Asset") UI_elements.roundrect(layer, win, 5, 155, 40, 40, 10, do, "obj_link", talk.text("link_asset_tooltip"), url="story_editor") # Link File def do(): print("Link File") UI_elements.roundrect(layer, win, 5, 205, 40, 40, 10, do, "file_link", talk.text("link_file_tooltip"), url="story_editor") # Event def do(): print("Event") UI_elements.roundrect(layer, win, 5, 255, 40, 40, 10, do, "event", talk.text("event_tooltip"), url="story_editor") # Marker def do(): print("Marker") UI_elements.roundrect(layer, win, 5, 305, 40, 40, 10, do, "pin", talk.text("marker_tooltip"), url="story_editor") # Renders def do(): print("Renders") UI_elements.roundrect(layer, win, 5, 405, 40, 40, 10, do, "render", talk.text("render_lists_tooltip"), url="story_editor") # Edit Video def do(): print("Edit Video") UI_elements.roundrect(layer, win, 5, 455, 40, 40, 10, do, "vse", talk.text("vse_tooltip"), url="story_editor") # Bottom # Multiuser def do(): win.url = "multiuser_layer" UI_elements.roundrect(layer, win, 5, win.current["h"]-95, 40, 40, 10, do, "multiuser", talk.text("multiuser_tooltip"), url="story_editor") # Settings def do(): win.url = "settings_layer" UI_elements.roundrect(layer, win, 5, win.current["h"]-45, 40, 40, 10, do, "settings", talk.text("Settings"), url="story_editor") ###### RIGHT PANNEL ####### # Characters def do(): print("Characters") UI_elements.roundrect(layer, win, win.current["w"]-45, 105, 40, 40, 10, do, "chr", talk.text("chr"), url="story_editor") # Vehicles def do(): print("Vehicles") UI_elements.roundrect(layer, win, win.current["w"]-45, 155, 40, 40, 10, do, "veh", talk.text("veh"), url="story_editor") # Locations def do(): print("Locations") UI_elements.roundrect(layer, win, win.current["w"]-45, 205, 40, 40, 10, do, "loc", talk.text("loc"), url="story_editor") # Other (obj) def do(): print("Other (obj)") UI_elements.roundrect(layer, win, win.current["w"]-45, 255, 40, 40, 10, do, "obj", talk.text("obj"), url="story_editor") # Sounds / Music def do(): print("Sounds / Music") UI_elements.roundrect(layer, win, win.current["w"]-45, 355, 40, 40, 10, do, "mus", talk.text("mus"), url="story_editor") ####### NODES ####### # Clipping so it wont draw beyon the frame UI_elements.roundrect(layer, win, 50, 50, win.current["w"] - 100, win.current["h"] - 80, 30, fill=False) layer.clip() # Background Image if os.path.exists(win.project+"/py_data/banner.png"): UI_elements.image(layer, win, win.project+"/py_data/banner.png", 50, 50, win.current["w"] - 100, win.current["h"] - 80) else: UI_elements.image(layer, win, "icon.png", 50, 50, win.current["w"] - 100, win.current["h"] - 80) UI_color.set(layer, win, "node_background") layer.rectangle(0,0,win.current["w"], win.current["h"]) layer.fill() # Setting up scroll for Projects if "pm_scroll" not in win.current: win.current["pm_scroll"] = 0.0 # Setting up tilling tileY = 0 tileX = 0 UI_elements.scroll_area(layer, win, "pm_main", 50, 5, win.current["w"] - 55, win.current["h"] - 30, tileY+340, bar=True, mmb=True, url="project_manager" ) return surface