using System.Drawing;
using System.IO;
using System.Reflection;
namespace Netron.Diagramming.Core {
public class ImagePalette {
public const string PropertiesFileName =
"PropertiesHS.png";
#region Fields
const string mNameSpace = "Netron.Diagramming.Core";
static Image mAlignObjectsBottom =
GetImage("AlignObjectsBottomHS.png");
static Image mAlignObjectsCenteredHorizontal =
GetImage("AlignObjectsCenteredHorizontalHS.png");
static Image mAlignObjectsCenteredVertical =
GetImage("AlignObjectsCenteredVerticalHS.png");
static Image mAlignObjectsLeft = GetImage("AlignObjectsLeftHS.png");
static Image mAlignObjectsRight = GetImage("AlignObjectsRightHS.png");
static Image mAlignObjectsTop = GetImage("AlignObjectsTopHS.png");
static Image mArrow = GetImage("StandardArrow.png");
static Image mBringForward = GetImage("BringForwardHS.png");
static Image mBringToFront = GetImage("BringToFrontHS.png");
static Image mBucketFill = GetImage("BucketFill.bmp", Color.Magenta);
static Image mClassShape = GetImage("ClassShape.png");
static Image mCenterAlignment = GetImage(
"CenterAlignment.bmp",
Color.Silver);
static Image mConnection = GetImage("Connection.png");
static Image mDrawEllipse = GetImage("DrawEllipse.png");
static Image mDrawRectangle = GetImage("DrawRectangle.png");
static Image mFont = GetImage("FontDialogHS.png");
static Image mGroup = GetImage("Group.png");
static Image mLeftAlignment = GetImage(
"LeftAlignment.bmp",
Color.Silver);
static Image mMoveConnector = GetImage("ConnectorMover.png");
static Image mNewDocumnet = GetImage("NewDocumentHS.png");
static Image mOutline = GetImage(
"PenDraw.bmp",
Color.Magenta);
static Image mProperties = GetImage("PropertiesHS.png");
static Image mRedo = GetImage("Edit_RedoHS.png");
static Image mRightAlignment = GetImage(
"RightAlignment.bmp",
Color.Silver);
static Image mSendBackwards = GetImage("SendBackwardHS.png");
static Image mSendToBack = GetImage("SendToBackHS.png");
static Image mShortcut = GetImage("Shortcut.bmp");
static Image mUndo = GetImage("Edit_UndoHS.png");
static Image mUngroup = GetImage("Ungroup.png");
#endregion
#region Properties
// ------------------------------------------------------------------
///
/// Gets the image that represents aligning the bottom edges of
/// objects.
///
// ------------------------------------------------------------------
public static Image AlignObjectsBottom {
get {
return mAlignObjectsBottom;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents horizontally aligning the center
/// of objects.
///
// ------------------------------------------------------------------
public static Image AlignObjectsCenteredHorizontal {
get {
return mAlignObjectsCenteredHorizontal;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents vertically aligning the center
/// of objects.
///
// ------------------------------------------------------------------
public static Image AlignObjectsCenteredVertical {
get {
return mAlignObjectsCenteredVertical;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents aligning the left edge of objects.
///
// ------------------------------------------------------------------
public static Image AlignObjectsLeft {
get {
return mAlignObjectsLeft;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents aligning the right edge of objects.
///
// ------------------------------------------------------------------
public static Image AlignObjectsRight {
get {
return mAlignObjectsRight;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents aligning the top edge of objects.
///
// ------------------------------------------------------------------
public static Image AlignObjectsTop {
get {
return mAlignObjectsTop;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents a arrow (standard cursor arrow).
///
// ------------------------------------------------------------------
public static Image Arrow {
get {
return mArrow;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents bringing an object all the way to
/// to the front in the z-order.
///
// ------------------------------------------------------------------
public static Image BringToFront {
get {
return mBringToFront;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents bring an object forward in the
/// z-order.
///
// ------------------------------------------------------------------
public static Image BringForward {
get {
return mBringForward;
}
}
// ------------------------------------------------------------------
///
/// Gets an image of a bucket of color - used to illustrate fill
/// color.
///
// ------------------------------------------------------------------
public static Image BucketFill {
get {
return mBucketFill;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents text being centered.
///
// ------------------------------------------------------------------
public static Image CenterAlignment {
get {
return mCenterAlignment;
}
}
// ------------------------------------------------------------------
///
/// Gets the class shape image.
///
// ------------------------------------------------------------------
public static Image ClassShape {
get {
return mClassShape;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents a connection line.
///
// ------------------------------------------------------------------
public static Image Connection {
get {
return mConnection;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents an ellipse.
///
// ------------------------------------------------------------------
public static Image DrawEllipse {
get {
return mDrawEllipse;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents a rectangle.
///
// ------------------------------------------------------------------
public static Image DrawRectangle {
get {
return mDrawRectangle;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents font.
///
// ------------------------------------------------------------------
public static Image Font {
get {
return mFont;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents grouping objects together..
///
// ------------------------------------------------------------------
public static Image Group {
get {
return mGroup;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents text being aligned to the left.
///
// ------------------------------------------------------------------
public static Image LeftAlignment {
get {
return mLeftAlignment;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents a connection line.
///
// ------------------------------------------------------------------
public static Image MoveConnector {
get {
return mMoveConnector;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents creating a new diagram.
///
// ------------------------------------------------------------------
public static Image NewDocument {
get {
return mNewDocumnet;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents a pen drawing a line with a
/// color - used to illustrate line color.
///
// ------------------------------------------------------------------
public static Image Outline {
get {
return mOutline;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents properties.
///
// ------------------------------------------------------------------
public static Image Properties {
get {
return mProperties;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents redoing a command.
///
// ------------------------------------------------------------------
public static Image Redo {
get {
return mRedo;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents text being aligned to the right.
///
// ------------------------------------------------------------------
public static Image RightAlignment {
get {
return mRightAlignment;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents sending an object back in the
/// z-order.
///
// ------------------------------------------------------------------
public static Image SendBackwards {
get {
return mSendBackwards;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents sending an object all the way back
/// in the z-order.
///
// ------------------------------------------------------------------
public static Image SendToBack {
get {
return mSendToBack;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents a shortcut to a file or resource.
///
// ------------------------------------------------------------------
public static Image Shortcut {
get {
return mShortcut;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents undoing a command.
///
// ------------------------------------------------------------------
public static Image Undo {
get {
return mUndo;
}
}
// ------------------------------------------------------------------
///
/// Gets the image that represents ungrouping objects.
///
// ------------------------------------------------------------------
public static Image Ungroup {
get {
return mUngroup;
}
}
#endregion
#region Helpers
// ------------------------------------------------------------------
///
/// Gets the image from the embedded resources for the specified
/// filename and sets the image's transparent color to the one
/// specified..
///
/// string: The filename from the embedded
/// resources.
/// Color: The transparent color
/// for the image.
/// Image
// ------------------------------------------------------------------
static Image GetImage(string filename, Color transparentColor) {
Bitmap bmp = GetImage(filename);
bmp.MakeTransparent(transparentColor);
return bmp;
}
// ------------------------------------------------------------------
///
/// Gets the image from the embedded resources for the specified
/// filename.
///
/// string: The filename from the embedded
/// resources.
/// Image
// ------------------------------------------------------------------
static Bitmap GetImage(string filename) {
return new Bitmap(GetStream(filename));
}
// ------------------------------------------------------------------
///
/// Returns a Stream from the manifest resources for the specified
/// filename.
///
/// string
/// Stream
// ------------------------------------------------------------------
public static Stream GetStream(string filename) {
return Assembly.GetExecutingAssembly().GetManifestResourceStream(
mNameSpace +
".Resources." +
filename);
}
#endregion
}
}