mirror of
https://github.com/greenshot/greenshot
synced 2025-07-30 19:50:11 -07:00
As 2.x takes longer as planned, I added the SpeechbubbleContainer and StepLabelContainer (Enumerable label) to the 1.2 branch. This code was stored somewhere on my hard-drive, is still experimental.
This commit is contained in:
parent
01ce82dbeb
commit
ff3f898f54
21 changed files with 648 additions and 166 deletions
|
@ -209,6 +209,17 @@ namespace Greenshot.Drawing {
|
|||
[NonSerialized]
|
||||
private Bitmap buffer = null;
|
||||
|
||||
/// <summary>
|
||||
/// all stepcontainers for the surface, needed with serialization
|
||||
/// </summary>
|
||||
private readonly LinkedList<IDrawableContainer> _stepContainers = new LinkedList<IDrawableContainer>();
|
||||
|
||||
public LinkedList<IDrawableContainer> StepContainers {
|
||||
get {
|
||||
return _stepContainers;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// all elements on the surface, needed with serialization
|
||||
/// </summary>
|
||||
|
@ -633,6 +644,12 @@ namespace Greenshot.Drawing {
|
|||
case DrawingModes.Text:
|
||||
undrawnElement = new TextContainer(this);
|
||||
break;
|
||||
case DrawingModes.SpeechBubble:
|
||||
undrawnElement = new SpeechbubbleContainer(this);
|
||||
break;
|
||||
case DrawingModes.StepLabel:
|
||||
undrawnElement = new StepLabelContainer(this);
|
||||
break;
|
||||
case DrawingModes.Line:
|
||||
undrawnElement = new LineContainer(this);
|
||||
break;
|
||||
|
@ -1002,7 +1019,7 @@ namespace Greenshot.Drawing {
|
|||
}
|
||||
}
|
||||
drawingElement = undrawnElement;
|
||||
drawingElement.Status = EditStatus.DRAWING;
|
||||
drawingElement.Status = undrawnElement.DefaultEditMode;
|
||||
undrawnElement = null;
|
||||
// if a new element has been drawn, set location and register it
|
||||
if (drawingElement != null) {
|
||||
|
@ -1274,7 +1291,7 @@ namespace Greenshot.Drawing {
|
|||
}
|
||||
elementToRemove.PropertyChanged -= ElementPropertyChanged;
|
||||
// Do not dispose, the memento should!! element.Dispose();
|
||||
elementToRemove.Invalidate();
|
||||
Invalidate();
|
||||
if (makeUndoable) {
|
||||
MakeUndoable(new DeleteElementMemento(this, elementToRemove), false);
|
||||
}
|
||||
|
@ -1690,5 +1707,9 @@ namespace Greenshot.Drawing {
|
|||
public void element_FieldChanged(object sender, FieldChangedEventArgs e) {
|
||||
selectedElements.HandleFieldChangedEvent(sender, e);
|
||||
}
|
||||
|
||||
public bool IsOnSurface(IDrawableContainer container) {
|
||||
return elements.Contains(container);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue