Beispiel #1
0
class ClockTest(Test):
    """Clock test drawing. Dunno"""
    def __init__(self, screen, **kwargs):
        super(ClockTest, self).__init__(screen, **kwargs)

        self.test_field = FloatLayout()
        self.desc = "Hodiny"
        self.drawing = utils.DrawLayer(pos_hint={"x": 0, "y": 0})
        self.instruction = "Nakreslete ciferník hodin se všemi číslicemi tak, \njak jsou na ciferníku a nastavte čas, \naby hodiny ukazovaly 11 hodin a 10 minut."
        self.instruction_audio = "sounds/ins1-3.mp3"

        with self.test_field.canvas.before:
            Color(1, 1, 1, 1)
            self.rec = Rectangle(size=Window.size)

    def draw_uix(self):
        self.test_field.add_widget(self.drawing)
        self.add_widget(self.test_field)
        super(ClockTest, self).draw_uix()
        self.hidden_options.modify(self.drawing.erase)

    def result(self):
        self.test_field.export_to_png(
            "/sdcard/vysledky/{2}/{0}_{1}_3.png".format(
                self.screen.subject.name.replace(" ", "_"),
                self.screen.subject.age, self.screen.subject.study))
        return self.points

    def export_layout(self):
        return utils.microgrid(True, Label(text=self.desc),
                               Label(text=str(self.points)))
Beispiel #2
0
class ConnectTest(Test):
    """First spatial test, connectiing letters"""
    def __init__(self, screen, **kwargs):
        super(ConnectTest, self).__init__(screen, **kwargs)
        self.drawing = utils.DrawLayer(pos_hint={"x": 0, "y": 0})
        self.desc = "Spojování bodů"
        self.test_field = FloatLayout()
        self.test_image = Image(source="images/test1.png")
        self.instruction = u"Spojte postupně čarou číslice a písmena.\nZačněte číslem 1 směrem k A, pak od A ke 2 \na tak dále a skončete u E"
        self.instruction_audio = "sounds/ins1-1.mp3"

        with self.test_field.canvas.before:
            Color(1, 1, 1, 1)
            self.rec = Rectangle(size=Window.size)

    def draw_uix(self):
        self.test_field.add_widget(self.test_image)
        self.test_field.add_widget(self.drawing)
        self.add_widget(self.test_field)
        super(ConnectTest, self).draw_uix()
        self.hidden_options.modify(self.drawing.erase)

    def result(self):
        self.test_field.export_to_png(
            "/sdcard/vysledky/{2}/{0}_{1}_1.png".format(
                self.screen.subject.name.replace(" ", "_"),
                self.screen.subject.age, self.screen.subject.study))
        return self.points

    def export_layout(self):
        return utils.microgrid(True, Label(text=self.desc),
                               Label(text=str(self.points)))
Beispiel #3
0
class CubeTest(Test):
    """Cube redrawing test"""
    def __init__(self, screen, **kwargs):
        super(CubeTest, self).__init__(screen, **kwargs)

        self.test_field = FloatLayout()
        self.drawing = utils.DrawLayer(pos_hint={"x": 0, "y": 0})
        self.desc = "Překreslování"
        self.test_image = Image(source="images/test2.png")
        self.instruction = "Překreslete do volného místa dolů tuto kresbu,  \njak nejpřesněji dokážete."
        self.instruction_audio = "sounds/ins1-2.mp3"

        with self.test_field.canvas.before:
            Color(1, 1, 1, 1)
            self.rec = Rectangle(size=Window.size)

    def draw_uix(self):
        self.test_field.add_widget(self.test_image)
        self.test_field.add_widget(self.drawing)
        self.add_widget(self.test_field)
        super(CubeTest, self).draw_uix()
        self.hidden_options.modify(self.drawing.erase)

    def result(self):
        self.test_field.export_to_png(
            "/sdcard/vysledky/{2}/{0}_{1}_2.png".format(
                self.screen.subject.name.replace(" ", "_"),
                self.screen.subject.age, self.screen.subject.study))
        return self.points

    def export_layout(self):
        return utils.microgrid(True, Label(text=self.desc),
                               Label(text=str(self.points)))
Beispiel #4
0
class AvaMaker(Screen):
	def __init__(self,source = "",**kwargs):
		super(AvaMaker,self).__init__(**kwargs)
		self.source = source
		self.main = FloatLayout()
		self.avatar = Button(background_normal = self.source,background_down = self.source,size_hint = [None,None])
		test = Image(source = self.source)
		self.avatar.size = test.texture_size
		
		self.touchPos = self.avatar.pos
		self.ImageX = self.avatar.x
		self.ImageY = self.avatar.y
		
		self.stratHeight = self.avatar.height
		self.startWidth = self.avatar.width
		
		self.main.add_widget(self.avatar)
		diametr = Window.width * 0.8
		if self.avatar.height < diametr:
			addNum = diametr - self.avatar.height
			self.avatar.size_hint = [None,None]
			self.avatar.height += addNum
			self.avatar.width += addNum
			self.avatar.y = Window.height // 2 - diametr //2

		self.minY = Window.height // 2 + diametr //2 - self.avatar.height
		self.maxY = Window.height // 2 - diametr//2
		self.minX = Window.width // 2 + diametr//2 - self.avatar.width
		self.maxX = Window.width // 2 - diametr//2
		
		
		
		if self.stratHeight < self.avatar.width:
			sliderValue = self.stratHeight - diametr 
		else:
			sliderValue = self.startWidth - diametr
			
		sizeChanger = Slider(min = sliderValue * -1,max = 0, on_touch_move = self.lesses,on_touch_down = self.lesses, size_hint_y = .1,pos_hint = {"x":0,"center_y":.2})
		
		okButton = Button(size_hint = [.3,.07], pos_hint = {"center_x":.5,"center_y": .1}, on_press = self.save)  
		
		self.main.add_widget(okButton,0)
		self.main.add_widget(sizeChanger,0)
		self.main.add_widget(Filter(on_touch_down = self.son_touch_down,on_touch_move = self.son_touch_move),2)
		self.add_widget(self.main)
		
	def son_touch_down(self,istance,touch):
		self.touchPos = touch.pos
		self.ImageX = self.avatar.x
		self.ImageY = self.avatar.y
	
	def son_touch_move(self,istance,touch):
		self.avatar.x = self.ImageX + (touch.pos[0] - self.touchPos[0]) 
		self.avatar.y = self.ImageY + (touch.pos[1] - self.touchPos[1])
		
		if self.avatar.x < self.minX:
			self.avatar.x = self.minX
		elif self.avatar.x > self.maxX:
			self.avatar.x = self.maxX
		if self.avatar.y < self.minY:
			self.avatar.y = self.minY
		elif self.avatar.y > self.maxY:
			self.avatar.y = self.maxY
	def lesses(self,istance,touch):
		diametr = Window.width * 0.8
		self.avatar.size = [self.startWidth + istance.value,self.stratHeight + istance.value * 1.5]
		print(istance.value)
		print()
		print(self.avatar.size)
		self.minY = Window.height // 2 + diametr //2 - self.avatar.height
		self.maxY = Window.height // 2 - diametr//2
		self.minX = Window.width // 2 + diametr//2 - self.avatar.width
		self.maxX = Window.width // 2 - diametr//2
		
				
		if self.avatar.x < self.minX:
			self.avatar.x = self.minX
		elif self.avatar.x > self.maxX:
			self.avatar.x = self.maxX
		if self.avatar.y < self.minY:
			self.avatar.y = self.minY
		elif self.avatar.y > self.maxY:
			self.avatar.y = self.maxY
	def save(self,istance):
		diametr = Window.width * 0.8
		
		
		self.main.size_hint = [None,None]
		self.main.size = [diametr,diametr]
		self.main.pos = [Window.width//2 - diametr//2,Window.height // 2 - diametr//2]
		self.main.export_to_png("ava.png")
		self.main.size_hint = [1,1]
	
	def updateSource(self,source):
		test = Image(source = self.source)
		self.avatar.background_normal = source
		self.avatar.background_down = source
		self.avatar.size = test.texture_size
		
		self.touchPos = self.avatar.pos
		self.ImageX = self.avatar.x
		self.ImageY = self.avatar.y
		
		self.stratHeight = self.avatar.height
		self.startWidth = self.avatar.width
		
		diametr = Window.width * 0.8
		if self.avatar.height < diametr:
			addNum = diametr - self.avatar.height
			self.avatar.size_hint = [None,None]
			self.avatar.height += addNum
			self.avatar.width += addNum
			self.avatar.y = Window.height // 2 - diametr //2

		self.minY = Window.height // 2 + diametr //2 - self.avatar.height
		self.maxY = Window.height // 2 - diametr//2
		self.minX = Window.width // 2 + diametr//2 - self.avatar.width
		self.maxX = Window.width // 2 - diametr//2
		
		
		
		if self.stratHeight < self.avatar.width:
			sliderValue = self.stratHeight - diametr 
		else:
			sliderValue = self.startWidth - diametr