Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Design / Glyphs / ConfigErrorGlyph.cs / 1305376 / ConfigErrorGlyph.cs
namespace System.Workflow.ComponentModel.Design
{
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
#region Glyphs
#region Class ConfigErrorGlyph
//Class is internal but not sealed as we dont expect the ActivityDesigner writers to supply their own
//Glyph instead based on designer actions the smart tag will be shown
//Exception: StripItemConfigErrorGlyph
public class ConfigErrorGlyph : DesignerGlyph
{
private static ConfigErrorGlyph defaultConfigErrorGlyph = null;
internal static ConfigErrorGlyph Default
{
get
{
if (defaultConfigErrorGlyph == null)
defaultConfigErrorGlyph = new ConfigErrorGlyph();
return defaultConfigErrorGlyph;
}
}
public override bool CanBeActivated
{
get
{
return true;
}
}
public override int Priority
{
get
{
return DesignerGlyph.ConfigErrorPriority;
}
}
public override Rectangle GetBounds(ActivityDesigner designer, bool activated)
{
if (designer == null)
throw new ArgumentNullException("designer");
Size configErrorSize = WorkflowTheme.CurrentTheme.AmbientTheme.GlyphSize;
Size margin = WorkflowTheme.CurrentTheme.AmbientTheme.Margin;
Point configErrorLocation = new Point(designer.Bounds.Right - configErrorSize.Width - margin.Width / 2, designer.Bounds.Top - configErrorSize.Height + margin.Height);
Rectangle bounds = new Rectangle(configErrorLocation, configErrorSize);
if (activated)
{
bounds.Width *= 2;
AmbientTheme ambientTheme = WorkflowTheme.CurrentTheme.AmbientTheme;
bounds.Inflate(ambientTheme.Margin.Width / 2, ambientTheme.Margin.Height / 2);
}
return bounds;
}
protected override void OnPaint(Graphics graphics, bool activated, AmbientTheme ambientTheme, ActivityDesigner designer)
{
Rectangle bounds = GetBounds(designer, false);
Rectangle activatedBounds = GetBounds(designer, activated);
Region clipRegion = null;
Region oldClipRegion = graphics.Clip;
try
{
if (oldClipRegion != null)
{
clipRegion = oldClipRegion.Clone();
if (activated)
clipRegion.Union(activatedBounds);
graphics.Clip = clipRegion;
}
if (activated)
{
graphics.FillRectangle(SystemBrushes.ButtonFace, activatedBounds);
graphics.DrawRectangle(SystemPens.ControlDarkDark, activatedBounds.Left, activatedBounds.Top, activatedBounds.Width - 1, activatedBounds.Height - 1);
activatedBounds.X += bounds.Width + ambientTheme.Margin.Width;
activatedBounds.Width -= (bounds.Width + 2 * ambientTheme.Margin.Width);
using (GraphicsPath dropDownIndicator = ActivityDesignerPaint.GetScrollIndicatorPath(activatedBounds, ScrollButton.Down))
{
graphics.FillPath(SystemBrushes.ControlText, dropDownIndicator);
graphics.DrawPath(SystemPens.ControlText, dropDownIndicator);
}
}
ActivityDesignerPaint.DrawImage(graphics, AmbientTheme.ConfigErrorImage, bounds, DesignerContentAlignment.Fill);
}
finally
{
if (clipRegion != null)
{
graphics.Clip = oldClipRegion;
clipRegion.Dispose();
}
}
}
protected override void OnActivate(ActivityDesigner designer)
{
if (designer != null)
{
if (designer.DesignerActions.Count > 0)
{
Rectangle bounds = GetBounds(designer, false);
Point location = designer.ParentView.LogicalPointToScreen(new Point(bounds.Left, bounds.Bottom));
DesignerHelpers.ShowDesignerVerbs(designer, location, DesignerHelpers.GetDesignerActionVerbs(designer, designer.DesignerActions));
}
}
}
}
#endregion
#endregion
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextEditorMouse.cs
- RegularExpressionValidator.cs
- XmlWellformedWriter.cs
- DrawingVisual.cs
- WorkflowInstanceExtensionManager.cs
- RelationshipType.cs
- SessionEndingCancelEventArgs.cs
- Base64Stream.cs
- StorageScalarPropertyMapping.cs
- ViewEvent.cs
- ReflectTypeDescriptionProvider.cs
- EncoderExceptionFallback.cs
- SerializationSectionGroup.cs
- ListItem.cs
- ipaddressinformationcollection.cs
- Relationship.cs
- _TransmitFileOverlappedAsyncResult.cs
- FileChangesMonitor.cs
- IPGlobalProperties.cs
- RegexWriter.cs
- WindowsListViewScroll.cs
- SafeHandles.cs
- Main.cs
- ObjectCloneHelper.cs
- SmtpReplyReaderFactory.cs
- XmlSerializer.cs
- Table.cs
- Select.cs
- HitTestParameters.cs
- ConfigXmlSignificantWhitespace.cs
- DateTimeConverter.cs
- IgnoreSectionHandler.cs
- RuntimeCompatibilityAttribute.cs
- PathSegmentCollection.cs
- GenericTypeParameterBuilder.cs
- TypeConverterHelper.cs
- DBConnection.cs
- XmlSchemaExternal.cs
- StreamingContext.cs
- AppSettingsExpressionEditor.cs
- SqlXmlStorage.cs
- EmbeddedMailObject.cs
- TextRangeEditLists.cs
- RuntimeConfig.cs
- SqlSupersetValidator.cs
- ZipPackage.cs
- TransformPattern.cs
- TranslateTransform3D.cs
- smtpconnection.cs
- XamlStream.cs
- TryExpression.cs
- Table.cs
- SmtpLoginAuthenticationModule.cs
- Matrix.cs
- CheckBoxBaseAdapter.cs
- Sql8ConformanceChecker.cs
- XmlLinkedNode.cs
- WindowsFormsDesignerOptionService.cs
- ConnectionManager.cs
- ListViewInsertedEventArgs.cs
- Enum.cs
- ManagedWndProcTracker.cs
- XmlSchemaException.cs
- ScrollBar.cs
- ProgressBarHighlightConverter.cs
- HttpProfileGroupBase.cs
- RepeaterItem.cs
- DrawingGroupDrawingContext.cs
- StreamGeometry.cs
- PermissionListSet.cs
- XmlMapping.cs
- ComponentEditorPage.cs
- Oid.cs
- CodeIdentifier.cs
- UIElementCollection.cs
- XamlFilter.cs
- Journaling.cs
- EnvelopedPkcs7.cs
- PropertySegmentSerializationProvider.cs
- AuthenticationManager.cs
- XmlChoiceIdentifierAttribute.cs
- InputProviderSite.cs
- DataGridViewSortCompareEventArgs.cs
- SqlDelegatedTransaction.cs
- ValueUtilsSmi.cs
- TimerTable.cs
- DecoderFallback.cs
- EasingKeyFrames.cs
- HttpRequestCacheValidator.cs
- RequestNavigateEventArgs.cs
- SByte.cs
- TemplateManager.cs
- InvalidCastException.cs
- OleDbInfoMessageEvent.cs
- ItemCollection.cs
- AssemblyBuilderData.cs
- TrustDriver.cs
- IpcServerChannel.cs
- DescendantBaseQuery.cs
- MemberAccessException.cs