dialogs/BlockPreviewDialog.py
changeset 1252 18cd1357e8d3
parent 1250 7e6de17c687a
child 1253 00b7d3c64c80
equal deleted inserted replaced
1251:d9ed42e44a50 1252:18cd1357e8d3
   267         min_width, min_height = self.GetMinElementSize()
   267         min_width, min_height = self.GetMinElementSize()
   268         width = max(self.MinElementSize[0], min_width)
   268         width = max(self.MinElementSize[0], min_width)
   269         height = max(self.MinElementSize[1], min_height)
   269         height = max(self.MinElementSize[1], min_height)
   270         self.Element.SetSize(width, height)
   270         self.Element.SetSize(width, height)
   271         
   271         
       
   272         # Get element bounding box to center in preview
       
   273         bbox = self.Element.GetBoundingBox()
       
   274         
   272         # Get Preview panel size
   275         # Get Preview panel size
   273         client_size = self.Preview.GetClientSize()
   276         client_size = self.Preview.GetClientSize()
   274         
   277         
   275         # If graphic element is too big to be displayed in preview panel,
   278         # If graphic element is too big to be displayed in preview panel,
   276         # calculate preview panel scale so that graphic element fit inside
   279         # calculate preview panel scale so that graphic element fit inside
   277         scale = (max(float(width) / client_size.width, 
   280         scale = (max(float(bbox.width) / client_size.width, 
   278                      float(height) / client_size.height) * 1.2
   281                      float(bbox.height) / client_size.height) * 1.2
   279                  if width * 1.2 > client_size.width or 
   282                  if bbox.width * 1.1 > client_size.width or 
   280                     height * 1.2 > client_size.height
   283                     bbox.height * 1.1 > client_size.height
   281                  else 1.0)
   284                  else 1.0)
   282         dc.SetUserScale(1.0 / scale, 1.0 / scale)
   285         dc.SetUserScale(1.0 / scale, 1.0 / scale)
   283         
   286         
   284         # Center graphic element in preview panel
   287         # Center graphic element in preview panel
   285         x = int(client_size.width * scale - width) / 2
   288         x = int(client_size.width * scale - bbox.width) / 2
   286         y = int(client_size.height * scale - height) / 2
   289         y = int(client_size.height * scale - bbox.height) / 2
   287         self.Element.SetPosition(x, y)
   290         self.Element.SetPosition(x, y)
   288         
   291         
   289         # Draw graphic element
   292         # Draw graphic element
   290         self.Element.Draw(dc)
   293         self.Element.Draw(dc)
   291     
   294