aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/GraphicObjects/Window.cs
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/Window.cs
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/Window.cs')
-rw-r--r--src/GraphicObjects/Window.cs44
1 files changed, 42 insertions, 2 deletions
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;