From: Jean-Philippe Bruyère Date: Sat, 4 Nov 2017 17:01:49 +0000 (+0100) Subject: label: compute correct text cursor when anlign is not left, ColorPicker and num contr... X-Git-Tag: 0.6.0~19^2~1 X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=c131d2afe88190d20f0844da921793ded858a715;p=jp%2Fcrow.git label: compute correct text cursor when anlign is not left, ColorPicker and num control improvements --- diff --git a/Templates/ColorPicker.template b/Templates/ColorPicker.template index cefff59b..81bb0bd1 100755 --- a/Templates/ColorPicker.template +++ b/Templates/ColorPicker.template @@ -2,14 +2,14 @@ - + - + Width="128" Height="128"/> + - - + + diff --git a/src/GraphicObjects/Label.cs b/src/GraphicObjects/Label.cs index 64ee9688..214e14ed 100644 --- a/src/GraphicObjects/Label.cs +++ b/src/GraphicObjects/Label.cs @@ -265,6 +265,7 @@ namespace Crow { get { return lines [CurrentLine] [CurrentColumn]; + //return _currentCol > lines[CurrentLine].Length ? (char)0 : lines [CurrentLine] [CurrentColumn]; } } /// @@ -775,6 +776,19 @@ namespace Crow if (CurrentLine >= lines.Count) CurrentLine = lines.Count - 1; + switch (TextAlignment) { + case Alignment.Center: + case Alignment.Top: + case Alignment.Bottom: + cPos+= ClientRectangle.Width - gr.TextExtents(lines [CurrentLine]).Width/2.0; + break; + case Alignment.Right: + case Alignment.TopRight: + case Alignment.BottomRight: + cPos += ClientRectangle.Width - gr.TextExtents(lines [CurrentLine]).Width; + break; + } + for (int i = 0; i < lines[CurrentLine].Length; i++) { string c = lines [CurrentLine].Substring (i, 1); diff --git a/src/GraphicObjects/NumericControl.cs b/src/GraphicObjects/NumericControl.cs index 9b511831..8ab60edb 100644 --- a/src/GraphicObjects/NumericControl.cs +++ b/src/GraphicObjects/NumericControl.cs @@ -44,10 +44,24 @@ namespace Crow #region private fields double _actualValue, minValue, maxValue, smallStep, bigStep; + int _decimals; #endregion #region public properties - [XmlAttributeAttribute()][DefaultValue(0.0)] + [XmlAttributeAttribute][DefaultValue(2)] + public int Decimals + { + get { return _decimals; } + set + { + if (value == _decimals) + return; + _decimals = value; + NotifyValueChanged("Decimals", _decimals); + RegisterForGraphicUpdate(); + } + } + [XmlAttributeAttribute][DefaultValue(0.0)] public virtual double Minimum { get { return minValue; } set { @@ -59,7 +73,7 @@ namespace Crow RegisterForRedraw (); } } - [XmlAttributeAttribute()][DefaultValue(100.0)] + [XmlAttributeAttribute][DefaultValue(100.0)] public virtual double Maximum { get { return maxValue; } @@ -72,7 +86,7 @@ namespace Crow RegisterForRedraw (); } } - [XmlAttributeAttribute()][DefaultValue(1.0)] + [XmlAttributeAttribute][DefaultValue(1.0)] public virtual double SmallIncrement { get { return smallStep; } @@ -85,7 +99,7 @@ namespace Crow RegisterForRedraw (); } } - [XmlAttributeAttribute()][DefaultValue(5.0)] + [XmlAttributeAttribute][DefaultValue(5.0)] public virtual double LargeIncrement { get { return bigStep; } @@ -98,7 +112,7 @@ namespace Crow RegisterForRedraw (); } } - [XmlAttributeAttribute()][DefaultValue(0.0)] + [XmlAttributeAttribute][DefaultValue(0.0)] public double Value { get { return _actualValue; } @@ -114,6 +128,8 @@ namespace Crow else _actualValue = value; + _actualValue = Math.Round (_actualValue, _decimals); + NotifyValueChanged("Value", _actualValue); RegisterForGraphicUpdate(); }