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
- Image.cs
- JsonDataContract.cs
- _LazyAsyncResult.cs
- CompositeFontParser.cs
- QueryContinueDragEvent.cs
- AppModelKnownContentFactory.cs
- TcpSocketManager.cs
- StringUtil.cs
- EllipseGeometry.cs
- FontNamesConverter.cs
- XmlNamespaceDeclarationsAttribute.cs
- TypeTypeConverter.cs
- XpsPackagingPolicy.cs
- ICspAsymmetricAlgorithm.cs
- ScriptComponentDescriptor.cs
- IntersectQueryOperator.cs
- FormatControl.cs
- IdentityHolder.cs
- Parser.cs
- BufferModesCollection.cs
- EllipseGeometry.cs
- MatchSingleFxEngineOpcode.cs
- RIPEMD160Managed.cs
- UnsafeNativeMethods.cs
- DecryptedHeader.cs
- DataGridViewCellCollection.cs
- ContentElement.cs
- ComboBoxHelper.cs
- WindowsSecurityToken.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- DiagnosticTrace.cs
- MenuAutomationPeer.cs
- SecurityRuntime.cs
- HitTestParameters.cs
- SpeakInfo.cs
- ImageBrush.cs
- ToolStripLabel.cs
- Token.cs
- SqlNotificationRequest.cs
- StyleBamlRecordReader.cs
- DataGridTextBoxColumn.cs
- QuadraticEase.cs
- NonClientArea.cs
- InkCanvasFeedbackAdorner.cs
- PackageRelationship.cs
- SafeFindHandle.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- SchemaElementDecl.cs
- FactoryGenerator.cs
- DataReceivedEventArgs.cs
- ReflectionTypeLoadException.cs
- UIElementCollection.cs
- DictionaryContent.cs
- ComponentFactoryHelpers.cs
- SoapBinding.cs
- DispatcherHooks.cs
- ImageList.cs
- PackagePart.cs
- SiteMapNodeItem.cs
- InputScopeNameConverter.cs
- BamlMapTable.cs
- Ppl.cs
- PagedDataSource.cs
- _emptywebproxy.cs
- DesignerCategoryAttribute.cs
- PointValueSerializer.cs
- HttpCapabilitiesSectionHandler.cs
- ProtocolViolationException.cs
- SByte.cs
- ConnectionManagementSection.cs
- CacheHelper.cs
- TextDocumentView.cs
- CopyAttributesAction.cs
- DataMisalignedException.cs
- HMACSHA1.cs
- ExitEventArgs.cs
- CustomCredentialPolicy.cs
- PageAsyncTask.cs
- WebBrowser.cs
- NetworkCredential.cs
- basecomparevalidator.cs
- XmlTextEncoder.cs
- CommandConverter.cs
- SqlDeflator.cs
- PaperSource.cs
- Utility.cs
- TargetParameterCountException.cs
- GridViewRowEventArgs.cs
- XsltConvert.cs
- MobileComponentEditorPage.cs
- Walker.cs
- StreamGeometryContext.cs
- UserInitiatedNavigationPermission.cs
- SetIterators.cs
- SchemaInfo.cs
- ThreadInterruptedException.cs
- CharacterMetricsDictionary.cs
- DefaultParameterValueAttribute.cs
- SubMenuStyle.cs
- SecUtil.cs