]> O.S.I.I.S - jp/crow.git/commitdiff
button enabled state with command change, TextChange.reverse, label.getX in any case...
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Mon, 15 Feb 2021 20:04:06 +0000 (21:04 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Mon, 15 Feb 2021 20:04:06 +0000 (21:04 +0100)
Crow/src/Text/TextChange.cs
Crow/src/Widgets/Button.cs
Crow/src/Widgets/Label.cs
Crow/src/Widgets/Widget.cs

index 636c732b445ee00089ec4d17d95383772a5106c4..deecc5e5359bdc026cbbbaab0f745932d9b032b3 100644 (file)
@@ -16,5 +16,8 @@ namespace Crow.Text
             Length = length;
             ChangedText = changedText;
         }
+        public TextChange Inverse (string src)
+            => new TextChange (Start, string.IsNullOrEmpty (ChangedText) ? 0 : ChangedText.Length,
+                Length == 0 ? "" : src.AsSpan (Start, Length).ToString ());
     }
 }
index ce514ce0f360b6ae3bd05464660bc11c810b92b8..b7b9326b97475fd19a1ce267dd55cc4ec955f6cb 100644 (file)
@@ -113,8 +113,10 @@ namespace Crow
                void Command_ValueChanged (object sender, ValueChangeEventArgs e)
                {
                        string mName = e.MemberName;
-                       if (mName == "CanExecute")
+                       if (mName == "CanExecute") {
                                mName = "IsEnabled";
+                               RegisterForRedraw ();
+                       }
                        NotifyValueChanged (mName, e.NewValue);
                }
 
index 9429a516d3b73303a402fd52ce18e624ea81f820..9183f7d8376962f15c795c47bf584e1720ca0ad6 100644 (file)
@@ -417,7 +417,7 @@ namespace Crow
                                                }
 
                                                RectangleD lineRect = new RectangleD (
-                                                       Width.IsFit && !Multiline ? cb.X : (int)getX (cb.Width, lines[i]) + cb.X,
+                                                       (int)getX (cb.Width, lines[i]) + cb.X,
                                                        y + cb.Top, lines[i].LengthInPixel, lineHeight);
 
                                                if (encodedBytes > 0) {
@@ -535,7 +535,7 @@ namespace Crow
                                return;
                        TextLine ls = lines[loc.Line];
                        ReadOnlySpan<char> curLine = _text.GetLine (ls);
-                       double cPos = Width.IsFit && !Multiline ? 0 : getX (clientWidth, ls);
+                       double cPos = getX (clientWidth, ls);
 
                        if (loc.Column >= 0) {
                                //int encodedBytes = Crow.Text.Encoding2.ToUtf8 (curLine.Slice (0, loc.Column), bytes);
index 519d7019c1fc9bfaebf4c628c92443b3849ed8cb..8e44759c36e35910f3b93b00fe0d7308c598291b 100644 (file)
@@ -889,10 +889,9 @@ namespace Crow
 
                                isVisible = value;
 
-                               if (Visible)
-                                       RegisterForLayouting (LayoutingType.Sizing);
-                               else
+                               if (!Visible)
                                        unshownPostActions ();
+                               RegisterForLayouting (LayoutingType.Sizing);
 
                                NotifyValueChangedAuto (isVisible);
                        }
@@ -1846,7 +1845,7 @@ namespace Crow
                }
                void paintDisabled(Context gr, Rectangle rb){
                        gr.Operator = Operator.Xor;
-                       gr.SetSource (0.6, 0.6, 0.6, 0.3);
+                       gr.SetSource (0.1, 0.1, 0.1, 0.8);
                        gr.Rectangle (rb);
                        gr.Fill ();
                        gr.Operator = Operator.Over;