from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from random import random
from kivy.core.window import Window
from kivy.graphics import (Color, Ellipse, Rectangle, Line)
class PainterWidget(Widget):
    def on_touch_down(self, touch):
        with self.canvas:
            Color(random(), random(), random(), 1)
            rad = 30
            Ellipse(pos = (touch.x - rad/2, touch.y - rad/2), size = (rad, rad))
            touch.ud['line'] = Line(points = (touch.x, touch.y), width = 15)
    def on_touch_move(self, touch):
        touch.ud['line'].points += (touch.x, touch.y)   
    
class PaintApp(App):
    def build(self):
        parent = Widget()
        self.painter = PainterWidget()
        parent.add_widget(self.painter)
        parent.add_widget(Button(text = 'Clear' , on_press = self.clear_canvas, size = (100, 50)))
        parent.add_widget(Button(text = 'Save' , on_press = self.save, size = (100, 50), pos = (100, 0)))
        parent.add_widget(Button(text = 'Screen', on_press = self.screen, size = (100, 50), pos=(200, 0 )))
        color_lab = Label(self, text="Color: ")
        color_lab.grid(row=0, column=0, padx=6)
        red_btn = Button(self, text = "Red", width=10)
        red_btn.grid(row=0, column=1)
        return parent
    def clear_canvas(self, instance):
        self.painter.canvas.clear()   
    def save(self, instance):
        self.painter.size = (Window.size[0], Window.size[1])
        self.painter.export_to_png('mage.png')
    def screen(self, instance):
        Window.screenshot('screen.png')
    def main():
        root = Tk()
        root.geometry("1920x1080+300+300")
        app = paint(root)
        root.mainloop()   
        
if __name__ == '__main__':
    PaintApp().run()