410 lines
8.1 KiB
Python
410 lines
8.1 KiB
Python
# 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
|
|
|