dialogs/BlockPreviewDialog.py
changeset 1767 c74815729afd
parent 1764 d5df428640ff
child 1768 691083b5682a
equal deleted inserted replaced
1766:c1e5b9f19483 1767:c74815729afd
    90         Destructor
    90         Destructor
    91         """
    91         """
    92         # Remove reference to project controller
    92         # Remove reference to project controller
    93         self.Controller = None
    93         self.Controller = None
    94 
    94 
    95     def _init_sizers(self, main_rows, main_growable_row,
    95     def _init_sizers(self,
    96                             left_rows, left_growable_row,
    96                      main_rows, main_growable_row,
    97                             right_rows, right_growable_row):
    97                      left_rows, left_growable_row,
       
    98                      right_rows, right_growable_row):
    98         """
    99         """
    99         Initialize common sizers
   100         Initialize common sizers
   100         @param main_rows: Number of rows in main sizer
   101         @param main_rows: Number of rows in main sizer
   101         @param main_growable_row: Row that is growable in main sizer, None if no
   102         @param main_growable_row: Row that is growable in main sizer, None if no
   102         row is growable
   103         row is growable
   276         # Get Preview panel size
   277         # Get Preview panel size
   277         client_size = self.Preview.GetClientSize()
   278         client_size = self.Preview.GetClientSize()
   278 
   279 
   279         # If graphic element is too big to be displayed in preview panel,
   280         # If graphic element is too big to be displayed in preview panel,
   280         # calculate preview panel scale so that graphic element fit inside
   281         # calculate preview panel scale so that graphic element fit inside
       
   282         k = 1.1 if (bbox.width * 1.1 > client_size.width or
       
   283                     bbox.height * 1.1 > client_size.height) \
       
   284                 else 1.0
   281         scale = (max(float(bbox.width) / client_size.width,
   285         scale = (max(float(bbox.width) / client_size.width,
   282                      float(bbox.height) / client_size.height) * 1.1
   286                      float(bbox.height) / client_size.height) * k)
   283                  if bbox.width * 1.1 > client_size.width or
       
   284                     bbox.height * 1.1 > client_size.height
       
   285                  else 1.0)
       
   286         dc.SetUserScale(1.0 / scale, 1.0 / scale)
   287         dc.SetUserScale(1.0 / scale, 1.0 / scale)
   287 
   288 
   288         # Center graphic element in preview panel
   289         # Center graphic element in preview panel
   289         x = int(client_size.width * scale - bbox.width) / 2 + posx - bbox.x
   290         x = int(client_size.width * scale - bbox.width) / 2 + posx - bbox.x
   290         y = int(client_size.height * scale - bbox.height) / 2 + posy - bbox.y
   291         y = int(client_size.height * scale - bbox.height) / 2 + posy - bbox.y