[ros-diffs] [mf] 18376: Fix from watz@gmx.net for Bugzilla Entry
862: When you resize the taskmanager window,
the history graph is not updated anymore. When the window is resized
back to default (smallest possible width) it
mf at svn.reactos.com
mf at svn.reactos.com
Sun Oct 9 17:04:31 CEST 2005
Fix from watz at gmx.net for Bugzilla Entry 862: When you resize the
taskmanager window, the history graph is not updated anymore. When the
window is resized back to default (smallest possible width) it
draws again.
Modified: trunk/reactos/subsys/system/taskmgr/graphctl.c
Modified: trunk/reactos/subsys/system/taskmgr/graphctl.h
_____
Modified: trunk/reactos/subsys/system/taskmgr/graphctl.c
--- trunk/reactos/subsys/system/taskmgr/graphctl.c 2005-10-09
13:05:49 UTC (rev 18375)
+++ trunk/reactos/subsys/system/taskmgr/graphctl.c 2005-10-09
15:04:18 UTC (rev 18376)
@@ -121,7 +121,7 @@
this->m_hWnd = hWnd;
GraphCtrl_Resize(this);
if (result != 0)
- GraphCtrl_InvalidateCtrl(this);
+ GraphCtrl_InvalidateCtrl(this, FALSE);
return result;
}
@@ -134,7 +134,7 @@
this->m_dRange = this->m_dUpperLimit -
this->m_dLowerLimit;
this->m_dVerticalFactor = (double)this->m_nPlotHeight /
this->m_dRange;
/* clear out the existing garbage, re-start with a clean plot */
- GraphCtrl_InvalidateCtrl(this);
+ GraphCtrl_InvalidateCtrl(this, FALSE);
}
#if 0
@@ -157,7 +157,7 @@
{
this->m_crGridColor = color;
/* clear out the existing garbage, re-start with a clean plot */
- GraphCtrl_InvalidateCtrl(this);
+ GraphCtrl_InvalidateCtrl(this, FALSE);
}
void GraphCtrl_SetPlotColor(TGraphCtrl* this, int plot, COLORREF color)
@@ -166,7 +166,7 @@
DeleteObject(this->m_penPlot[plot]);
this->m_penPlot[plot] = CreatePen(PS_SOLID, 0,
this->m_crPlotColor[plot]);
/* clear out the existing garbage, re-start with a clean plot */
- GraphCtrl_InvalidateCtrl(this);
+ GraphCtrl_InvalidateCtrl(this, FALSE);
}
void GraphCtrl_SetBackgroundColor(TGraphCtrl* this, COLORREF color)
@@ -175,10 +175,10 @@
DeleteObject(this->m_brushBack);
this->m_brushBack = CreateSolidBrush(this->m_crBackColor);
/* clear out the existing garbage, re-start with a clean plot */
- GraphCtrl_InvalidateCtrl(this);
+ GraphCtrl_InvalidateCtrl(this, FALSE);
}
-void GraphCtrl_InvalidateCtrl(TGraphCtrl* this)
+void GraphCtrl_InvalidateCtrl(TGraphCtrl* this, BOOL bResize)
{
/* There is a lot of drawing going on here - particularly in terms
of */
/* drawing the grid. Don't panic, this is all being drawn (only
once) */
@@ -203,6 +203,17 @@
this->m_bitmapGrid = CreateCompatibleBitmap(dc,
this->m_nClientWidth, this->m_nClientHeight);
this->m_bitmapOldGrid = (HBITMAP)SelectObject(this->m_dcGrid,
this->m_bitmapGrid);
}
+ else if(bResize)
+ {
+ // the size of the drawing area has changed
+ // so create a new bitmap of the appropriate size
+ if(this->m_bitmapGrid != NULL)
+ {
+ DeleteObject(this->m_bitmapGrid);
+ this->m_bitmapGrid = CreateCompatibleBitmap(dc,
this->m_nClientWidth, this->m_nClientHeight);
+ SelectObject(this->m_dcGrid, this->m_bitmapGrid);
+ }
+ }
SetBkColor(this->m_dcGrid, this->m_crBackColor);
@@ -324,6 +335,17 @@
this->m_bitmapPlot = CreateCompatibleBitmap(dc,
this->m_nClientWidth, this->m_nClientHeight);
this->m_bitmapOldPlot = (HBITMAP)SelectObject(this->m_dcPlot,
this->m_bitmapPlot);
}
+ else if(bResize)
+ {
+ // the size of the drawing area has changed
+ // so create a new bitmap of the appropriate size
+ if(this->m_bitmapPlot != NULL)
+ {
+ DeleteObject(this->m_bitmapPlot);
+ this->m_bitmapPlot = CreateCompatibleBitmap(dc,
this->m_nClientWidth, this->m_nClientHeight);
+ SelectObject(this->m_dcPlot, this->m_bitmapPlot);
+ }
+ }
/* make sure the plot bitmap is cleared */
SetBkColor(this->m_dcPlot, this->m_crBackColor);
@@ -591,12 +613,12 @@
if (hWnd == hPerformancePageMemUsageHistoryGraph)
{
GraphCtrl_Resize(&PerformancePageMemUsageHistoryGraph);
-
GraphCtrl_InvalidateCtrl(&PerformancePageMemUsageHistoryGraph);
+
GraphCtrl_InvalidateCtrl(&PerformancePageMemUsageHistoryGraph, TRUE);
}
if (hWnd == hPerformancePageCpuUsageHistoryGraph)
{
GraphCtrl_Resize(&PerformancePageCpuUsageHistoryGraph);
-
GraphCtrl_InvalidateCtrl(&PerformancePageCpuUsageHistoryGraph);
+
GraphCtrl_InvalidateCtrl(&PerformancePageCpuUsageHistoryGraph, TRUE);
}
return 0;
_____
Modified: trunk/reactos/subsys/system/taskmgr/graphctl.h
--- trunk/reactos/subsys/system/taskmgr/graphctl.h 2005-10-09
13:05:49 UTC (rev 18375)
+++ trunk/reactos/subsys/system/taskmgr/graphctl.h 2005-10-09
15:04:18 UTC (rev 18376)
@@ -93,7 +93,7 @@
UINT nID);
void GraphCtrl_Dispose(TGraphCtrl* this);
void GraphCtrl_DrawPoint(TGraphCtrl* this);
-void GraphCtrl_InvalidateCtrl(TGraphCtrl* this);
+void GraphCtrl_InvalidateCtrl(TGraphCtrl* this, BOOL bResize);
void GraphCtrl_Paint(TGraphCtrl* this, HWND hWnd, HDC dc);
void GraphCtrl_Reset(TGraphCtrl* this);
void GraphCtrl_Resize(TGraphCtrl* this);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20051009/6ebdb562/attachment.html
More information about the Ros-diffs
mailing list