Commit 78be716b authored by dickelbeck's avatar dickelbeck

testing

parent f966e8a4
...@@ -18,17 +18,17 @@ ...@@ -18,17 +18,17 @@
// Events used by WinEDA_DrawPanel // Events used by WinEDA_DrawPanel
BEGIN_EVENT_TABLE( WinEDA_DrawPanel, EDA_DRAW_PANEL ) BEGIN_EVENT_TABLE( WinEDA_DrawPanel, EDA_DRAW_PANEL )
EVT_LEAVE_WINDOW( WinEDA_DrawPanel::OnMouseLeaving ) EVT_LEAVE_WINDOW( WinEDA_DrawPanel::OnMouseLeaving )
EVT_MOUSE_EVENTS( WinEDA_DrawPanel::OnMouseEvent ) EVT_MOUSE_EVENTS( WinEDA_DrawPanel::OnMouseEvent )
EVT_CHAR( WinEDA_DrawPanel::OnKeyEvent ) EVT_CHAR( WinEDA_DrawPanel::OnKeyEvent )
EVT_CHAR_HOOK( WinEDA_DrawPanel::OnKeyEvent ) EVT_CHAR_HOOK( WinEDA_DrawPanel::OnKeyEvent )
EVT_PAINT( WinEDA_DrawPanel::OnPaint ) EVT_PAINT( WinEDA_DrawPanel::OnPaint )
EVT_SIZE( WinEDA_DrawPanel::OnSize ) EVT_SIZE( WinEDA_DrawPanel::OnSize )
EVT_ERASE_BACKGROUND( WinEDA_DrawPanel::OnEraseBackground ) EVT_ERASE_BACKGROUND( WinEDA_DrawPanel::OnEraseBackground )
EVT_SCROLLWIN( WinEDA_DrawPanel::OnScroll ) EVT_SCROLLWIN( WinEDA_DrawPanel::OnScroll )
EVT_ACTIVATE( WinEDA_DrawPanel::OnActivate ) EVT_ACTIVATE( WinEDA_DrawPanel::OnActivate )
EVT_MENU_RANGE( ID_POPUP_ZOOM_START_RANGE, ID_POPUP_ZOOM_END_RANGE, EVT_MENU_RANGE( ID_POPUP_ZOOM_START_RANGE, ID_POPUP_ZOOM_END_RANGE,
WinEDA_DrawPanel::Process_Popup_Zoom ) WinEDA_DrawPanel::Process_Popup_Zoom )
END_EVENT_TABLE() END_EVENT_TABLE()
...@@ -220,9 +220,7 @@ wxPoint WinEDA_DrawPanel::CursorRealPosition( const wxPoint& ScreenPos ) ...@@ -220,9 +220,7 @@ wxPoint WinEDA_DrawPanel::CursorRealPosition( const wxPoint& ScreenPos )
* @param ScreenPos = absolute position in pixels * @param ScreenPos = absolute position in pixels
*/ */
{ {
wxPoint curpos; wxPoint curpos = GetScreen()->CursorRealPosition( ScreenPos );
curpos = GetScreen()->CursorRealPosition( ScreenPos );
return curpos; return curpos;
} }
...@@ -445,7 +443,9 @@ void WinEDA_DrawPanel::SetBoundaryBox() ...@@ -445,7 +443,9 @@ void WinEDA_DrawPanel::SetBoundaryBox()
GetViewStart( &org.x, &org.y ); GetViewStart( &org.x, &org.y );
GetScrollPixelsPerUnit( &ii, &jj ); GetScrollPixelsPerUnit( &ii, &jj );
org.x *= ii; org.y *= jj; org.x *= ii;
org.y *= jj;
Screen->m_StartVisu = org; Screen->m_StartVisu = org;
m_ClipBox.SetOrigin( org ); m_ClipBox.SetOrigin( org );
...@@ -484,12 +484,92 @@ void WinEDA_DrawPanel::EraseScreen( wxDC* DC ) ...@@ -484,12 +484,92 @@ void WinEDA_DrawPanel::EraseScreen( wxDC* DC )
/***************************************************/ /***************************************************/
void WinEDA_DrawPanel::OnPaint( wxPaintEvent& event ) void WinEDA_DrawPanel::OnPaint( wxPaintEvent& event )
/***************************************************/ /***************************************************/
#if 1 // new code without multiple calls to ReDraw()
{ {
wxPaintDC paintDC( this ); wxPaintDC paintDC( this );
EDA_Rect tmp; EDA_Rect tmp;
wxRect PaintClipBox; wxRect PaintClipBox;
wxPoint org; wxPoint org;
PrepareGraphicContext( &paintDC );
tmp = m_ClipBox;
org = m_ClipBox.GetOrigin();
static int counter;
wxRegion upd = GetUpdateRegion(); // get the update rect list
++counter;
PaintClipBox = upd.GetBox();
#if 1 && defined(DEBUG)
printf( "PaintClipBox[%d]=(%d, %d, %d, %d) org=(%d, %d) m_ClipBox=(%d, %d, %d, %d)\n",
counter,
PaintClipBox.x,
PaintClipBox.y,
PaintClipBox.width,
PaintClipBox.height,
org.x, org.y,
m_ClipBox.m_Pos.x, m_ClipBox.m_Pos.y,
m_ClipBox.m_Size.x, m_ClipBox.m_Size.y
);
#endif
PaintClipBox.x += org.x;
PaintClipBox.y += org.y;
#ifdef WX_ZOOM
m_ClipBox.m_Pos.x = PaintClipBox.x * GetZoom();
m_ClipBox.m_Pos.y = PaintClipBox.y * GetZoom();
m_ClipBox.m_Size.x = PaintClipBox.width * GetZoom();
m_ClipBox.m_Size.y = PaintClipBox.height * GetZoom();
#else
m_ClipBox.SetX( PaintClipBox.GetX() );
m_ClipBox.SetY( PaintClipBox.GetY() );
m_ClipBox.SetWidth( PaintClipBox.GetWidth() );
m_ClipBox.SetHeight( PaintClipBox.GetHeight() );
#endif
#if 1 && defined(DEBUG)
printf( "PaintClipBox[%d]=(%d, %d, %d, %d) org=(%d, %d) m_ClipBox=(%d, %d, %d, %d)\n",
counter,
PaintClipBox.x,
PaintClipBox.y,
PaintClipBox.width,
PaintClipBox.height,
org.x, org.y,
m_ClipBox.m_Pos.x, m_ClipBox.m_Pos.y,
m_ClipBox.m_Size.x, m_ClipBox.m_Size.y
);
#endif
PaintClipBox = m_ClipBox;
wxDCClipper* dcclip = new wxDCClipper( paintDC, PaintClipBox );
ReDraw( &paintDC, TRUE );
delete dcclip;
m_ClipBox = tmp;
event.Skip();
}
#else // old code
{
wxPaintDC paintDC( this );
EDA_Rect tmp;
wxRect PaintClipBox;
wxPoint org;
static int counter;
++counter;
PrepareGraphicContext( &paintDC ); PrepareGraphicContext( &paintDC );
tmp = m_ClipBox; tmp = m_ClipBox;
...@@ -505,6 +585,15 @@ void WinEDA_DrawPanel::OnPaint( wxPaintEvent& event ) ...@@ -505,6 +585,15 @@ void WinEDA_DrawPanel::OnPaint( wxPaintEvent& event )
PaintClipBox.x += org.x; PaintClipBox.x += org.x;
PaintClipBox.y += org.y; PaintClipBox.y += org.y;
#if 0
printf( "PaintClipBox[%d]=(%d, %d, %d, %d)\n",
counter,
PaintClipBox.x,
PaintClipBox.y,
PaintClipBox.width,
PaintClipBox.height );
#endif
#ifdef WX_ZOOM #ifdef WX_ZOOM
m_ClipBox.m_Pos.x = PaintClipBox.x * GetZoom(); m_ClipBox.m_Pos.x = PaintClipBox.x * GetZoom();
...@@ -531,6 +620,8 @@ void WinEDA_DrawPanel::OnPaint( wxPaintEvent& event ) ...@@ -531,6 +620,8 @@ void WinEDA_DrawPanel::OnPaint( wxPaintEvent& event )
event.Skip(); event.Skip();
} }
#endif
/****************************************************/ /****************************************************/
void WinEDA_DrawPanel::ReDraw( wxDC* DC, bool erasebg ) void WinEDA_DrawPanel::ReDraw( wxDC* DC, bool erasebg )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment