Loading change_log.txt +8 −2 Original line number Original line Diff line number Diff line Loading @@ -5,6 +5,13 @@ Started 2007-June-11 Please add newer entries at the top, list the date and your name with Please add newer entries at the top, list the date and your name with email address. email address. 2008-Mar-31 UPDATE Dick Hollenbeck <dick@softplc.com> ================================================================================ +all Tweaked class MsgPanel so that the screen drawing only happens from its OnPaint() function. 2008-Mar-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> 2008-Mar-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> ================================================================================ ================================================================================ +eeschema +eeschema Loading @@ -16,7 +23,6 @@ email address. Added comments in gestfich.cpp to explain the default paths used by kicad to find help files and lib files Added comments in gestfich.cpp to explain the default paths used by kicad to find help files and lib files 2008-Mar-30 UPDATE Jonas Diemer <diemer-at-gmx.de> 2008-Mar-30 UPDATE Jonas Diemer <diemer-at-gmx.de> ================================================================================ ================================================================================ +eeschema +eeschema Loading common/msgpanel.cpp +40 −48 Original line number Original line Diff line number Diff line Loading @@ -29,12 +29,12 @@ WinEDA_MsgPanel::WinEDA_MsgPanel( WinEDA_DrawFrame* parent, int id, { { m_Parent = parent; m_Parent = parent; SetFont( *g_MsgFont ); SetFont( *g_MsgFont ); m_last_x = 0; } } WinEDA_MsgPanel::~WinEDA_MsgPanel() WinEDA_MsgPanel::~WinEDA_MsgPanel() { { m_Items.clear(); } } Loading @@ -44,7 +44,7 @@ void WinEDA_MsgPanel::OnPaint( wxPaintEvent& event ) { { wxPaintDC dc( this ); wxPaintDC dc( this ); //EraseMsgBox( &dc ); erase( &dc ); dc.SetBackground( *wxBLACK_BRUSH ); dc.SetBackground( *wxBLACK_BRUSH ); dc.SetBackgroundMode( wxSOLID ); dc.SetBackgroundMode( wxSOLID ); Loading Loading @@ -77,36 +77,33 @@ void WinEDA_MsgPanel::Affiche_1_Parametre( int pos_X, const wxString& texte_H, * color = couleur d'affichage * color = couleur d'affichage */ */ { { static int old_pos_X; wxPoint pos; wxPoint pos; wxSize FontSizeInPixels, DrawSize; wxSize drawSize = GetClientSize(); wxClientDC dc( this ); DrawSize = GetClientSize(); dc.SetBackground( *wxBLACK_BRUSH ); // Get size of the font dc.SetBackgroundMode( wxSOLID ); wxSize fontSizeInPixels; { dc.SetTextBackground( GetBackgroundColour() ); wxClientDC dc( this ); dc.SetFont( *g_MsgFont ); dc.SetFont( *g_MsgFont ); dc.GetTextExtent( wxT( "W" ), &FontSizeInPixels.x, &FontSizeInPixels.y ); dc.GetTextExtent( wxT( "W" ), &fontSizeInPixels.x, &fontSizeInPixels.y ); } // destroy wxClientDC ASAP if( pos_X >= 0 ) if( pos_X >= 0 ) { { old_pos_X = pos.x = pos_X * (FontSizeInPixels.x + 2); m_last_x = pos.x = pos_X * (fontSizeInPixels.x + 2); } } else else pos.x = old_pos_X; pos.x = m_last_x; MsgItem item; MsgItem item; item.m_X = pos.x; item.m_X = pos.x; item.m_UpperY = (DrawSize.y / 2) - FontSizeInPixels.y; item.m_UpperY = (drawSize.y / 2) - fontSizeInPixels.y; item.m_LowerY = DrawSize.y - FontSizeInPixels.y; item.m_LowerY = drawSize.y - fontSizeInPixels.y; item.m_UpperText = texte_H; item.m_UpperText = texte_H; item.m_LowerText = texte_L; item.m_LowerText = texte_L; Loading Loading @@ -137,7 +134,7 @@ void WinEDA_MsgPanel::Affiche_1_Parametre( int pos_X, const wxString& texte_H, m_Items.push_back( item ); m_Items.push_back( item ); } } showItem( dc, item ); Refresh(); } } Loading Loading @@ -168,29 +165,25 @@ void WinEDA_MsgPanel::showItem( wxDC& dc, const MsgItem& aItem ) /****************************************/ /****************************************/ void WinEDA_MsgPanel::EraseMsgBox() void WinEDA_MsgPanel::EraseMsgBox() /****************************************/ /****************************************/ /* Effacement de la fenetre d'affichage des messages de bas d'ecran */ { { wxClientDC dc( this ); m_Items.clear(); m_last_x = 0; EraseMsgBox( &dc ); Refresh(); } } /*******************************************/ /*******************************************/ void WinEDA_MsgPanel::EraseMsgBox( wxDC* DC ) void WinEDA_MsgPanel::erase( wxDC* DC ) /*******************************************/ /*******************************************/ { { wxSize size; wxColor color; wxPen pen; wxPen pen; wxBrush brush; wxBrush brush; size = GetClientSize(); wxSize size = GetClientSize(); color = GetBackgroundColour(); wxColor color = GetBackgroundColour(); pen.SetColour( color ); pen.SetColour( color ); brush.SetColour( color ); brush.SetColour( color ); brush.SetStyle( wxSOLID ); brush.SetStyle( wxSOLID ); Loading @@ -198,9 +191,8 @@ void WinEDA_MsgPanel::EraseMsgBox( wxDC* DC ) DC->SetBrush( brush ); DC->SetBrush( brush ); DC->DrawRectangle( 0, 0, size.x, size.y ); DC->DrawRectangle( 0, 0, size.x, size.y ); DC->SetBrush( wxNullBrush ); DC->SetBrush( wxNullBrush ); DC->SetPen( wxNullPen ); DC->SetPen( wxNullPen ); m_Items.clear(); } } include/wxstruct.h +7 −2 Original line number Original line Diff line number Diff line Loading @@ -192,6 +192,8 @@ public: class WinEDA_DrawFrame : public WinEDA_BasicFrame class WinEDA_DrawFrame : public WinEDA_BasicFrame { { public: public: WinEDA_DrawPanel* DrawPanel; // Draw area WinEDA_DrawPanel* DrawPanel; // Draw area WinEDA_MsgPanel* MsgPanel; // Zone d'affichage de caracteristiques WinEDA_MsgPanel* MsgPanel; // Zone d'affichage de caracteristiques Loading Loading @@ -541,9 +543,13 @@ class WinEDA_MsgPanel : public wxPanel { { protected: protected: std::vector<MsgItem> m_Items; std::vector<MsgItem> m_Items; int m_last_x; ///< the last used x coordinate void showItem( wxDC& dc, const MsgItem& aItem ); void showItem( wxDC& dc, const MsgItem& aItem ); void erase( wxDC* DC ); public: public: WinEDA_DrawFrame* m_Parent; WinEDA_DrawFrame* m_Parent; int m_BgColor; // couleur de fond int m_BgColor; // couleur de fond Loading @@ -556,7 +562,6 @@ public: void OnPaint( wxPaintEvent& event ); void OnPaint( wxPaintEvent& event ); void EraseMsgBox(); void EraseMsgBox(); void EraseMsgBox( wxDC* DC ); void Affiche_1_Parametre( int pos_X, const wxString& texte_H, void Affiche_1_Parametre( int pos_X, const wxString& texte_H, const wxString& texte_L, int color ); const wxString& texte_L, int color ); Loading Loading
change_log.txt +8 −2 Original line number Original line Diff line number Diff line Loading @@ -5,6 +5,13 @@ Started 2007-June-11 Please add newer entries at the top, list the date and your name with Please add newer entries at the top, list the date and your name with email address. email address. 2008-Mar-31 UPDATE Dick Hollenbeck <dick@softplc.com> ================================================================================ +all Tweaked class MsgPanel so that the screen drawing only happens from its OnPaint() function. 2008-Mar-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> 2008-Mar-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> ================================================================================ ================================================================================ +eeschema +eeschema Loading @@ -16,7 +23,6 @@ email address. Added comments in gestfich.cpp to explain the default paths used by kicad to find help files and lib files Added comments in gestfich.cpp to explain the default paths used by kicad to find help files and lib files 2008-Mar-30 UPDATE Jonas Diemer <diemer-at-gmx.de> 2008-Mar-30 UPDATE Jonas Diemer <diemer-at-gmx.de> ================================================================================ ================================================================================ +eeschema +eeschema Loading
common/msgpanel.cpp +40 −48 Original line number Original line Diff line number Diff line Loading @@ -29,12 +29,12 @@ WinEDA_MsgPanel::WinEDA_MsgPanel( WinEDA_DrawFrame* parent, int id, { { m_Parent = parent; m_Parent = parent; SetFont( *g_MsgFont ); SetFont( *g_MsgFont ); m_last_x = 0; } } WinEDA_MsgPanel::~WinEDA_MsgPanel() WinEDA_MsgPanel::~WinEDA_MsgPanel() { { m_Items.clear(); } } Loading @@ -44,7 +44,7 @@ void WinEDA_MsgPanel::OnPaint( wxPaintEvent& event ) { { wxPaintDC dc( this ); wxPaintDC dc( this ); //EraseMsgBox( &dc ); erase( &dc ); dc.SetBackground( *wxBLACK_BRUSH ); dc.SetBackground( *wxBLACK_BRUSH ); dc.SetBackgroundMode( wxSOLID ); dc.SetBackgroundMode( wxSOLID ); Loading Loading @@ -77,36 +77,33 @@ void WinEDA_MsgPanel::Affiche_1_Parametre( int pos_X, const wxString& texte_H, * color = couleur d'affichage * color = couleur d'affichage */ */ { { static int old_pos_X; wxPoint pos; wxPoint pos; wxSize FontSizeInPixels, DrawSize; wxSize drawSize = GetClientSize(); wxClientDC dc( this ); DrawSize = GetClientSize(); dc.SetBackground( *wxBLACK_BRUSH ); // Get size of the font dc.SetBackgroundMode( wxSOLID ); wxSize fontSizeInPixels; { dc.SetTextBackground( GetBackgroundColour() ); wxClientDC dc( this ); dc.SetFont( *g_MsgFont ); dc.SetFont( *g_MsgFont ); dc.GetTextExtent( wxT( "W" ), &FontSizeInPixels.x, &FontSizeInPixels.y ); dc.GetTextExtent( wxT( "W" ), &fontSizeInPixels.x, &fontSizeInPixels.y ); } // destroy wxClientDC ASAP if( pos_X >= 0 ) if( pos_X >= 0 ) { { old_pos_X = pos.x = pos_X * (FontSizeInPixels.x + 2); m_last_x = pos.x = pos_X * (fontSizeInPixels.x + 2); } } else else pos.x = old_pos_X; pos.x = m_last_x; MsgItem item; MsgItem item; item.m_X = pos.x; item.m_X = pos.x; item.m_UpperY = (DrawSize.y / 2) - FontSizeInPixels.y; item.m_UpperY = (drawSize.y / 2) - fontSizeInPixels.y; item.m_LowerY = DrawSize.y - FontSizeInPixels.y; item.m_LowerY = drawSize.y - fontSizeInPixels.y; item.m_UpperText = texte_H; item.m_UpperText = texte_H; item.m_LowerText = texte_L; item.m_LowerText = texte_L; Loading Loading @@ -137,7 +134,7 @@ void WinEDA_MsgPanel::Affiche_1_Parametre( int pos_X, const wxString& texte_H, m_Items.push_back( item ); m_Items.push_back( item ); } } showItem( dc, item ); Refresh(); } } Loading Loading @@ -168,29 +165,25 @@ void WinEDA_MsgPanel::showItem( wxDC& dc, const MsgItem& aItem ) /****************************************/ /****************************************/ void WinEDA_MsgPanel::EraseMsgBox() void WinEDA_MsgPanel::EraseMsgBox() /****************************************/ /****************************************/ /* Effacement de la fenetre d'affichage des messages de bas d'ecran */ { { wxClientDC dc( this ); m_Items.clear(); m_last_x = 0; EraseMsgBox( &dc ); Refresh(); } } /*******************************************/ /*******************************************/ void WinEDA_MsgPanel::EraseMsgBox( wxDC* DC ) void WinEDA_MsgPanel::erase( wxDC* DC ) /*******************************************/ /*******************************************/ { { wxSize size; wxColor color; wxPen pen; wxPen pen; wxBrush brush; wxBrush brush; size = GetClientSize(); wxSize size = GetClientSize(); color = GetBackgroundColour(); wxColor color = GetBackgroundColour(); pen.SetColour( color ); pen.SetColour( color ); brush.SetColour( color ); brush.SetColour( color ); brush.SetStyle( wxSOLID ); brush.SetStyle( wxSOLID ); Loading @@ -198,9 +191,8 @@ void WinEDA_MsgPanel::EraseMsgBox( wxDC* DC ) DC->SetBrush( brush ); DC->SetBrush( brush ); DC->DrawRectangle( 0, 0, size.x, size.y ); DC->DrawRectangle( 0, 0, size.x, size.y ); DC->SetBrush( wxNullBrush ); DC->SetBrush( wxNullBrush ); DC->SetPen( wxNullPen ); DC->SetPen( wxNullPen ); m_Items.clear(); } }
include/wxstruct.h +7 −2 Original line number Original line Diff line number Diff line Loading @@ -192,6 +192,8 @@ public: class WinEDA_DrawFrame : public WinEDA_BasicFrame class WinEDA_DrawFrame : public WinEDA_BasicFrame { { public: public: WinEDA_DrawPanel* DrawPanel; // Draw area WinEDA_DrawPanel* DrawPanel; // Draw area WinEDA_MsgPanel* MsgPanel; // Zone d'affichage de caracteristiques WinEDA_MsgPanel* MsgPanel; // Zone d'affichage de caracteristiques Loading Loading @@ -541,9 +543,13 @@ class WinEDA_MsgPanel : public wxPanel { { protected: protected: std::vector<MsgItem> m_Items; std::vector<MsgItem> m_Items; int m_last_x; ///< the last used x coordinate void showItem( wxDC& dc, const MsgItem& aItem ); void showItem( wxDC& dc, const MsgItem& aItem ); void erase( wxDC* DC ); public: public: WinEDA_DrawFrame* m_Parent; WinEDA_DrawFrame* m_Parent; int m_BgColor; // couleur de fond int m_BgColor; // couleur de fond Loading @@ -556,7 +562,6 @@ public: void OnPaint( wxPaintEvent& event ); void OnPaint( wxPaintEvent& event ); void EraseMsgBox(); void EraseMsgBox(); void EraseMsgBox( wxDC* DC ); void Affiche_1_Parametre( int pos_X, const wxString& texte_H, void Affiche_1_Parametre( int pos_X, const wxString& texte_H, const wxString& texte_L, int color ); const wxString& texte_L, int color ); Loading