Fix editext

This commit is contained in:
9and3r
2015-05-24 16:31:13 +02:00
parent 6f452750f4
commit 5e8471a3a7
2 changed files with 39 additions and 23 deletions

View File

@@ -7,7 +7,7 @@ import pygame
logger = logging.getLogger(__name__)
class ScreenObjectsManager():
class ScreenObjectsManager:
def __init__(self):
self.touch_objects = {}
self.text_objects = {}
@@ -86,9 +86,11 @@ class TextItem(BaseItem):
scroll_speed = 2
def __init__(self, font, text, pos, size, center=False, background=None):
def __init__(self, font, text, pos, size, center=False, background=None,
scroll_no_fit=True):
self.font = font
self.text = text
self.scroll_no_fit = scroll_no_fit
self.color = (255, 255, 255)
self.box = self.font.render(text, True, self.color)
self.box = self.box.convert_alpha()
@@ -126,7 +128,7 @@ class TextItem(BaseItem):
self.box.get_rect().width)/2
def update(self):
if not self.fit_horizontal:
if self.scroll_no_fit and not self.fit_horizontal:
self.step += TextItem.scroll_speed
if self.step_2 is None:
if (self.box.get_rect().width - self.step +
@@ -152,6 +154,7 @@ class TextItem(BaseItem):
self.box, ((self.pos[0] + self.margin),
self.pos[1]), area=self.rect)
else:
if self.scroll_no_fit:
surface.blit(self.box, self.pos,
area=pygame.Rect(self.step, 0, self.size[0],
self.size[1]))
@@ -162,15 +165,22 @@ class TextItem(BaseItem):
self.size[0] -
self.step_2,
self.size[1]))
else:
step = self.box.get_rect().width - self.size[0]
surface.blit(self.box, self.pos,
area=pygame.Rect(step, 0, self.size[0],
self.size[1]))
def set_text(self, text, change_size):
if text != self.text:
if change_size:
TextItem.__init__(self, self.font, text, self.pos,
None, self.center, self.background)
None, self.center, self.background,
self.scroll_no_fit)
else:
TextItem.__init__(self, self.font, text, self.pos,
self.size, self.center, self.background)
self.size, self.center, self.background,
self.scroll_no_fit)
def add_text(self, add_text, change_size):
self.set_text(self.text+add_text, change_size)
@@ -218,9 +228,10 @@ class TouchObject(BaseItem):
class TouchAndTextItem(TouchObject, TextItem):
def __init__(self, font, text, pos, size, center=False, background=None):
def __init__(self, font, text, pos, size, center=False, background=None,
scroll_no_fit=True):
TextItem.__init__(self, font, text, pos, size, center=center,
background=background)
background=background, scroll_no_fit=scroll_no_fit)
TouchObject.__init__(self, pos, self.size)
self.active_color = (0, 150, 255)
self.normal_box = self.box

View File

@@ -51,7 +51,8 @@ class Keyboard(BaseScreen):
button = \
TouchAndTextItem(self.font, key, (pos, line),
(self.base_width, self.base_height),
center=True, background=(150, 150, 150))
center=True, background=(150, 150, 150),
scroll_no_fit=False)
self.keyboards[self.current_keyboard].\
set_touch_object(key, button)
pos += self.base_width
@@ -62,35 +63,39 @@ class Keyboard(BaseScreen):
button = TouchAndTextItem(self.font, "123",
(0, self.base_height*4),
(self.base_width*2, self.base_height),
center=True, background=(150, 150, 150))
center=True, background=(150, 150, 150),
scroll_no_fit=False)
self.other_objects.set_touch_object("symbols", button)
# remove button
button = TouchAndTextItem(self.font, "<-",
(self.base_width*2, self.base_height*4),
(self.base_width*2, self.base_height),
center=True, background=(150, 150, 150))
center=True, background=(150, 150, 150),
scroll_no_fit=False)
self.other_objects.set_touch_object("remove", button)
# Space button
button = TouchAndTextItem(self.font, " ",
(self.base_width*4, self.base_height*4),
(self.base_width*4, self.base_height),
center=True, background=(150, 150, 150))
center=True, background=(150, 150, 150),
scroll_no_fit=False)
self.other_objects.set_touch_object("space", button)
# OK button
button = TouchAndTextItem(self.font, "->",
(self.base_width*8, self.base_height*4),
(self.base_width*2, self.base_height),
center=True, background=(150, 150, 150))
center=True, background=(150, 150, 150),
scroll_no_fit=False)
self.other_objects.set_touch_object("ok", button)
# EditText button
button = TouchAndTextItem(self.font, "",
(0, 0),
(self.base_width*10, self.base_height),
center=True)
(self.size[0], self.base_height),
center=False, scroll_no_fit=False)
self.other_objects.set_object("text", button)
self.change_selected(0, 0)