fix DirectEntry default size when no geom specified

This commit is contained in:
David Rose 2005-06-03 18:52:57 +00:00
parent 43f40a035f
commit fe22598b88

View File

@ -28,9 +28,9 @@ class DirectEntry(DirectFrame):
('state', NORMAL, None),
('entryFont', None, INITOPT),
('width', 10, self.setup),
('numLines', 5, self.setup),
('numLines', 1, self.setup),
('focus', 0, self.setFocus),
('cursorKeys', 0, self.setCursorKeysActive),
('cursorKeys', 1, self.setCursorKeysActive),
('obscured', 0, self.setObscureMode),
# Setting backgroundFocus allows the entry box to get keyboard
# events that are not handled by other things (i.e. events that
@ -162,3 +162,22 @@ class DirectEntry(DirectFrame):
""" sets the entry's text, and moves the cursor to the end """
self.set(text)
self.setCursorPosition(len(self.get()))
def getBounds(self, state = 0):
# Compute the width and height for the entry itself, ignoring
# geometry etc.
lineHeight = self.onscreenText.textNode.getLineHeight()
numLines = self['numLines']
width = self['width']
self.ll.set(0.0, 0.0, -0.3 * lineHeight - (lineHeight * (numLines - 1)));
self.ur.set(width, 0.0, lineHeight * 1.3);
# Scale bounds to give a pad around graphics. We also want to
# scale around the border width.
pad = self['pad']
borderWidth = self['borderWidth']
self.bounds = [self.ll[0] - pad[0] - borderWidth[0],
self.ur[0] + pad[0] + borderWidth[0],
self.ll[2] - pad[1] - borderWidth[1],
self.ur[2] + pad[1] + borderWidth[1]]
return self.bounds