`CodeView2`: use constracting color when drawing text that differs jv
authorJan Vrany <jan.vrany@labware.com>
Fri, 03 Sep 2021 22:28:18 +0100
branchjv
changeset 19604 b02a518e2c70
parent 19603 e1fd0c06dfa6
child 19605 623b8047f9ad
`CodeView2`: use constracting color when drawing text that differs This helps to make it usable for dark themes. Really, the theme itself shall define these colors but this gives good defaults until theming in diff tools is fixed.
Tools__ChangeSetDiffTool.st
Tools__CodeView2.st
--- a/Tools__ChangeSetDiffTool.st	Fri Jul 09 07:02:04 2021 +0100
+++ b/Tools__ChangeSetDiffTool.st	Fri Sep 03 22:28:18 2021 +0100
@@ -1,8 +1,7 @@
-"{ Encoding: utf8 }"
-
 "
  Copyright (c) 2007-2010 Jan Vrany
  Copyright (c) 2009-2010 eXept Software AG
+ Copyright (c) 2021 LabWare
 
  Permission is hereby granted, free of charge, to any person
  obtaining a copy of this software and associated documentation
@@ -62,6 +61,7 @@
 "
  Copyright (c) 2007-2010 Jan Vrany
  Copyright (c) 2009-2010 eXept Software AG
+ Copyright (c) 2021 LabWare
 
  Permission is hereby granted, free of charge, to any person
  obtaining a copy of this software and associated documentation
@@ -776,59 +776,63 @@
 
     ^
      #(FullSpec
-	name: mergeALabelSpec
-	window:
+        name: mergeALabelSpec
+        window:
        (WindowSpec
-	  label: 'Version A'
-	  name: 'Version A'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 300 30)
-	  backgroundColor: (Color 79.6078431372549 90.5882352941177 69.4117647058823)
-	  forceRecursiveBackground: true
-	)
-	component:
+          label: 'Version A'
+          name: 'Version A'
+          min: (Point 10 10)
+          bounds: (Rectangle 0 0 300 30)
+          backgroundColor: (Color 79.6078431372549 90.5882352941177 69.4117647058823)
+          forceRecursiveBackground: true
+        )
+        component:
        (SpecCollection
-	  collection: (
-	   (LabelSpec
-	      label: 'mergeDiff3BaseToAArrow30x30'
-	      name: 'Label1'
-	      layout: (LayoutFrame 0 0 0 0 30 0 0 1)
-	      hasCharacterOrientedLabel: false
-	      translateLabel: true
-	    )
-	   (LabelSpec
-	      label: 'versionA24x24'
-	      name: 'VersionAIcon'
-	      layout: (LayoutFrame 30 0 -12 0.5 57 0 12 0.5)
-	      hasCharacterOrientedLabel: false
-	      translateLabel: true
-	    )
-	   (LabelSpec
-	      label: 'mergeDiff3AToMergedArrow30x30'
-	      name: 'Label2'
-	      layout: (LayoutFrame 60 0 0 0 90 0 0 1)
-	      hasCharacterOrientedLabel: false
-	      translateLabel: true
-	    )
-	   (LabelSpec
-	      label: 'Version A'
-	      name: 'VersionALabel'
-	      layout: (LayoutFrame 90 0 0 0 0 1 0 1)
-	      translateLabel: true
-	      labelChannel: versionALabelHolder
-	      resizeForLabel: true
-	      adjust: left
-	    )
-	   (LabelSpec
-	      label: '(A)'
-	      name: 'ALabel'
-	      layout: (LayoutFrame -30 1 0 0 0 1 0 1)
-	      translateLabel: true
-	    )
-	   )
-
-	)
+          collection: (
+           (LabelSpec
+              label: 'mergeDiff3BaseToAArrow30x30'
+              name: 'Label1'
+              layout: (LayoutFrame 0 0 0 0 30 0 0 1)
+              hasCharacterOrientedLabel: false
+              translateLabel: true
+            )
+           (LabelSpec
+              label: 'versionA24x24'
+              name: 'VersionAIcon'
+              layout: (LayoutFrame 30 0 -12 0.5 57 0 12 0.5)
+              hasCharacterOrientedLabel: false
+              translateLabel: true
+            )
+           (LabelSpec
+              label: 'mergeDiff3AToMergedArrow30x30'
+              name: 'Label2'
+              layout: (LayoutFrame 60 0 0 0 90 0 0 1)
+              hasCharacterOrientedLabel: false
+              translateLabel: true
+            )
+           (LabelSpec
+              label: 'Version A'
+              name: 'VersionALabel'
+              layout: (LayoutFrame 90 0 0 0 0 1 0 1)
+              translateLabel: true
+              labelChannel: versionALabelHolder
+              foregroundColor: (Color 0.0 0.0 0.0)
+              resizeForLabel: true
+              adjust: left
+            )
+           (LabelSpec
+              label: '(A)'
+              name: 'ALabel'
+              layout: (LayoutFrame -30 1 0 0 0 1 0 1)
+              translateLabel: true
+              foregroundColor: (Color 0.0 0.0 0.0)
+            )
+           )
+
+        )
       )
+
+    "Modified: / 19-08-2021 / 23:26:43 / Jan Vrany <jan.vrany@labware.com>"
 !
 
 mergeBLabelSpec
@@ -847,63 +851,66 @@
 
     ^
      #(FullSpec
-	name: versionBLabelSpec
-	window:
+        name: versionBLabelSpec
+        window:
        (WindowSpec
-	  label: 'Version B'
-	  name: 'Version B'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 300 30)
-	  backgroundColor: (Color 100.0 90.5882352941177 60.0)
-	  forceRecursiveBackground: true
-	)
-	component:
+          label: 'Version B'
+          name: 'Version B'
+          min: (Point 10 10)
+          bounds: (Rectangle 0 0 300 30)
+          backgroundColor: (Color 100.0 90.5882352941177 60.0)
+          forceRecursiveBackground: true
+        )
+        component:
        (SpecCollection
-	  collection: (
-	    (LabelSpec
-	      label: 'mergeDiff3BaseToBArrow30x30'
-	      name: 'Label1'
-	      layout: (LayoutFrame 0 0 0 0 30 0 0 1)
-	      hasCharacterOrientedLabel: false
-	      translateLabel: true
-	    )
-	   (LabelSpec
-	      label: 'versionB24x24'
-	      name: 'VersionBIcon'
-	      layout: (LayoutFrame 30 0 -12 0.5 57 0 12 0.5)
-	      hasCharacterOrientedLabel: false
-	      translateLabel: true
-	    )
-	    (LabelSpec
-	      label: 'mergeDiff3BToMergedArrow30x30'
-	      name: 'Label2'
-	      layout: (LayoutFrame 60 0 0 0 90 0 0 1)
-	      hasCharacterOrientedLabel: false
-	      translateLabel: true
-	    )
-	   (LabelSpec
-	      label: 'Version B'
-	      name: 'VersionBLabel'
-	      layout: (LayoutFrame 90 0 0 0 167 0 0 1)
-	      translateLabel: true
-	      labelChannel: versionBLabelHolder
-	      resizeForLabel: true
-	      adjust: left
-	      useDynamicPreferredWidth: true
-	      usePreferredWidth: true
-	    )
-	     (LabelSpec
-	     label: '(B)'
-	     name: 'BLabel'
-	     layout: (LayoutFrame -30 1 0 0 0 1 0 1)
-	     translateLabel: true
-	    )
-	   )
-
-	)
+          collection: (
+            (LabelSpec
+              label: 'mergeDiff3BaseToBArrow30x30'
+              name: 'Label1'
+              layout: (LayoutFrame 0 0 0 0 30 0 0 1)
+              hasCharacterOrientedLabel: false
+              translateLabel: true
+            )
+           (LabelSpec
+              label: 'versionB24x24'
+              name: 'VersionBIcon'
+              layout: (LayoutFrame 30 0 -12 0.5 57 0 12 0.5)
+              hasCharacterOrientedLabel: false
+              translateLabel: true
+            )
+            (LabelSpec
+              label: 'mergeDiff3BToMergedArrow30x30'
+              name: 'Label2'
+              layout: (LayoutFrame 60 0 0 0 90 0 0 1)
+              hasCharacterOrientedLabel: false
+              translateLabel: true
+            )
+           (LabelSpec
+              label: 'Version B'
+              name: 'VersionBLabel'
+              layout: (LayoutFrame 90 0 0 0 167 0 0 1)
+              translateLabel: true
+              labelChannel: versionBLabelHolder
+              resizeForLabel: true
+              adjust: left
+              useDynamicPreferredWidth: true
+              usePreferredWidth: true
+              foregroundColor: (Color 0.0 0.0 0.0)
+            )
+             (LabelSpec
+             label: '(B)'
+             name: 'BLabel'
+             layout: (LayoutFrame -30 1 0 0 0 1 0 1)
+             translateLabel: true
+             foregroundColor: (Color 0.0 0.0 0.0)
+            )
+           )
+
+        )
       )
 
     "Created: / 17-01-2013 / 23:44:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 19-08-2021 / 23:26:54 / Jan Vrany <jan.vrany@labware.com>"
 !
 
 mergeBaseLabelSpec
@@ -922,49 +929,52 @@
 
     ^
      #(FullSpec
-	name: versionBaseLabelSpec
-	window:
+        name: versionBaseLabelSpec
+        window:
        (WindowSpec
-	  label: 'Version Base'
-	  name: 'Version Base'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 300 30)
-	  backgroundColor: (Color 67.843137254902 87.843137254902 96.4705882352941)
-	  forceRecursiveBackground: true
-	)
-	component:
+          label: 'Version Base'
+          name: 'Version Base'
+          min: (Point 10 10)
+          bounds: (Rectangle 0 0 300 30)
+          backgroundColor: (Color 67.843137254902 87.843137254902 96.4705882352941)
+          forceRecursiveBackground: true
+        )
+        component:
        (SpecCollection
-	  collection: (
-	   (LabelSpec
-	      label: 'versionBase24x24'
-	      name: 'VersionBIcon'
-	      layout: (LayoutFrame 0 0 -12 0.5 27 0 12 0.5)
-	      hasCharacterOrientedLabel: false
-	      translateLabel: true
-	    )
-	   (LabelSpec
-	      label: 'Version B'
-	      name: 'VersionBLabel'
-	      layout: (LayoutFrame 90 0 0 0 190 0 0 1)
-	      translateLabel: true
-	      labelChannel: versionBaseLabelHolder
-	      resizeForLabel: true
-	      adjust: left
-	      useDynamicPreferredWidth: true
-	      usePreferredWidth: true
-	    )
-	   (LabelSpec
-	      label: '(Base)'
-	      name: 'BaseLabel'
-	      layout: (LayoutFrame -50 1 0 0 0 1 0 1)
-	      translateLabel: true
-	    )
-	   )
-
-	)
+          collection: (
+           (LabelSpec
+              label: 'versionBase24x24'
+              name: 'VersionBIcon'
+              layout: (LayoutFrame 0 0 -12 0.5 27 0 12 0.5)
+              hasCharacterOrientedLabel: false
+              translateLabel: true
+            )
+           (LabelSpec
+              label: 'Version B'
+              name: 'VersionBLabel'
+              layout: (LayoutFrame 90 0 0 0 190 0 0 1)
+              translateLabel: true
+              labelChannel: versionBaseLabelHolder
+              resizeForLabel: true
+              adjust: left
+              useDynamicPreferredWidth: true
+              usePreferredWidth: true
+              foregroundColor: (Color 0.0 0.0 0.0)
+            )
+           (LabelSpec
+              label: '(Base)'
+              name: 'BaseLabel'
+              layout: (LayoutFrame -50 1 0 0 0 1 0 1)
+              translateLabel: true
+              foregroundColor: (Color 0.0 0.0 0.0)
+            )
+           )
+
+        )
       )
 
     "Created: / 17-01-2013 / 23:44:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 19-08-2021 / 23:27:05 / Jan Vrany <jan.vrany@labware.com>"
 !
 
 mergeMergeLabelSpec
@@ -981,49 +991,47 @@
 
     <resource: #canvas>
 
-    ^
-     #(FullSpec
-	name: mergeMergeLabelSpec
-	window:
-       (WindowSpec
-	  label: 'Version Merged'
-	  name: 'Version Merged'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 300 30)
-	  backgroundColor: (Color 96.2554360265507 72.7275501640345 95.8999008163577)
-	  forceRecursiveBackground: true
-	)
-	component:
-       (SpecCollection
-	  collection: (
-	   (LabelSpec
-	      label: 'versionMerged24x24'
-	      name: 'VersionMergedIcon'
-	      layout: (LayoutFrame 60 0 -12 0.5 87 0 12 0.5)
-	      hasCharacterOrientedLabel: false
-	      translateLabel: true
-	    )
-	   (LabelSpec
-	      label: 'Version B'
-	      name: 'VersionMergedLabel'
-	      layout: (LayoutFrame 90 0 0 0 267 0 0 1)
-	      translateLabel: true
-	      labelChannel: versionMergedLabelHolder
-	      resizeForLabel: true
-	      adjust: left
-	      useDynamicPreferredWidth: true
-	      usePreferredWidth: true
-	    )
-	   (LabelSpec
-	      label: '(Merge)'
-	      name: 'MergedLabel'
-	      layout: (LayoutFrame -70 1 0 0 0 1 0 1)
-	      translateLabel: true
-	    )
-	   )
-
-	)
+    ^ 
+    #(FullSpec
+       name: mergeMergeLabelSpec
+       uuid: '57a41780-013c-11ec-9f3c-606720e43e2c'
+       window: 
+      (WindowSpec
+         label: 'Version Merged'
+         name: 'Version Merged'
+         uuid: '57a41781-013c-11ec-9f3c-606720e43e2c'
+         min: (Point 10 10) bounds: (Rectangle 0 0 300 30) backgroundColor: (Color 96.25 72.75 96.0) forceRecursiveBackground: true
+      ) component: 
+      (SpecCollection
+         collection: (
+          (LabelSpec
+             label: 'versionMerged24x24'
+             name: 'VersionMergedIcon'
+             layout: (LayoutFrame 60 0 -12 0.5 87 0 12 0.5) uuid: '57a41782-013c-11ec-9f3c-606720e43e2c'
+             hasCharacterOrientedLabel: false
+             translateLabel: true
+          )
+          (LabelSpec
+             label: 'Version B'
+             name: 'VersionMergedLabel'
+             layout: (LayoutFrame 90 0 0 0 276 0 0 1) uuid: '57a43e90-013c-11ec-9f3c-606720e43e2c'
+             foregroundColor: (Color 0.0 0.0 0.0) translateLabel: true
+             labelChannel: versionMergedLabelHolder
+             resizeForLabelHorizontal: true
+             resizeForLabelVertical: true
+             adjust: left
+             usePreferredWidth: true
+             useDynamicPreferredWidth: true
+          )
+          (LabelSpec
+             label: '(Merge)'
+             name: 'MergedLabel'
+             layout: (LayoutFrame -70 1 0 0 0 1 0 1) uuid: '57a43e91-013c-11ec-9f3c-606720e43e2c'
+             foregroundColor: (Color 0.0 0.0 0.0) translateLabel: true
+          )
+        )
       )
+    )
 !
 
 versionALabelSpec
@@ -1041,46 +1049,44 @@
     <resource: #canvas>
 
     ^ 
-     #(FullSpec
-        name: versionALabelSpec
-        window: 
-       (WindowSpec
-          label: 'Version A'
-          name: 'Version A'
-          min: (Point 10 10)
-          bounds: (Rectangle 0 0 300 30)
-          backgroundColor: (Color 79.6078431372549 90.5882352941177 69.4117647058823)
-          forceRecursiveBackground: true
-        )
-        component: 
-       (SpecCollection
-          collection: (
-           (LabelSpec
-              label: 'versionA24x24'
-              name: 'VersionAIcon'
-              layout: (LayoutFrame 0 0 -12 0.5 27 0 12 0.5)
-              hasCharacterOrientedLabel: false
-              translateLabel: true
-            )
-           (LabelSpec
-              label: 'Version A'
-              name: 'VersionALabel'
-              layout: (LayoutFrame 30 0 0 0 0 1 0 1)
-              translateLabel: true
-              labelChannel: versionALabelHolder
-              resizeForLabel: true
-              adjust: left
-            )
-           (LabelSpec
-              label: '(A)'
-              name: 'ALabel'
-              layout: (LayoutFrame -30 1 0 0 0 1 0 1)
-              translateLabel: true
-            )
-           )
-         
+    #(FullSpec
+       name: versionALabelSpec
+       uuid: 'fa4cfb10-013b-11ec-9f3c-606720e43e2c'
+       window: 
+      (WindowSpec
+         label: 'Version A'
+         name: 'Version A'
+         uuid: 'fa4d2220-013b-11ec-9f3c-606720e43e2c'
+         min: (Point 10 10) bounds: (Rectangle 0 0 300 30) backgroundColor: (Color 79.5 90.5 69.5) forceRecursiveBackground: true
+      ) component: 
+      (SpecCollection
+         collection: (
+          (LabelSpec
+             label: 'versionA24x24'
+             name: 'VersionAIcon'
+             layout: (LayoutFrame 0 0 -12 0.5 27 0 12 0.5) uuid: 'fa4d2221-013b-11ec-9f3c-606720e43e2c'
+             hasCharacterOrientedLabel: false
+             translateLabel: true
+          )
+          (LabelSpec
+             label: 'Version A'
+             name: 'VersionALabel'
+             layout: (LayoutFrame 30 0 0 0 0 1 0 1) uuid: 'fa4d2222-013b-11ec-9f3c-606720e43e2c'
+             foregroundColor: (Color 0.0 0.0 0.0) translateLabel: true
+             labelChannel: versionALabelHolder
+             resizeForLabelHorizontal: true
+             resizeForLabelVertical: true
+             adjust: left
+          )
+          (LabelSpec
+             label: '(A)'
+             name: 'ALabel'
+             layout: (LayoutFrame -30 1 0 0 0 1 0 1) uuid: 'fa4d2223-013b-11ec-9f3c-606720e43e2c'
+             foregroundColor: (Color 0.0 0.0 0.0) translateLabel: true
+          )
         )
       )
+    )
 !
 
 versionBLabelSpec
@@ -1098,50 +1104,46 @@
     <resource: #canvas>
 
     ^ 
-     #(FullSpec
-        name: versionBLabelSpec
-        window: 
-       (WindowSpec
-          label: 'Version B'
-          name: 'Version B'
-          min: (Point 10 10)
-          bounds: (Rectangle 0 0 300 30)
-          backgroundColor: (Color 100.0 90.5882352941177 60.0)
-          forceRecursiveBackground: true
-        )
-        component: 
-       (SpecCollection
-          collection: (
-           (LabelSpec
-              label: 'versionB24x24'
-              name: 'VersionBIcon'
-              layout: (LayoutFrame 0 0 -12 0.5 27 0 12 0.5)
-              hasCharacterOrientedLabel: false
-              translateLabel: true
-            )
-           (LabelSpec
-              label: 'Version B'
-              name: 'VersionBLabel'
-              layout: (LayoutFrame 30 0 0 0 167 0 0 1)
-              translateLabel: true
-              labelChannel: versionBLabelHolder
-              resizeForLabel: true
-              adjust: left
-              useDynamicPreferredWidth: true
-              usePreferredWidth: true
-            )
-             (LabelSpec
+    #(FullSpec
+       name: versionBLabelSpec
+       uuid: '22ea2ac0-013c-11ec-9f3c-606720e43e2c'
+       window: 
+      (WindowSpec
+         label: 'Version B'
+         name: 'Version B'
+         uuid: '22ea2ac1-013c-11ec-9f3c-606720e43e2c'
+         min: (Point 10 10) bounds: (Rectangle 0 0 300 30) backgroundColor: (Color 100.0 90.5 60.0) forceRecursiveBackground: true
+      ) component: 
+      (SpecCollection
+         collection: (
+          (LabelSpec
+             label: 'versionB24x24'
+             name: 'VersionBIcon'
+             layout: (LayoutFrame 0 0 -12 0.5 27 0 12 0.5) uuid: '22ea2ac2-013c-11ec-9f3c-606720e43e2c'
+             hasCharacterOrientedLabel: false
+             translateLabel: true
+          )
+          (LabelSpec
+             label: 'Version B'
+             name: 'VersionBLabel'
+             layout: (LayoutFrame 30 0 0 0 175 0 0 1) uuid: '22ea51d0-013c-11ec-9f3c-606720e43e2c'
+             foregroundColor: (Color 0.0 0.0 0.0) translateLabel: true
+             labelChannel: versionBLabelHolder
+             resizeForLabelHorizontal: true
+             resizeForLabelVertical: true
+             adjust: left
+             usePreferredWidth: true
+             useDynamicPreferredWidth: true
+          )
+          (LabelSpec
              label: '(B)'
              name: 'BLabel'
-             layout: (LayoutFrame -30 1 0 0 0 1 0 1)
-             translateLabel: true
-            )
-           )
-         
+             layout: (LayoutFrame -30 1 0 0 0 1 0 1) uuid: '22ea51d1-013c-11ec-9f3c-606720e43e2c'
+             foregroundColor: (Color 0.0 0.0 0.0) translateLabel: true
+          )
         )
       )
-
-    "Modified: / 16-12-2011 / 14:17:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    )
 !
 
 versionBaseLabelSpec
@@ -1158,49 +1160,47 @@
 
     <resource: #canvas>
 
-    ^
-     #(FullSpec
-	name: versionBaseLabelSpec
-	window:
-       (WindowSpec
-	  label: 'Version Base'
-	  name: 'Version Base'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 300 30)
-	  backgroundColor: (Color 67.843137254902 87.843137254902 96.4705882352941)
-	  forceRecursiveBackground: true
-	)
-	component:
-       (SpecCollection
-	  collection: (
-	   (LabelSpec
-	      label: 'versionBase24x24'
-	      name: 'VersionBIcon'
-	      layout: (LayoutFrame 0 0 -12 0.5 27 0 12 0.5)
-	      hasCharacterOrientedLabel: false
-	      translateLabel: true
-	    )
-	   (LabelSpec
-	      label: 'Version B'
-	      name: 'VersionBLabel'
-	      layout: (LayoutFrame 30 0 0 0 190 0 0 1)
-	      translateLabel: true
-	      labelChannel: versionBaseLabelHolder
-	      resizeForLabel: true
-	      adjust: left
-	      useDynamicPreferredWidth: true
-	      usePreferredWidth: true
-	    )
-	   (LabelSpec
-	      label: '(Base)'
-	      name: 'BaseLabel'
-	      layout: (LayoutFrame -50 1 0 0 0 1 0 1)
-	      translateLabel: true
-	    )
-	   )
-
-	)
+    ^ 
+    #(FullSpec
+       name: versionBaseLabelSpec
+       uuid: '3a0081a0-013c-11ec-9f3c-606720e43e2c'
+       window: 
+      (WindowSpec
+         label: 'Version Base'
+         name: 'Version Base'
+         uuid: '3a0081a1-013c-11ec-9f3c-606720e43e2c'
+         min: (Point 10 10) bounds: (Rectangle 0 0 300 30) backgroundColor: (Color 67.75 87.75 96.5) forceRecursiveBackground: true
+      ) component: 
+      (SpecCollection
+         collection: (
+          (LabelSpec
+             label: 'versionBase24x24'
+             name: 'VersionBIcon'
+             layout: (LayoutFrame 0 0 -12 0.5 27 0 12 0.5) uuid: '3a00a8b0-013c-11ec-9f3c-606720e43e2c'
+             hasCharacterOrientedLabel: false
+             translateLabel: true
+          )
+          (LabelSpec
+             label: 'Version B'
+             name: 'VersionBLabel'
+             layout: (LayoutFrame 30 0 0 0 198 0 0 1) uuid: '3a00a8b1-013c-11ec-9f3c-606720e43e2c'
+             foregroundColor: (Color 0.0 0.0 0.0) translateLabel: true
+             labelChannel: versionBaseLabelHolder
+             resizeForLabelHorizontal: true
+             resizeForLabelVertical: true
+             adjust: left
+             usePreferredWidth: true
+             useDynamicPreferredWidth: true
+          )
+          (LabelSpec
+             label: '(Base)'
+             name: 'BaseLabel'
+             layout: (LayoutFrame -50 1 0 0 0 1 0 1) uuid: '3a00a8b2-013c-11ec-9f3c-606720e43e2c'
+             foregroundColor: (Color 0.0 0.0 0.0) translateLabel: true
+          )
+        )
       )
+    )
 !
 
 versionMergeLabelSpec
@@ -1211,57 +1211,53 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:Tools::ChangeSetDiffTool andSelector:#versionBaseLabelSpec
-     Tools::ChangeSetDiffTool new openInterface:#versionBaseLabelSpec
+     UIPainter new openOnClass:Tools::ChangeSetDiffTool andSelector:#versionMergeLabelSpec
+     Tools::ChangeSetDiffTool new openInterface:#versionMergeLabelSpec
     "
 
     <resource: #canvas>
 
-    ^
-     #(FullSpec
-	name: versionBaseLabelSpec
-	window:
-       (WindowSpec
-	  label: 'Version Merged'
-	  name: 'Version Merged'
-	  min: (Point 10 10)
-	  bounds: (Rectangle 0 0 300 30)
-	  backgroundColor: (Color 96.2554360265507 72.7275501640345 95.8999008163577)
-	  forceRecursiveBackground: true
-	)
-	component:
-       (SpecCollection
-	  collection: (
-	   (LabelSpec
-	      label: 'versionMerged24x24'
-	      name: 'VersionMergedIcon'
-	      layout: (LayoutFrame 0 0 -12 0.5 27 0 12 0.5)
-	      hasCharacterOrientedLabel: false
-	      translateLabel: true
-	    )
-	   (LabelSpec
-	      label: 'Version B'
-	      name: 'VersionMergedLabel'
-	      layout: (LayoutFrame 30 0 0 0 190 0 0 1)
-	      translateLabel: true
-	      labelChannel: versionMergedLabelHolder
-	      resizeForLabel: true
-	      adjust: left
-	      useDynamicPreferredWidth: true
-	      usePreferredWidth: true
-	    )
-	   (LabelSpec
-	      label: '(Merge)'
-	      name: 'MergedLabel'
-	      layout: (LayoutFrame -70 1 0 0 0 1 0 1)
-	      translateLabel: true
-	    )
-	   )
-
-	)
+    ^ 
+    #(FullSpec
+       name: versionMergeLabelSpec
+       uuid: '4910dc30-013c-11ec-9f3c-606720e43e2c'
+       window: 
+      (WindowSpec
+         label: 'Version Merged'
+         name: 'Version Merged'
+         uuid: '4910dc31-013c-11ec-9f3c-606720e43e2c'
+         min: (Point 10 10) bounds: (Rectangle 0 0 300 30) backgroundColor: (Color 96.25 72.75 96.0) forceRecursiveBackground: true
+      ) component: 
+      (SpecCollection
+         collection: (
+          (LabelSpec
+             label: 'versionMerged24x24'
+             name: 'VersionMergedIcon'
+             layout: (LayoutFrame 0 0 -12 0.5 27 0 12 0.5) uuid: '4910dc32-013c-11ec-9f3c-606720e43e2c'
+             hasCharacterOrientedLabel: false
+             foregroundColor: (Color 0.0 0.0 0.0) translateLabel: true
+          )
+          (LabelSpec
+             label: 'Version B'
+             name: 'VersionMergedLabel'
+             layout: (LayoutFrame 30 0 0 0 216 0 0 1) uuid: '4910dc33-013c-11ec-9f3c-606720e43e2c'
+             foregroundColor: (Color 0.0 0.0 0.0) translateLabel: true
+             labelChannel: versionMergedLabelHolder
+             resizeForLabelHorizontal: true
+             resizeForLabelVertical: true
+             adjust: left
+             usePreferredWidth: true
+             useDynamicPreferredWidth: true
+          )
+          (LabelSpec
+             label: '(Merge)'
+             name: 'MergedLabel'
+             layout: (LayoutFrame -70 1 0 0 0 1 0 1) uuid: '49110340-013c-11ec-9f3c-606720e43e2c'
+             foregroundColor: (Color 0.0 0.0 0.0) translateLabel: true
+          )
+        )
       )
-
-    "Created: / 17-01-2013 / 22:53:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    )
 ! !
 
 !ChangeSetDiffTool class methodsFor:'menu specs'!
@@ -2829,7 +2825,7 @@
             Dialog warn: (self class resources at: 'Oops, class is gone')
         ]
     ] ifFalse:[
-        Dialog error: 'Not yet implemented (Tools::ChangeSetDiffTool » listMenuBrowse)'.                        
+        Dialog error: 'Not yet implemented (Tools::ChangeSetDiffTool » listMenuBrowse)'.                        
     ]
 
     "Created: / 30-11-2011 / 11:30:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -3963,6 +3959,11 @@
     ^ '$Header$'
 !
 
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+!
+
 version_SVN
     ^ '$Id$'
 ! !
--- a/Tools__CodeView2.st	Fri Jul 09 07:02:04 2021 +0100
+++ b/Tools__CodeView2.st	Fri Sep 03 22:28:18 2021 +0100
@@ -3566,12 +3566,13 @@
         drawLine:line
         fromX:x
         inVisible:visLineNr
-        with:fg
+        with:(self foregroundForVisibleLine:visLineNr default:fg)
         and:(self backgroundForVisibleLine:visLineNr default:bg).
 
     "Created: / 05-04-2010 / 12:07:07 / Jakub <zelenja7@fel.cvut.cz>"
     "Modified: / 02-05-2010 / 18:46:00 / Jakub <zelenja7@fel.cvut.cz>"
     "Modified: / 17-03-2012 / 10:05:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 03-09-2021 / 22:13:32 / Jan Vrany <jan.vrany@labware.com>"
 !
 
 drawLine:lineStringArg inVisible:visLineNr col:col with:fg and:bg
@@ -3579,12 +3580,13 @@
         drawLine:lineStringArg
         inVisible:visLineNr
         col:col
-        with:fg
+        with:(self foregroundForVisibleLine:visLineNr default:fg)
         and:(self backgroundForVisibleLine:visLineNr default:bg).
 
     "Created: / 05-04-2010 / 11:49:42 / Jakub <zelenja7@fel.cvut.cz>"
     "Modified: / 02-05-2010 / 18:45:56 / Jakub <zelenja7@fel.cvut.cz>"
     "Modified: / 17-03-2012 / 10:04:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 03-09-2021 / 22:13:28 / Jan Vrany <jan.vrany@labware.com>"
 !
 
 drawLine:lineStringArg inVisible:visLineNr from:startCol to:endColOrNil with:fg and:bg
@@ -3593,12 +3595,13 @@
         inVisible:visLineNr
         from:startCol
         to:endColOrNil
-        with:fg
+        with:(self foregroundForVisibleLine:visLineNr default:fg)
         and:(self backgroundForVisibleLine:visLineNr default:bg).
 
     "Created: / 05-04-2010 / 11:54:54 / Jakub <zelenja7@fel.cvut.cz>"
     "Modified: / 02-05-2010 / 18:45:52 / Jakub <zelenja7@fel.cvut.cz>"
     "Modified: / 17-03-2012 / 10:04:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 03-09-2021 / 22:13:25 / Jan Vrany <jan.vrany@labware.com>"
 !
 
 drawLine:lineString inVisible:visLineNr from:startCol with:fg and:bg
@@ -3606,23 +3609,46 @@
         drawLine:lineString
         inVisible:visLineNr
         from:startCol
-        with:fg
+        with:(self foregroundForVisibleLine:visLineNr default:fg)
         and:(self backgroundForVisibleLine:visLineNr default:bg).
 
     "Created: / 05-04-2010 / 11:54:26 / Jakub <zelenja7@fel.cvut.cz>"
     "Modified: / 02-05-2010 / 18:45:48 / Jakub <zelenja7@fel.cvut.cz>"
     "Modified: / 17-03-2012 / 10:04:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 03-09-2021 / 22:13:21 / Jan Vrany <jan.vrany@labware.com>"
 !
 
 drawVisibleLine:visLineNr with:fg and:bg
     super
         drawVisibleLine:visLineNr
-        with:fg
+        with:(self foregroundForVisibleLine:visLineNr default:fg)
         and:(self backgroundForVisibleLine:visLineNr default:bg).
 
     "Created: / 05-04-2010 / 11:49:42 / Jakub <zelenja7@fel.cvut.cz>"
     "Modified: / 02-05-2010 / 18:45:44 / Jakub <zelenja7@fel.cvut.cz>"
     "Modified: / 17-03-2012 / 10:04:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 03-09-2021 / 22:13:13 / Jan Vrany <jan.vrany@labware.com>"
+!
+
+foregroundForVisibleLine:visLineNr default:fg
+    | lineNr |
+
+
+    diffMode ifTrue:[
+        lineNr := self visibleLineToListLine:visLineNr.
+        (insertedLines notEmptyOrNil and:[insertedLines includes:lineNr]) ifTrue:[
+            ^self colorInserted contrastingBlackOrWhite
+        ].
+        (changedLines notEmptyOrNil and:[changedLines includes:lineNr]) ifTrue:[
+            ^self colorChanged contrastingBlackOrWhite
+        ].
+        (deletedLines notEmptyOrNil and:[deletedLines includes:lineNr]) ifTrue:[
+            ^self colorDeleted contrastingBlackOrWhite
+        ].
+    ].
+    ^ fg
+
+    "Created: / 03-09-2021 / 22:12:43 / Jan Vrany <jan.vrany@labware.com>"
 ! !
 
 !CodeView2::TextView methodsFor:'editing'!