aboutsummaryrefslogtreecommitdiffstatsci
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/GraphicObjects/GraphicObject.cs10
-rw-r--r--src/GraphicObjects/Window.cs32
2 files changed, 28 insertions, 14 deletions
diff --git a/src/GraphicObjects/GraphicObject.cs b/src/GraphicObjects/GraphicObject.cs
index 59b4be18..2838f6cd 100644
--- a/src/GraphicObjects/GraphicObject.cs
+++ b/src/GraphicObjects/GraphicObject.cs
@@ -239,6 +239,10 @@ namespace Crow
set {
if (_width == value)
return;
+ if (value.IsFixed) {
+ if (value < MinimumSize.Width || (value > MaximumSize.Width && MaximumSize.Width > 0))
+ return;
+ }
_width = value;
NotifyValueChanged ("Width", _width);
@@ -253,6 +257,10 @@ namespace Crow
set {
if (_height == value)
return;
+ if (value.IsFixed) {
+ if (value < MinimumSize.Height || (value > MaximumSize.Height && MaximumSize.Height > 0))
+ return;
+ }
_height = value;
NotifyValueChanged ("Height", _height);
@@ -1239,6 +1247,8 @@ namespace Crow
}
}
void applyStyle(){
+ //The first place searched for a style is in the style propery of this instance
+ //this field may contains the path to a Style file for the object.
if (string.IsNullOrEmpty (style))
return;
Stream s = Interface.GetStreamFromPath (style);
diff --git a/src/GraphicObjects/Window.cs b/src/GraphicObjects/Window.cs
index 7b5f7c9a..afb4f4f2 100644
--- a/src/GraphicObjects/Window.cs
+++ b/src/GraphicObjects/Window.cs
@@ -101,20 +101,18 @@ namespace Crow
}
if (this.HasFocus) {
-
- if (e.Mouse.IsButtonDown (MouseButton.Left)) {
-
+ if (e.Mouse.IsButtonDown (MouseButton.Left)) {
int currentLeft = this.Left;
int currentTop = this.Top;
int currentWidth, currentHeight;
if (currentLeft == 0) {
currentLeft = this.Slot.Left;
- //this.Left = currentLeft;
+ this.Left = currentLeft;
}
if (currentTop == 0) {
currentTop = this.Slot.Top;
- //this.Top = currentTop;
+ this.Top = currentTop;
}
if (this.Width.IsFixed)
currentWidth = this.Width;
@@ -132,38 +130,44 @@ namespace Crow
this.Top = currentTop + e.YDelta;
break;
case Direction.N:
- this.Top = currentTop + e.YDelta;
this.Height = currentHeight - e.YDelta;
+ if (this.Height == currentHeight - e.YDelta)
+ this.Top = currentTop + e.YDelta;
break;
case Direction.S:
this.Height = currentHeight + e.YDelta;
break;
case Direction.W:
- this.Left = currentLeft + e.XDelta;
this.Width = currentWidth - e.XDelta;
+ if (this.Width == currentWidth - e.XDelta)
+ this.Left = currentLeft + e.XDelta;
break;
case Direction.E:
this.Width = currentWidth + e.XDelta;
break;
case Direction.NW:
- this.Left = currentLeft + e.XDelta;
- this.Top = currentTop + e.YDelta;
- this.Width = currentWidth - e.XDelta;
this.Height = currentHeight - e.YDelta;
+ if (this.Height == currentHeight - e.YDelta)
+ this.Top = currentTop + e.YDelta;
+ this.Width = currentWidth - e.XDelta;
+ if (this.Width == currentWidth - e.XDelta)
+ this.Left = currentLeft + e.XDelta;
break;
case Direction.NE:
- this.Width = currentWidth + e.XDelta;
- this.Top = currentTop + e.YDelta;
this.Height = currentHeight - e.YDelta;
+ if (this.Height == currentHeight - e.YDelta)
+ this.Top = currentTop + e.YDelta;
+ this.Width = currentWidth + e.XDelta;
break;
case Direction.SW:
- this.Left = currentLeft + e.XDelta;
this.Width = currentWidth - e.XDelta;
+ if (this.Width == currentWidth - e.XDelta)
+ this.Left = currentLeft + e.XDelta;
this.Height = currentHeight + e.YDelta;
break;
case Direction.SE:
- this.Width = currentWidth + e.XDelta;
this.Height = currentHeight + e.YDelta;
+ this.Width = currentWidth + e.XDelta;
break;
}
return;