OmniSVG-3B / deepsvg /gui /deepsvg.kv
OmniSVG's picture
Upload 80 files
c1ce505 verified
<DeepSVGWidget>:
orientation: "vertical"
Header:
id: header
BoxLayout:
orientation: "horizontal"
Sidebar:
id: sidebar_scroll
StencilView:
size_hint: 1, 1
canvas.before:
Color:
rgb: 0.89, 0.89, 0.89
Rectangle:
pos: self.pos
size: self.size
EditorView:
id: editor
TimeLine:
id: timeline_scroll
<Header>:
orientation: "horizontal"
size_hint_y: None
height: 50
canvas.before:
Color:
rgb: 0, 0, 0
Rectangle:
pos: self.pos
size: self.size
HeaderIcon:
source: "deepsvg/gui/res/hand.png"
index: 0
HeaderIcon:
source: "deepsvg/gui/res/pen.png"
index: 1
HeaderIcon:
source: "deepsvg/gui/res/pencil.png"
index: 2
Padding
HeaderButton:
text: "Clear all"
on_press: root.on_erase()
Padding
HeaderButton:
text: "Done"
on_press: root.on_done()
Label
Padding
TitleWidget:
text: root.title
on_text: root.on_title(self.text)
Padding
Label
HeaderButton:
text: "Add frame"
on_press: root.add_frame()
Padding
HeaderButton:
text: "Interpolate"
on_press: root.interpolate()
Padding
HeaderIcon:
index: 3
source: "deepsvg/gui/res/pause.png" if root.is_playing else "deepsvg/gui/res/play.png"
on_press: root.pause_animation() if root.is_playing else root.play_animation()
<TitleWidget>:
size_hint_x: None
width: 150
multiline: False
background_color: 0, 0, 0, 1
background_active: ""
background_normal: ""
halign: "center"
valign: "middle"
foreground_color: 1, 1, 1, 1
hint_text_color: 1, 1, 1, 1
cursor_color: 1, 1, 1, 1
<Sidebar>:
do_scroll_x: False
size_hint_x: None
width: 225
canvas.before:
Color:
rgb: 1, 1, 1
Rectangle:
pos: self.pos
size: self.size
Color:
rgb: 0.8, 0.8, 0.8
Line:
width: 1
rectangle: self.x, self.y, self.width, self.height
BoxLayout:
id: sidebar
orientation: "vertical"
size_hint_y: None
height: self.children[0].height * len(self.children) if self.children else 0
<PathLayerView>
orientation: "horizontal"
size_hint_y: None
height: 40
canvas:
Color:
rgb: (0.08, 0.58, 0.97) if self.parent is not None and self.index == self.parent.parent.selected_path_idx else (1, 1, 1)
Rectangle:
pos: self.pos
size: self.size
Color:
rgb: 0.8, 0.8, 0.8
Line:
width: 1
rectangle: self.x, self.y, self.width, self.height
Label:
color: 0, 0, 0, 1
size_hint_x: None
text: str(root.index)
width: self.texture_size[0]
padding_x: 10
Label
Image:
size_hint_x: None
source: root.source
nocache: True
Label
UpButton
DownButton
Padding
ReverseButton
Label
<UpButton>:
size_hint: None, None
height: 0.6 * self.parent.height
pos_hint: {'top': 0.8}
width: self.height
background_normal: ""
background_down: ""
background_color: 0.3, 0.3, 0.3, 1
Image:
source: "deepsvg/gui/res/up.png"
center: self.parent.center
<DownButton>:
size_hint: None, None
height: 0.6 * self.parent.height
pos_hint: {'top': 0.8}
width: self.height
background_normal: ""
background_down: ""
background_color: 0.3, 0.3, 0.3, 1
Image:
source: "deepsvg/gui/res/down.png"
center: self.parent.center
<ReverseButton>:
size_hint: None, None
height: 0.6 * self.parent.height
pos_hint: {'top': 0.8}
width: self.height
background_normal: ""
background_down: ""
background_color: 0.3, 0.3, 0.3, 1
Image:
source: "deepsvg/gui/res/switch.png"
center: self.parent.center
<BezierSegment>:
canvas:
Color:
rgb: .769, .769, .769
Line:
points: [*self.p1, *self.q1] if root.parent and root.parent.selected and self.is_curved else []
dash_length: 5
dash_offset: 5
Line:
points: [*self.q2, *self.p2] if root.parent and root.parent.selected and self.is_curved else []
dash_length: 5
dash_offset: 5
Color:
rgb: tuple(root.parent.color) if root.parent is not None else (.043, .769, 1)
Line:
bezier: ([*self.p1, *self.q1, *self.q2, *self.p2] if self.is_curved else [*self.p1, *self.p2]) if self.is_finished else [-10000, -10000]
width: 1.1
Color:
rgb: 1, .616, .043
Point:
points: [*self.p1, *self.p2] if root.parent and root.parent.selected else []
pointsize: 1.5
Color:
rgb: .769, .769, .769
Point:
points: [*self.q1, *self.q2] if self.is_curved and root.parent and root.parent.selected else []
pointsize: 1.5
<BezierPath>
<Sketch>:
canvas:
Color:
rgb: root.color
Line:
points: root.points
width: 1.2
<EditorView>:
size_hint: None, None
size: draw_viewbox.size
center: self.parent.center
scale: 1.5
DrawViewbox:
id: draw_viewbox
<DrawViewbox>
size: 256, 256
canvas.before:
Color:
rgb: 1, 1, 1
Rectangle:
pos: self.pos
size: self.size
<TimeLine>:
do_scroll_y: False
size_hint_y: None
height: 50
canvas.before:
Color:
rgb: 1, 1, 1
Rectangle:
pos: self.pos
size: self.size
Color:
rgb: 0.8, 0.8, 0.8
Line:
width: 1
rectangle: self.x, self.y, self.width, self.height
BoxLayout:
id: timeline
orientation: "horizontal"
size_hint_x: None
width: 50 * len(self.children) if self.children else 0
<FrameView>
size_hint_x: None
width: self.height
color: 0, 0, 0, 1
text: str(self.index)
background_normal: ""
background_down: ""
background_color: (0.08, 0.58, 0.97, 1) if self.parent and self.index == self.parent.parent.selected_frame and self.keyframe else (0.48, 0.78, 1, 1) if self.parent and self.index == self.parent.parent.selected_frame and not self.keyframe else (1, 0.67, 0.19, 1) if self.keyframe else (1, 1, 1, 1)
canvas:
Color:
rgb: 0.8, 0.8, 0.8
Line:
width: 1
rectangle: self.x, self.y, self.width, self.height
<HeaderIcon>:
size_hint_x: None
width: self.height
canvas:
Color:
rgb: (0.08, 0.58, 0.97) if self.index == self.parent.selected_tool else (0, 0, 0)
Rectangle:
pos: self.pos
size: self.size
Image:
source: self.parent.source
center: self.parent.center
<HeaderButton>:
size_hint: None, None
height: 0.8 * self.parent.height
pos_hint: {'top': 0.9}
width: self.texture_size[0] + 40
<Padding>:
size_hint_x: None
width: 10
<FileChoosePopup>:
title: "Import SVG file"
size_hint: .9, .9
auto_dismiss: True
BoxLayout:
orientation: "vertical"
FileChooserIconView:
id: filechooser
path: root.path
BoxLayout:
size_hint_x: 1
size_hint_y: None
height: 50
pos_hint: {'center_x': .5, 'center_y': .5}
spacing: 20
Button:
text: "Cancel"
on_release: root.dismiss()
Button:
text: "Load"
on_release: root.load(filechooser.selection)
id: ldbtn
disabled: True if filechooser.selection==[] else False