737 return dc |
737 return dc |
738 |
738 |
739 def RefreshRect(self, rect, eraseBackground=True): |
739 def RefreshRect(self, rect, eraseBackground=True): |
740 self.Editor.RefreshRect(rect, eraseBackground) |
740 self.Editor.RefreshRect(rect, eraseBackground) |
741 |
741 |
|
742 def RefreshEditor(self): |
|
743 self.Editor.Thaw() |
|
744 self.Editor.Refresh() |
|
745 |
742 def Scroll(self, x, y): |
746 def Scroll(self, x, y): |
|
747 if self.Debug and wx.Platform == '__WXMSW__': |
|
748 self.Editor.Freeze() |
743 self.Editor.Scroll(x, y) |
749 self.Editor.Scroll(x, y) |
|
750 if self.Debug: |
|
751 if wx.Platform == '__WXMSW__': |
|
752 wx.CallAfter(self.RefreshEditor) |
|
753 else: |
|
754 self.Editor.Refresh() |
744 |
755 |
745 def GetScrollPos(self, orientation): |
756 def GetScrollPos(self, orientation): |
746 return self.Editor.GetScrollPos(orientation) |
757 return self.Editor.GetScrollPos(orientation) |
747 |
758 |
748 def GetScrollRange(self, orientation): |
759 def GetScrollRange(self, orientation): |
1521 |
1532 |
1522 def OnAlignLeftMenu(self, event): |
1533 def OnAlignLeftMenu(self, event): |
1523 if self.SelectedElement is not None and isinstance(self.SelectedElement, Graphic_Group): |
1534 if self.SelectedElement is not None and isinstance(self.SelectedElement, Graphic_Group): |
1524 self.SelectedElement.AlignElements(ALIGN_LEFT, None) |
1535 self.SelectedElement.AlignElements(ALIGN_LEFT, None) |
1525 self.RefreshBuffer() |
1536 self.RefreshBuffer() |
1526 self.Refresh(False) |
1537 self.Editor.Refresh(False) |
1527 |
1538 |
1528 def OnAlignCenterMenu(self, event): |
1539 def OnAlignCenterMenu(self, event): |
1529 if self.SelectedElement is not None and isinstance(self.SelectedElement, Graphic_Group): |
1540 if self.SelectedElement is not None and isinstance(self.SelectedElement, Graphic_Group): |
1530 self.SelectedElement.AlignElements(ALIGN_CENTER, None) |
1541 self.SelectedElement.AlignElements(ALIGN_CENTER, None) |
1531 self.RefreshBuffer() |
1542 self.RefreshBuffer() |
1532 self.Refresh(False) |
1543 self.Editor.Refresh(False) |
1533 |
1544 |
1534 def OnAlignRightMenu(self, event): |
1545 def OnAlignRightMenu(self, event): |
1535 if self.SelectedElement is not None and isinstance(self.SelectedElement, Graphic_Group): |
1546 if self.SelectedElement is not None and isinstance(self.SelectedElement, Graphic_Group): |
1536 self.SelectedElement.AlignElements(ALIGN_RIGHT, None) |
1547 self.SelectedElement.AlignElements(ALIGN_RIGHT, None) |
1537 self.RefreshBuffer() |
1548 self.RefreshBuffer() |
1538 self.Refresh(False) |
1549 self.Editor.Refresh(False) |
1539 |
1550 |
1540 def OnAlignTopMenu(self, event): |
1551 def OnAlignTopMenu(self, event): |
1541 if self.SelectedElement is not None and isinstance(self.SelectedElement, Graphic_Group): |
1552 if self.SelectedElement is not None and isinstance(self.SelectedElement, Graphic_Group): |
1542 self.SelectedElement.AlignElements(None, ALIGN_TOP) |
1553 self.SelectedElement.AlignElements(None, ALIGN_TOP) |
1543 self.RefreshBuffer() |
1554 self.RefreshBuffer() |
1544 self.Refresh(False) |
1555 self.Editor.Refresh(False) |
1545 |
1556 |
1546 def OnAlignMiddleMenu(self, event): |
1557 def OnAlignMiddleMenu(self, event): |
1547 if self.SelectedElement is not None and isinstance(self.SelectedElement, Graphic_Group): |
1558 if self.SelectedElement is not None and isinstance(self.SelectedElement, Graphic_Group): |
1548 self.SelectedElement.AlignElements(None, ALIGN_MIDDLE) |
1559 self.SelectedElement.AlignElements(None, ALIGN_MIDDLE) |
1549 self.RefreshBuffer() |
1560 self.RefreshBuffer() |
1550 self.Refresh(False) |
1561 self.Editor.Refresh(False) |
1551 |
1562 |
1552 def OnAlignBottomMenu(self, event): |
1563 def OnAlignBottomMenu(self, event): |
1553 if self.SelectedElement is not None and isinstance(self.SelectedElement, Graphic_Group): |
1564 if self.SelectedElement is not None and isinstance(self.SelectedElement, Graphic_Group): |
1554 self.SelectedElement.AlignElements(None, ALIGN_BOTTOM) |
1565 self.SelectedElement.AlignElements(None, ALIGN_BOTTOM) |
1555 self.RefreshBuffer() |
1566 self.RefreshBuffer() |
1556 self.Refresh(False) |
1567 self.Editor.Refresh(False) |
1557 |
1568 |
1558 def OnNoModifierMenu(self, event): |
1569 def OnNoModifierMenu(self, event): |
1559 if self.SelectedElement is not None and self.IsBlock(self.SelectedElement): |
1570 if self.SelectedElement is not None and self.IsBlock(self.SelectedElement): |
1560 self.SelectedElement.SetConnectorNegated(False) |
1571 self.SelectedElement.SetConnectorNegated(False) |
1561 self.SelectedElement.Refresh() |
1572 self.SelectedElement.Refresh() |
1611 def OnDeleteMenu(self, event): |
1622 def OnDeleteMenu(self, event): |
1612 if self.SelectedElement is not None: |
1623 if self.SelectedElement is not None: |
1613 self.SelectedElement.Delete() |
1624 self.SelectedElement.Delete() |
1614 self.SelectedElement = None |
1625 self.SelectedElement = None |
1615 self.RefreshBuffer() |
1626 self.RefreshBuffer() |
1616 self.Refresh(False) |
1627 self.Editor.Refresh(False) |
1617 |
1628 |
1618 def OnClearExecutionOrderMenu(self, event): |
1629 def OnClearExecutionOrderMenu(self, event): |
1619 self.Controler.ClearEditedElementExecutionOrder(self.TagName) |
1630 self.Controler.ClearEditedElementExecutionOrder(self.TagName) |
1620 self.RefreshBuffer() |
1631 self.RefreshBuffer() |
1621 self.RefreshView() |
1632 self.RefreshView() |
1971 self.Scroll(scrollx, scrolly) |
1982 self.Scroll(scrollx, scrolly) |
1972 else: |
1983 else: |
1973 self.Scroll(scrollx, scrolly) |
1984 self.Scroll(scrollx, scrolly) |
1974 self.RefreshScrollBars() |
1985 self.RefreshScrollBars() |
1975 self.RefreshVisibleElements() |
1986 self.RefreshVisibleElements() |
1976 if self.Debug: |
|
1977 self.Refresh() |
|
1978 else: |
1987 else: |
1979 if not event.Dragging(): |
1988 if not event.Dragging(): |
1980 highlighted = self.FindElement(event, connectors=False) |
1989 highlighted = self.FindElement(event, connectors=False) |
1981 if self.HighlightedElement is not None and self.HighlightedElement != highlighted: |
1990 if self.HighlightedElement is not None and self.HighlightedElement != highlighted: |
1982 self.HighlightedElement.SetHighlighted(False) |
1991 self.HighlightedElement.SetHighlighted(False) |
2158 self.Controler.AddEditedElementVariable(self.GetTagName(), id, var_class) |
2167 self.Controler.AddEditedElementVariable(self.GetTagName(), id, var_class) |
2159 self.RefreshVariableModel(variable) |
2168 self.RefreshVariableModel(variable) |
2160 self.RefreshBuffer() |
2169 self.RefreshBuffer() |
2161 self.RefreshScrollBars() |
2170 self.RefreshScrollBars() |
2162 self.RefreshVisibleElements() |
2171 self.RefreshVisibleElements() |
2163 self.Refresh(False) |
2172 self.Editor.Refresh(False) |
2164 |
2173 |
2165 #------------------------------------------------------------------------------- |
2174 #------------------------------------------------------------------------------- |
2166 # Model adding functions |
2175 # Model adding functions |
2167 #------------------------------------------------------------------------------- |
2176 #------------------------------------------------------------------------------- |
2168 |
2177 |
3313 def OnScrollWindow(self, event): |
3322 def OnScrollWindow(self, event): |
3314 if self.Editor.HasCapture() and self.StartMousePos: |
3323 if self.Editor.HasCapture() and self.StartMousePos: |
3315 return |
3324 return |
3316 if wx.Platform == '__WXMSW__': |
3325 if wx.Platform == '__WXMSW__': |
3317 wx.CallAfter(self.RefreshVisibleElements) |
3326 wx.CallAfter(self.RefreshVisibleElements) |
|
3327 self.Editor.Freeze() |
|
3328 wx.CallAfter(self.RefreshEditor) |
3318 elif event.GetOrientation() == wx.HORIZONTAL: |
3329 elif event.GetOrientation() == wx.HORIZONTAL: |
3319 self.RefreshVisibleElements(xp = event.GetPosition()) |
3330 self.RefreshVisibleElements(xp = event.GetPosition()) |
3320 else: |
3331 else: |
3321 self.RefreshVisibleElements(yp = event.GetPosition()) |
3332 self.RefreshVisibleElements(yp = event.GetPosition()) |
3322 |
3333 |
3323 # Handle scroll in debug to fully redraw area and ensuring |
3334 # Handle scroll in debug to fully redraw area and ensuring |
3324 # instance path is fully draw without flickering |
3335 # instance path is fully draw without flickering |
3325 if self.Debug: |
3336 if self.Debug and wx.Platform != '__WXMSW__': |
3326 x, y = self.GetViewStart() |
3337 x, y = self.GetViewStart() |
3327 if event.GetOrientation() == wx.HORIZONTAL: |
3338 if event.GetOrientation() == wx.HORIZONTAL: |
3328 self.Scroll(event.GetPosition(), y) |
3339 self.Scroll(event.GetPosition(), y) |
3329 else: |
3340 else: |
3330 self.Scroll(x, event.GetPosition()) |
3341 self.Scroll(x, event.GetPosition()) |
3331 self.Refresh() |
|
3332 else: |
3342 else: |
3333 event.Skip() |
3343 event.Skip() |
3334 |
3344 |
3335 def OnScrollStop(self, event): |
3345 def OnScrollStop(self, event): |
3336 self.RefreshScrollBars() |
3346 self.RefreshScrollBars() |
3342 if event.ShiftDown(): |
3352 if event.ShiftDown(): |
3343 x, y = self.GetViewStart() |
3353 x, y = self.GetViewStart() |
3344 xp = max(0, min(x - rotation * 3, self.Editor.GetVirtualSize()[0] / self.Editor.GetScrollPixelsPerUnit()[0])) |
3354 xp = max(0, min(x - rotation * 3, self.Editor.GetVirtualSize()[0] / self.Editor.GetScrollPixelsPerUnit()[0])) |
3345 self.RefreshVisibleElements(xp = xp) |
3355 self.RefreshVisibleElements(xp = xp) |
3346 self.Scroll(xp, y) |
3356 self.Scroll(xp, y) |
3347 if self.Debug: |
|
3348 self.Refresh() |
|
3349 elif event.ControlDown(): |
3357 elif event.ControlDown(): |
3350 dc = self.GetLogicalDC() |
3358 dc = self.GetLogicalDC() |
3351 self.SetScale(self.CurrentScale + rotation, mouse_event = event) |
3359 self.SetScale(self.CurrentScale + rotation, mouse_event = event) |
3352 self.ParentWindow.RefreshDisplayMenu() |
3360 self.ParentWindow.RefreshDisplayMenu() |
3353 else: |
3361 else: |
3354 x, y = self.GetViewStart() |
3362 x, y = self.GetViewStart() |
3355 yp = max(0, min(y - rotation * 3, self.Editor.GetVirtualSize()[1] / self.Editor.GetScrollPixelsPerUnit()[1])) |
3363 yp = max(0, min(y - rotation * 3, self.Editor.GetVirtualSize()[1] / self.Editor.GetScrollPixelsPerUnit()[1])) |
3356 self.RefreshVisibleElements(yp = yp) |
3364 self.RefreshVisibleElements(yp = yp) |
3357 self.Scroll(x, yp) |
3365 self.Scroll(x, yp) |
3358 if self.Debug: |
3366 |
3359 self.Refresh() |
|
3360 |
|
3361 def OnMoveWindow(self, event): |
3367 def OnMoveWindow(self, event): |
3362 self.RefreshScrollBars() |
3368 self.RefreshScrollBars() |
3363 self.RefreshVisibleElements() |
3369 self.RefreshVisibleElements() |
3364 event.Skip() |
3370 event.Skip() |
3365 |
3371 |