401 lines
12 KiB
Python
401 lines
12 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
|
|
|
|
#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()
|
|
|
|
# So it's going to be like a little window in the center of the VCStudio
|
|
# with a simple UI. Probably like 2 things. Folder and a projectname.
|
|
|
|
UI_color.set(layer, win, "node_background")
|
|
UI_elements.roundrect(layer, win,
|
|
100,
|
|
100,
|
|
win.current["w"]-200,
|
|
win.current["h"]-200,
|
|
10)
|
|
|
|
# Exit button
|
|
def do():
|
|
win.url = "project_manager"
|
|
win.textactive = ""
|
|
|
|
|
|
UI_elements.roundrect(layer, win,
|
|
win.current["w"]-140,
|
|
win.current["h"]-140,
|
|
40,
|
|
40,
|
|
10,
|
|
button=do,
|
|
icon="cancel",
|
|
tip=talk.text("cancel"))
|
|
|
|
# Clipping everything
|
|
UI_elements.roundrect(layer, win,
|
|
100,
|
|
110,
|
|
win.current["w"]-200,
|
|
win.current["h"]-260,
|
|
10,
|
|
fill=False)
|
|
layer.clip()
|
|
|
|
# Setting up the scroll
|
|
if "pm_help" not in win.scroll:
|
|
win.scroll["pm_help"] = 0
|
|
|
|
current_Y = 1 # The max scroll value
|
|
|
|
# VCStudio icon.
|
|
UI_elements.image(layer, win, "tinyicon.png", win.current["w"]/2-205,
|
|
current_Y+win.scroll["pm_help"]+120 )
|
|
|
|
UI_color.set(layer, win, "text_normal")
|
|
layer.move_to(win.current["w"]/2-205+148, current_Y+win.scroll["pm_help"]+200)
|
|
layer.set_font_size(50)
|
|
layer.show_text("VCStudio")
|
|
|
|
# Version
|
|
layer.move_to(win.current["w"]/2-205+148, current_Y+win.scroll["pm_help"]+230)
|
|
layer.set_font_size(20)
|
|
layer.show_text(str(win.version))
|
|
|
|
current_Y = current_Y+200
|
|
|
|
# Here I want to put my own credit. And credits of anybody else who will
|
|
# maybe help in future. For now my own credit.
|
|
|
|
UI_elements.image(layer, win, "project_manager/help_images/Blender_Dumbass_Avatar.png", 140,
|
|
current_Y+win.scroll["pm_help"]+120 )
|
|
|
|
UI_color.set(layer, win, "text_normal")
|
|
layer.move_to(280, current_Y+win.scroll["pm_help"]+150)
|
|
layer.set_font_size(20)
|
|
layer.show_text(talk.text("Developer")+":")
|
|
|
|
layer.move_to(300, current_Y+win.scroll["pm_help"]+190)
|
|
layer.set_font_size(30)
|
|
layer.show_text("J.Y.Amihud")
|
|
|
|
layer.move_to(280, current_Y+win.scroll["pm_help"]+230)
|
|
layer.set_font_size(25)
|
|
layer.show_text("(Blender Dumbass)")
|
|
|
|
# Links to my accounts
|
|
|
|
# Originally I wanted YouTube to be on the list as well. As you may know
|
|
# I have a little YouTube channel called "Blender Dumbass". But I dislike
|
|
# Youtube. And I don't want to promote it.
|
|
|
|
# I'm concidering to remove Patreon and Twitter as well. Let me thing about
|
|
# it.
|
|
|
|
|
|
links = {
|
|
"NotABug":"https://notabug.org/jyamihud/VCStudio",
|
|
"Devtalk":"https://devtalk.blender.org/u/blenderdumbass",
|
|
#"GitHub":"https://github.com/JYamihud",
|
|
"Telegram":"https://t.me/blenderorganizer",
|
|
#"Telegram 2":"https://t.me/blenderdumbasschat",
|
|
#"Telegram 3":"https://t.me/moriasrace",
|
|
#"Patreon":"https://www.patreon.com/blenderdumbass",
|
|
#"Twitter":"https://twitter.com/blenderdumbass",
|
|
"Bl-chat":"https://blender.chat/channel/blenderorganizer_vcstudio",
|
|
"LBRY":"https://open.lbry.com/@blender-organizer:5?r=2caeB3mkHkXkQXAjxGXoKNPifSv91N58",
|
|
"Music":"https://open.lbry.com/@J.Y.AmihudMusic:c?r=GLhXoQ3zcpvm6rzd9Z6dAyasTpmk1FUY",
|
|
#"Movies":"https://open.lbry.com/@VCS:7?r=GLhXoQ3zcpvm6rzd9Z6dAyasTpmk1FUY"
|
|
}
|
|
|
|
tileY = 50
|
|
tileX = 0
|
|
for link in links:
|
|
|
|
if tileY < 130:
|
|
posX = 450 + 100
|
|
else:
|
|
posX = 128
|
|
|
|
def do():
|
|
os.system("xdg-open "+links[link])
|
|
UI_elements.roundrect(layer, win,
|
|
tileX+posX,
|
|
current_Y+100+tileY+win.scroll["pm_help"],
|
|
170,
|
|
40,
|
|
10,
|
|
button=do,
|
|
icon="internet",
|
|
tip=links[link],
|
|
clip=[
|
|
100,
|
|
110,
|
|
win.current["w"]-200,
|
|
win.current["h"]-260,
|
|
])
|
|
|
|
UI_color.set(layer, win, "text_normal")
|
|
layer.move_to(tileX+posX+50, current_Y+win.scroll["pm_help"]+100+tileY+30)
|
|
layer.set_font_size(20)
|
|
layer.show_text(link)
|
|
|
|
tileX += 170
|
|
if tileX+posX > win.current["w"]-300:
|
|
tileX = 0
|
|
tileY += 50
|
|
|
|
if tileY > 130:
|
|
current_Y += tileY
|
|
else:
|
|
current_Y += 130
|
|
|
|
current_Y = current_Y+200
|
|
|
|
# Secondary credits / thanks. Unrelated to this project.
|
|
|
|
|
|
UI_color.set(layer, win, "text_normal")
|
|
layer.move_to(120, current_Y+win.scroll["pm_help"])
|
|
layer.set_font_size(20)
|
|
layer.show_text(talk.text("help_indirect_credits"))
|
|
|
|
current_Y += 30
|
|
|
|
credits = {
|
|
"Richard Stallman":[
|
|
"project_manager/help_images/stallman.png",
|
|
"https://www.gnu.org/",
|
|
talk.text("help_stallman")
|
|
],
|
|
"Linus Torvalds":[
|
|
"project_manager/help_images/torvalds.png",
|
|
"https://www.linuxfoundation.org/",
|
|
talk.text("help_torvalds")
|
|
],
|
|
"Ton Roosendaal":[
|
|
"project_manager/help_images/roosendaal.png",
|
|
"https://www.blender.org/",
|
|
talk.text("help_roosendaal")
|
|
]
|
|
}
|
|
|
|
tileX = 150
|
|
for credit in credits:
|
|
UI_elements.image(layer, win, credits[credit][0], tileX,
|
|
current_Y+win.scroll["pm_help"] )
|
|
|
|
UI_color.set(layer, win, "text_normal")
|
|
layer.move_to(tileX, current_Y+win.scroll["pm_help"]+150)
|
|
layer.set_font_size(15)
|
|
layer.show_text(credit)
|
|
|
|
def do():
|
|
os.system("xdg-open "+credits[credit][1])
|
|
UI_elements.roundrect(layer, win,
|
|
tileX-20,
|
|
current_Y+win.scroll["pm_help"]-10,
|
|
170,
|
|
200,
|
|
10,
|
|
button=do,
|
|
fill=False,
|
|
tip=credits[credit][2],
|
|
clip=[
|
|
100,
|
|
110,
|
|
win.current["w"]-200,
|
|
win.current["h"]-260,
|
|
])
|
|
layer.stroke()
|
|
|
|
tileX += 250
|
|
if tileX > win.current["w"]-300:
|
|
current_Y += 250
|
|
tileX = 150
|
|
|
|
|
|
current_Y += 250
|
|
|
|
# Movies
|
|
|
|
|
|
movies = {
|
|
"I'm Not Even Human":[
|
|
"2018/05/01",
|
|
"Blender-Organizer 1.0 - 3.9",
|
|
"https://open.lbry.com/@VCS:7/Imnotevenhumanshortfilm:3?r=GLhXoQ3zcpvm6rzd9Z6dAyasTpmk1FUY",
|
|
"project_manager/help_images/Im_Not_Even_Human_Poster.png"
|
|
],
|
|
"The Package, The Car & The Time Is Running Out":[
|
|
"2018/11/06",
|
|
"Blender-Organizer 4.0 - 4.17",
|
|
"https://open.lbry.com/@VCS:7/ThePackageTheCarAndTheTimeIsRunningOut:3?r=GLhXoQ3zcpvm6rzd9Z6dAyasTpmk1FUY",
|
|
"project_manager/help_images/The_Package_The_Car_And_Time_Is_Running_Out_Poster.png"
|
|
],
|
|
"Moria's Race":[
|
|
talk.text("In_Production"),
|
|
"Blender-Organizer 4.18 - VCStudio "+str(win.version),
|
|
"https://t.me/moriasrace",
|
|
"project_manager/help_images/Morias_Race_Poster.png"
|
|
]
|
|
}
|
|
|
|
UI_color.set(layer, win, "text_normal")
|
|
layer.move_to(120, current_Y+win.scroll["pm_help"])
|
|
layer.set_font_size(20)
|
|
layer.show_text(talk.text("help_movies_done_title"))
|
|
|
|
current_Y = current_Y+20
|
|
|
|
tileX = 120
|
|
for movie in movies:
|
|
UI_elements.image(layer, win, movies[movie][3], tileX,
|
|
current_Y+win.scroll["pm_help"] , height=300, width=226)
|
|
|
|
def do():
|
|
os.system("xdg-open "+movies[movie][2])
|
|
UI_elements.roundrect(layer, win,
|
|
tileX,
|
|
current_Y+win.scroll["pm_help"],
|
|
226,
|
|
300,
|
|
10,
|
|
button=do,
|
|
fill=False,
|
|
tip=movie+"\n"+movies[movie][0]+"\n"+movies[movie][1],
|
|
clip=[
|
|
100,
|
|
110,
|
|
win.current["w"]-200,
|
|
win.current["h"]-260,
|
|
])
|
|
layer.stroke()
|
|
|
|
tileX += 300
|
|
if tileX > win.current["w"]-300:
|
|
tileX = 120
|
|
current_Y = current_Y+350
|
|
|
|
|
|
current_Y = current_Y+400
|
|
|
|
# Wiki
|
|
|
|
def do():
|
|
os.system("xdg-open https://notabug.org/jyamihud/VCStudio/wiki/_pages")
|
|
UI_elements.roundrect(layer, win,
|
|
110,
|
|
current_Y+win.scroll["pm_help"]-25,
|
|
win.current["w"]-250,
|
|
40,
|
|
10,
|
|
button=do,
|
|
icon="internet",
|
|
tip="https://notabug.org/jyamihud/VCStudio/wiki/_pages",
|
|
clip=[
|
|
100,
|
|
110,
|
|
win.current["w"]-200,
|
|
win.current["h"]-260,
|
|
])
|
|
|
|
UI_color.set(layer, win, "text_normal")
|
|
layer.move_to(160, current_Y+win.scroll["pm_help"])
|
|
layer.set_font_size(20)
|
|
layer.show_text(talk.text("help_read_wiki"))
|
|
|
|
current_Y += 60
|
|
|
|
# Tutorials about VCStudio.
|
|
UI_color.set(layer, win, "text_normal")
|
|
layer.move_to(120, current_Y+win.scroll["pm_help"])
|
|
layer.set_font_size(20)
|
|
layer.show_text(talk.text("help_tutorial_title"))
|
|
|
|
current_Y = current_Y+20
|
|
|
|
tutorials = [
|
|
[talk.text("tutorial_legacy_analitycs"), "https://open.lbry.com/@blender-organizer:5/BlenderOrganizerAnalyticsTutorial4.87:6?r=GLhXoQ3zcpvm6rzd9Z6dAyasTpmk1FUY"],
|
|
[talk.text("tutorial_legacy_storyeditor"), "https://open.lbry.com/@blender-organizer:5/BlenderOrganizerStoryEditorTutorialv4.87:0?r=GLhXoQ3zcpvm6rzd9Z6dAyasTpmk1FUY"],
|
|
[talk.text("tutorial_legacy_assets"), "https://open.lbry.com/@blender-organizer:5/BlenderOrganizerAssetsTutorialv4.87:e?r=GLhXoQ3zcpvm6rzd9Z6dAyasTpmk1FUY"]
|
|
]
|
|
|
|
for tutorial in tutorials:
|
|
def do():
|
|
os.system("xdg-open "+tutorial[1])
|
|
UI_elements.roundrect(layer, win,
|
|
110,
|
|
current_Y+win.scroll["pm_help"],
|
|
win.current["w"]-250,
|
|
40,
|
|
10,
|
|
button=do,
|
|
icon="video",
|
|
tip=talk.text("ClickToWatch"),
|
|
clip=[
|
|
100,
|
|
110,
|
|
win.current["w"]-200,
|
|
win.current["h"]-260,
|
|
])
|
|
|
|
UI_color.set(layer, win, "text_normal")
|
|
layer.move_to(160, current_Y+win.scroll["pm_help"]+25)
|
|
layer.set_font_size(20)
|
|
layer.show_text(tutorial[0])
|
|
|
|
current_Y = current_Y+50
|
|
|
|
current_Y = current_Y+138
|
|
current_Y = current_Y+138
|
|
|
|
UI_elements.scroll_area(layer, win, "pm_help",
|
|
100,
|
|
100,
|
|
win.current["w"] - 200,
|
|
win.current["h"] - 250,
|
|
current_Y,
|
|
bar=True,
|
|
mmb=True,
|
|
url="help_layer"
|
|
)
|
|
|
|
|
|
return surface
|