aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/GraphicObjects
diff options
context:
space:
mode:
authorjpbruyere <jp.bruyere@hotmail.com>2016-08-14 06:43:59 +0200
committerjpbruyere <jp.bruyere@hotmail.com>2016-08-14 06:43:59 +0200
commit9d0137b1d39e62b09437b6a11e8dcf1318e2a7eb (patch)
tree6f34808a56eb5562bdfd5306ec2ad74c935d964b /src/GraphicObjects
parent854f2f732acc4c1d9fa4126962149cae14f4d4e9 (diff)
* Crow.csproj, XCursor.cs, Interface.cs, ibeam:
text xcursor * Window.template, Expandable.template, TabView.cs, 0.crow: divers * ExtensionsMethods.cs, CairoHelpers.cs, Border.cs: stroke better alignment, should be reworked for different width * Label.cs: text xcursor, selection rectangles adjustments * Window.cs: Maximize
Diffstat (limited to 'src/GraphicObjects')
-rw-r--r--src/GraphicObjects/Border.cs3
-rw-r--r--src/GraphicObjects/Label.cs21
-rw-r--r--src/GraphicObjects/TabView.cs2
-rw-r--r--src/GraphicObjects/Window.cs44
4 files changed, 60 insertions, 10 deletions
diff --git a/src/GraphicObjects/Border.cs b/src/GraphicObjects/Border.cs
index 6c1ed6a1..bd72d750 100644
--- a/src/GraphicObjects/Border.cs
+++ b/src/GraphicObjects/Border.cs
@@ -55,8 +55,7 @@ namespace Crow
if (BorderWidth > 0) {
gr.LineWidth = BorderWidth;
Foreground.SetAsSource (gr, rBack);
- CairoHelpers.CairoRectangle(gr, rBack, CornerRadius);
- gr.Stroke ();
+ CairoHelpers.CairoRectangle(gr, rBack, CornerRadius, true);
}
gr.Save ();
diff --git a/src/GraphicObjects/Label.cs b/src/GraphicObjects/Label.cs
index 3cc0f916..37a32a2f 100644
--- a/src/GraphicObjects/Label.cs
+++ b/src/GraphicObjects/Label.cs
@@ -569,8 +569,8 @@ namespace Crow
Foreground.SetAsSource (gr);
gr.LineWidth = 1.0;
- gr.MoveTo(new PointD(textCursorPos + rText.X, rText.Y + CurrentLine * fe.Height));
- gr.LineTo(new PointD(textCursorPos + rText.X, rText.Y + (CurrentLine + 1) * fe.Height));
+ gr.MoveTo (0.5 + textCursorPos + rText.X, rText.Y + CurrentLine * fe.Height);
+ gr.LineTo (0.5 + textCursorPos + rText.X, rText.Y + (CurrentLine + 1) * fe.Height);
gr.Stroke();
}
#endregion
@@ -603,9 +603,9 @@ namespace Crow
int lineLength = (int)gr.TextExtents (l).XAdvance;
Rectangle lineRect = new Rectangle (
rText.X,
- rText.Y + (int)(i * fe.Height),
- lineLength,
- (int)fe.Height);
+ rText.Y + (int)Math.Ceiling(i * fe.Height),
+ lineLength,
+ (int)Math.Ceiling(fe.Height));
// if (TextAlignment == Alignment.Center ||
// TextAlignment == Alignment.Top ||
@@ -659,6 +659,17 @@ namespace Crow
if (mouseLocalPos.Y < 0)
mouseLocalPos.Y = 0;
}
+ public override void onMouseEnter (object sender, MouseMoveEventArgs e)
+ {
+ base.onMouseEnter (sender, e);
+ if (Selectable)
+ Interface.CurrentInterface.MouseCursor = XCursor.Text;
+ }
+ public override void onMouseLeave (object sender, MouseMoveEventArgs e)
+ {
+ base.onMouseLeave (sender, e);
+ Interface.CurrentInterface.MouseCursor = XCursor.Default;
+ }
public override void onFocused (object sender, EventArgs e)
{
base.onFocused (sender, e);
diff --git a/src/GraphicObjects/TabView.cs b/src/GraphicObjects/TabView.cs
index e140191b..fa352b0d 100644
--- a/src/GraphicObjects/TabView.cs
+++ b/src/GraphicObjects/TabView.cs
@@ -82,7 +82,7 @@ namespace Crow
RegisterForRedraw ();
}
}
- [XmlAttributeAttribute()][DefaultValue("15")]
+ [XmlAttributeAttribute()][DefaultValue("18")]
public virtual Measure TabThickness {
get { return tabThickness; }
set {
diff --git a/src/GraphicObjects/Window.cs b/src/GraphicObjects/Window.cs
index 9fb6bd29..bf6bd5cf 100644
--- a/src/GraphicObjects/Window.cs
+++ b/src/GraphicObjects/Window.cs
@@ -46,11 +46,15 @@ namespace Crow
bool _resizable;
bool _movable;
bool hoverBorder = false;
+ bool isMaximized = false;
+ Measure savedH, savedW;
Container _contentContainer;
Direction currentDirection = Direction.None;
public event EventHandler Closing;
+ public event EventHandler Maximized;
+ public event EventHandler Unmaximized;
#region CTOR
public Window () : base() {
@@ -74,6 +78,7 @@ namespace Crow
}
#endregion
+ #region public properties
[XmlAttributeAttribute()][DefaultValue("Window")]
public string Title {
get { return _title; }
@@ -110,6 +115,24 @@ namespace Crow
NotifyValueChanged ("Movable", _movable);
}
}
+ [XmlAttributeAttribute()][DefaultValue(false)]
+ public bool IsMaximized {
+ get { return isMaximized; }
+ set{
+ if (value == isMaximized)
+ return;
+ isMaximized = value;
+
+ if (isMaximized)
+ onMaximized (this, null);
+ else
+ onUnmaximized (this, null);
+
+ NotifyValueChanged ("IsMaximized", isMaximized);
+ }
+ }
+ #endregion
+
#region GraphicObject Overrides
public override void ResolveBindings ()
{
@@ -272,19 +295,36 @@ namespace Crow
base.onMouseDown (sender, e);
}
#endregion
+ protected void onMaximized (object sender, EventArgs e){
+ savedW = this.Width;
+ savedH = this.Height;
+ this.Width = Measure.Stretched;
+ this.Height = Measure.Stretched;
+
+ Maximized.Raise (sender, e);
+ }
+ protected void onUnmaximized (object sender, EventArgs e){
+ this.Width = savedW;
+ this.Height = savedH;
- public void onBorderMouseLeave (object sender, MouseMoveEventArgs e)
+ Unmaximized.Raise (sender, e);
+ }
+
+ protected void onBorderMouseLeave (object sender, MouseMoveEventArgs e)
{
hoverBorder = false;
currentDirection = Direction.None;
Interface.CurrentInterface.MouseCursor = XCursor.Default;
}
- public void onBorderMouseEnter (object sender, MouseMoveEventArgs e)
+ protected void onBorderMouseEnter (object sender, MouseMoveEventArgs e)
{
hoverBorder = true;
}
+ protected void butMaximizePress (object sender, MouseButtonEventArgs e){
+ IsMaximized = !IsMaximized;
+ }
protected void butQuitPress (object sender, MouseButtonEventArgs e)
{
Interface.CurrentInterface.MouseCursor = XCursor.Default;