[PATCH v2] taskmgr: Use different units depending on memory usage.

Vijay Kiran Kamuju infyquest at gmail.com
Wed Apr 3 07:17:48 CDT 2019


Use localizible strings
Based on patch from Michael Müller <michael at fds-team.de>
From: Vijay Kiran Kamuju <infyquest at gmail.com>
Signed-off-by: Vijay Kiran Kamuju <infyquest at gmail.com>
---
 programs/taskmgr/graph.c    |  22 +++++--
 programs/taskmgr/resource.h | 118 +++++++++++++++++++-----------------
 programs/taskmgr/taskmgr.rc |   3 +
 3 files changed, 83 insertions(+), 60 deletions(-)

diff --git a/programs/taskmgr/graph.c b/programs/taskmgr/graph.c
index 7e978e16f7a..1c35de1fe41 100644
--- a/programs/taskmgr/graph.c
+++ b/programs/taskmgr/graph.c
@@ -239,8 +239,8 @@ static void Graph_DrawMemUsageGraph(HDC hDC, HWND hWnd)
 /* Top bars that are "unused", i.e. are dark green, representing free memory */
     int                i;
 
-    static const WCHAR    wszFormat[] = {'%','d','K',0};
-    
+    static WCHAR wszMemUsage[8];
+
     /*
      * Get the client area rectangle
      */
@@ -257,8 +257,22 @@ static void Graph_DrawMemUsageGraph(HDC hDC, HWND hWnd)
     CommitChargeTotal = (ULONGLONG)PerfDataGetCommitChargeTotalK();
     CommitChargeLimit = (ULONGLONG)PerfDataGetCommitChargeLimitK();
 
-    swprintf(Text, wszFormat, (int)CommitChargeTotal);
-    
+    if (CommitChargeTotal > 1048576)
+    {
+        LoadStringW(hInst, IDS_MEMORYUSAGEGB, wszMemUsage, ARRAY_SIZE(wszMemUsage));
+        swprintf(Text, wszMemUsage, (float)CommitChargeTotal / 1048576);
+    }
+    else if (CommitChargeTotal > 1024)
+    {
+        LoadStringW(hInst, IDS_MEMORYUSAGEMB, wszMemUsage, ARRAY_SIZE(wszMemUsage));
+        swprintf(Text, wszMemUsage, (DWORD)CommitChargeTotal / 1024);
+    }
+    else
+    {
+        LoadStringW(hInst, IDS_MEMORYUSAGEKB, wszMemUsage, ARRAY_SIZE(wszMemUsage));
+        swprintf(Text, wszMemUsage, (DWORD)CommitChargeTotal);
+    }
+
     /*
      * Draw the font text onto the graph
      * The bottom 20 pixels are reserved for the text
diff --git a/programs/taskmgr/resource.h b/programs/taskmgr/resource.h
index 4153f66c329..29f0d7dac66 100644
--- a/programs/taskmgr/resource.h
+++ b/programs/taskmgr/resource.h
@@ -62,69 +62,72 @@
 #define IDC_MEMORYUSAGE                 1026
 #define IDC_TOTALS_THREAD_COUNT         1026
 #define IDC_CPU8                        1027
-#define IDC_MEMORYUSAGEDELTA            1027
+#define IDC_MEMORYUSAGEGB               1027
 #define IDC_TOTALS_PROCESS_COUNT        1027
 #define IDC_CPU9                        1028
-#define IDC_PEAKMEMORYUSAGE             1028
+#define IDC_MEMORYUSAGEKB               1028
 #define IDC_COMMIT_CHARGE_TOTAL         1028
 #define IDC_CPU10                       1029
-#define IDC_PAGEFAULTS                  1029
+#define IDC_MEMORYUSAGEMB               1029
 #define IDC_COMMIT_CHARGE_LIMIT         1029
 #define IDC_CPU11                       1030
-#define IDC_USEROBJECTS                 1030
+#define IDC_MEMORYUSAGEDELTA            1030
 #define IDC_COMMIT_CHARGE_PEAK          1030
 #define IDC_CPU12                       1031
-#define IDC_IOREADS                     1031
+#define IDC_PEAKMEMORYUSAGE             1031
 #define IDC_PHYSICAL_MEMORY_TOTAL       1031
 #define IDC_CPU13                       1032
-#define IDC_IOREADBYTES                 1032
+#define IDC_PAGEFAULTS                  1032
 #define IDC_PHYSICAL_MEMORY_AVAILABLE   1032
 #define IDC_CPU14                       1033
-#define IDC_SESSIONID                   1033
+#define IDC_USEROBJECTS                 1033
 #define IDC_PHYSICAL_MEMORY_SYSTEM_CACHE 1033
 #define IDC_CPU15                       1034
-#define IDC_USERNAME                    1034
+#define IDC_IOREADS                     1034
 #define IDC_KERNEL_MEMORY_TOTAL         1034
 #define IDC_CPU16                       1035
-#define IDC_PAGEFAULTSDELTA             1035
+#define IDC_IOREADBYTES                 1035
 #define IDC_KERNEL_MEMORY_PAGED         1035
 #define IDC_CPU17                       1036
-#define IDC_VIRTUALMEMORYSIZE           1036
+#define IDC_SESSIONID                   1036
 #define IDC_KERNEL_MEMORY_NONPAGED      1036
 #define IDC_CPU18                       1037
-#define IDC_PAGEDPOOL                   1037
+#define IDC_USERNAME                    1037
 #define IDC_TOTALS_FRAME                1037
 #define IDC_CPU19                       1038
-#define IDC_NONPAGEDPOOL                1038
+#define IDC_PAGEFAULTSDELTA             1038
 #define IDC_COMMIT_CHARGE_FRAME         1038
 #define IDC_CPU20                       1039
-#define IDC_BASEPRIORITY                1039
+#define IDC_VIRTUALMEMORYSIZE           1039
 #define IDC_KERNEL_MEMORY_FRAME         1039
 #define IDC_CPU21                       1040
-#define IDC_HANDLECOUNT                 1040
+#define IDC_PAGEDPOOL                   1040
 #define IDC_PHYSICAL_MEMORY_FRAME       1040
 #define IDC_CPU22                       1041
-#define IDC_THREADCOUNT                 1041
+#define IDC_NONPAGEDPOOL                1041
 #define IDC_CPU23                       1042
+#define IDC_BASEPRIORITY                1042
 #define IDC_CPU24                       1043
-#define IDC_GDIOBJECTS                  1043
+#define IDC_HANDLECOUNT                 1043
 #define IDC_CPU_USAGE_FRAME             1043
 #define IDC_CPU25                       1044
-#define IDC_IOWRITES                    1044
+#define IDC_THREADCOUNT                 1044
 #define IDC_MEM_USAGE_FRAME             1044
 #define IDC_CPU26                       1045
-#define IDC_IOWRITEBYTES                1045
+#define IDC_GDIOBJECTS                  1045
 #define IDC_CPU_USAGE_HISTORY_FRAME     1045
 #define IDC_CPU27                       1046
-#define IDC_IOOTHER                     1046
+#define IDC_IOWRITES                    1046
 #define IDC_MEMORY_USAGE_HISTORY_FRAME  1046
 #define IDC_CPU28                       1047
-#define IDC_IOOTHERBYTES                1047
+#define IDC_IOWRITEBYTES                1047
 #define IDC_CPU_USAGE_GRAPH             1047
 #define IDC_CPU29                       1048
+#define IDC_IOOTHER                     1048
 #define IDC_MEM_USAGE_GRAPH2            1048
 #define IDC_MEM_USAGE_GRAPH             1048
 #define IDC_CPU30                       1049
+#define IDC_IOOTHERBYTES                1049
 #define IDC_MEM_USAGE_HISTORY_GRAPH     1049
 #define IDC_CPU31                       1050
 #define IDC_CPU_USAGE_HISTORY_GRAPH     1050
@@ -207,42 +210,45 @@
 #define IDS_CPUUSAGE                    32834
 #define IDS_CPUTIME                     32835
 #define IDS_MEMORYUSAGE                 32836
-#define IDS_MEMORYUSAGEDELTA            32837
-#define IDS_PEAKMEMORYUSAGE             32838
-#define IDS_PAGEFAULTS                  32839
-#define IDS_USEROBJECTS                 32840
-#define IDS_IOREADS                     32841
-#define IDS_IOREADBYTES                 32842
-#define IDS_SESSIONID                   32843
-#define IDS_USERNAME                    32844
-#define IDS_PAGEFAULTSDELTA             32845
-#define IDS_VIRTUALMEMORYSIZE           32846
-#define IDS_PAGEDPOOL                   32847
-#define IDS_NONPAGEDPOOL                32848
-#define IDS_BASEPRIORITY                32849
-#define IDS_HANDLECOUNT                 32850
-#define IDS_THREADCOUNT                 32851
-#define IDS_GDIOBJECTS                  32852
-#define IDS_IOWRITES                    32853
-#define IDS_IOWRITEBYTES                32854
-#define IDS_IOOTHER                     32855
-#define IDS_IOOTHERBYTES                32856
-#define IDS_WARNING_TITLE               32857
-#define IDS_PRIORITY_CHANGE_MESSAGE     32858
-#define IDS_PRIORITY_UNABLE2CHANGE      32859
-#define IDS_TERMINATE_MESSAGE           32860
-#define IDS_TERMINATE_UNABLE2TERMINATE  32861
-#define IDS_DEBUG_MESSAGE               32862
-#define IDS_DEBUG_UNABLE2DEBUG          32863
-#define IDS_AFFINITY_ERROR_MESSAGE      32864
-#define IDS_AFFINITY_ERROR_TITLE        32865
-#define IDS_AFFINITY_UNABLE2ACCESS      32866
-#define IDS_SYSTEM_IDLE_PROCESS         32867
-#define IDS_APPLICATION_NOT_RESPONDING  32868
-#define IDS_APPLICATION_RUNNING         32869
-#define IDS_APPLICATION_TASK            32870
-#define IDS_APPLICATION_STATUS          32871
-#define IDS_DEBUG_CHANNEL               32872
+#define IDS_MEMORYUSAGEGB               32837
+#define IDS_MEMORYUSAGEKB               32838
+#define IDS_MEMORYUSAGEMB               32839
+#define IDS_MEMORYUSAGEDELTA            32840
+#define IDS_PEAKMEMORYUSAGE             32841
+#define IDS_PAGEFAULTS                  32842
+#define IDS_USEROBJECTS                 32843
+#define IDS_IOREADS                     32844
+#define IDS_IOREADBYTES                 32845
+#define IDS_SESSIONID                   32846
+#define IDS_USERNAME                    32847
+#define IDS_PAGEFAULTSDELTA             32848
+#define IDS_VIRTUALMEMORYSIZE           32849
+#define IDS_PAGEDPOOL                   32850
+#define IDS_NONPAGEDPOOL                32851
+#define IDS_BASEPRIORITY                32852
+#define IDS_HANDLECOUNT                 32853
+#define IDS_THREADCOUNT                 32854
+#define IDS_GDIOBJECTS                  32855
+#define IDS_IOWRITES                    32856
+#define IDS_IOWRITEBYTES                32857
+#define IDS_IOOTHER                     32858
+#define IDS_IOOTHERBYTES                32859
+#define IDS_WARNING_TITLE               32860
+#define IDS_PRIORITY_CHANGE_MESSAGE     32861
+#define IDS_PRIORITY_UNABLE2CHANGE      32862
+#define IDS_TERMINATE_MESSAGE           32863
+#define IDS_TERMINATE_UNABLE2TERMINATE  32864
+#define IDS_DEBUG_MESSAGE               32865
+#define IDS_DEBUG_UNABLE2DEBUG          32866
+#define IDS_AFFINITY_ERROR_MESSAGE      32867
+#define IDS_AFFINITY_ERROR_TITLE        32868
+#define IDS_AFFINITY_UNABLE2ACCESS      32869
+#define IDS_SYSTEM_IDLE_PROCESS         32870
+#define IDS_APPLICATION_NOT_RESPONDING  32871
+#define IDS_APPLICATION_RUNNING         32872
+#define IDS_APPLICATION_TASK            32873
+#define IDS_APPLICATION_STATUS          32874
+#define IDS_DEBUG_CHANNEL               32875
 #define IDC_STATIC                      -1
 
 /*
diff --git a/programs/taskmgr/taskmgr.rc b/programs/taskmgr/taskmgr.rc
index ffd0699f80d..71ae3a38cdb 100644
--- a/programs/taskmgr/taskmgr.rc
+++ b/programs/taskmgr/taskmgr.rc
@@ -273,6 +273,9 @@ BEGIN
     IDS_CPUUSAGE          "CPU"
     IDS_CPUTIME           "CPU Time"
     IDS_MEMORYUSAGE       "Mem Usage"
+    IDS_MEMORYUSAGEGB     "%.1f GB"
+    IDS_MEMORYUSAGEKB     "%u KB"
+    IDS_MEMORYUSAGEMB     "%u MB"
     IDS_MEMORYUSAGEDELTA  "Mem Delta"
     IDS_PEAKMEMORYUSAGE   "Peak Mem Usage"
     IDS_PAGEFAULTS        "Page Faults"
-- 
2.17.0




More information about the wine-devel mailing list