Skip to content

Commit

Permalink
Fixes font sliding in any direction
Browse files Browse the repository at this point in the history
  • Loading branch information
erodozer committed Jun 12, 2011
1 parent 694da6f commit f4a9965
Showing 1 changed file with 24 additions and 63 deletions.
87 changes: 24 additions & 63 deletions src/Rockmeter.py
Expand Up @@ -466,8 +466,10 @@ def __init__(self, layer, section):


self.position = self.startCoord[:]
#y position needs to be flipped initially
if isinstance(self.layer, FontLayer):
self.position[1] = .75 - self.position[1]*.75
self.position[1] *= .75
self.position[1] = .75 - self.position[1]

self.reverse = bool(eval(self.getexpr("reverse", "True")))

Expand All @@ -485,91 +487,50 @@ def updateRates(self):
self.rates[i] = (self.startCoord[i] - self.endCoord[i])/t
else:
self.rates[i] = (self.endCoord[i] - self.startCoord[i])/t

if isinstance(self.layer, FontLayer):
self.rates[1] *= .75
self.rates[1] = .75 - self.rates[1]

#setting position for Font layers is different due to the y coordinates being reversed,
# this makes calculating a little more complex
def setFontPosition(self, sC, eC):

def update(self):
condition = bool(eval(self.condition))

eC[1] = .75 - (eC[1]*.75)
sC[1] = .75 - (sC[1]*.75)

if condition:
for i in range(2):
if (self.position[i] > eC[i])*(i == 0):
if (self.endCoord[i] < self.startCoord[i]):
self.position[i] -= self.rates[i]
else:
self.position[i] = eC[i]
elif (self.position[i] < eC[i])*(i == 0):
if (self.endCoord[i] > self.startCoord[i]):
self.position[i] += self.rates[i]
else:
self.position[i] = eC[i]
else:
if self.reverse:
for i in range(2):
if self.position[i] > sC[i]:
if self.endCoord[i] > self.startCoord[i]:
self.position[i] -= self.rates[i]
else:
self.position[i] = sC[i]
elif self.position[i] < sC[i]:
if self.endCoord[i] < self.startCoord[i]:
self.position[i] += self.rates[i]
else:
self.position[i] = sC[i]

else:
self.position = sC

def setPosition(self, sC, eC):
condition = bool(eval(self.condition))
#reverse the processing for font layer handling
if isinstance(self.layer, FontLayer):
self.position[1] = .75 - self.position[1]
self.position[1] /= .75

self.updateRates()

if condition:
for i in range(2):
if self.position[i] > eC[i]:
if self.position[i] > self.endCoord[i]:
if self.endCoord[i] < self.startCoord[i]:
self.position[i] -= self.rates[i]
else:
self.position[i] = eC[i]
elif self.position[i] < eC[i]:
self.position[i] = self.endCoord[i]
elif self.position[i] < self.endCoord[i]:
if self.endCoord[i] > self.startCoord[i]:
self.position[i] += self.rates[i]
else:
self.position[i] = eC[i]
self.position[i] = self.endCoord[i]
else:
if self.reverse:
for i in range(2):
if self.position[i] > sC[i]:
if self.position[i] > self.startCoord[i]:
if self.endCoord[i] > self.startCoord[i]:
self.position[i] -= self.rates[i]
else:
self.position[i] = sC[i]
elif self.position[i] < sC[i]:
self.position[i] = self.startCoord[i]
elif self.position[i] < self.startCoord[i]:
if self.endCoord[i] < self.startCoord[i]:
self.position[i] += self.rates[i]
else:
self.position[i] = sC[i]
self.position[i] = self.startCoord[i]
else:
self.position = sC

def update(self):

self.updateRates()

eC = self.endCoord[:]
sC = self.startCoord[:]
self.position = self.startCoord

#because of the y position being flipped on fonts it needs to be caught
if isinstance(self.layer, FontLayer):
self.setFontPosition(sC, eC)
else:
self.setPosition(sC, eC)

self.position[1] *= .75
self.position[1] = .75 - self.position[1]

self.layer.position = self.position[:]

#fades the color of the layer between this color and its original
Expand Down

0 comments on commit f4a9965

Please sign in to comment.