~ubuntu-branches/ubuntu/trusty/pdfmod/trusty

« back to all changes in this revision

Viewing changes to lib/PdfSharp/PdfSharp.Pdf.Annotations/PdfRubberStampAnnotation.cs

  • Committer: Bazaar Package Importer
  • Author(s): Chow Loong Jin
  • Date: 2010-06-18 03:44:46 UTC
  • Revision ID: james.westby@ubuntu.com-20100618034446-bogifrsscpayp361
Tags: upstream-0.8.3
ImportĀ upstreamĀ versionĀ 0.8.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#region PDFsharp - A .NET library for processing PDF
 
2
//
 
3
// Authors:
 
4
//   Stefan Lange (mailto:Stefan.Lange@pdfsharp.com)
 
5
//
 
6
// Copyright (c) 2005-2008 empira Software GmbH, Cologne (Germany)
 
7
//
 
8
// http://www.pdfsharp.com
 
9
// http://sourceforge.net/projects/pdfsharp
 
10
//
 
11
// Permission is hereby granted, free of charge, to any person obtaining a
 
12
// copy of this software and associated documentation files (the "Software"),
 
13
// to deal in the Software without restriction, including without limitation
 
14
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
 
15
// and/or sell copies of the Software, and to permit persons to whom the
 
16
// Software is furnished to do so, subject to the following conditions:
 
17
//
 
18
// The above copyright notice and this permission notice shall be included
 
19
// in all copies or substantial portions of the Software.
 
20
//
 
21
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 
22
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 
23
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 
24
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 
25
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 
26
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
 
27
// DEALINGS IN THE SOFTWARE.
 
28
#endregion
 
29
 
 
30
using System;
 
31
using System.Globalization;
 
32
using System.Diagnostics;
 
33
using System.Collections;
 
34
using PdfSharp.Internal;
 
35
using PdfSharp.Drawing;
 
36
using PdfSharp.Pdf;
 
37
using PdfSharp.Pdf.IO;
 
38
using PdfSharp.Pdf.Internal;
 
39
 
 
40
namespace PdfSharp.Pdf.Annotations
 
41
{
 
42
  /// <summary>
 
43
  /// Represents a rubber stamp annotation.
 
44
  /// </summary>
 
45
  public sealed class PdfRubberStampAnnotation : PdfAnnotation
 
46
  {
 
47
    /// <summary>
 
48
    /// Initializes a new instance of the <see cref="PdfRubberStampAnnotation"/> class.
 
49
    /// </summary>
 
50
    public PdfRubberStampAnnotation()
 
51
    {
 
52
      Initialize();
 
53
    }
 
54
 
 
55
    /// <summary>
 
56
    /// Initializes a new instance of the <see cref="PdfRubberStampAnnotation"/> class.
 
57
    /// </summary>
 
58
    /// <param name="document">The document.</param>
 
59
    public PdfRubberStampAnnotation(PdfDocument document)
 
60
      : base(document)
 
61
    {
 
62
      Initialize();
 
63
    }
 
64
 
 
65
    void Initialize()
 
66
    {
 
67
      Elements.SetName(Keys.Subtype, "/Stamp");
 
68
      Color = XColors.Yellow;
 
69
    }
 
70
 
 
71
    /// <summary>
 
72
    /// Gets or sets an icon to be used in displaying the annotation.
 
73
    /// </summary>
 
74
    public PdfRubberStampAnnotationIcon Icon
 
75
    {
 
76
      get
 
77
      {
 
78
        string value = Elements.GetName(Keys.Name);
 
79
        if (value == "")
 
80
          return PdfRubberStampAnnotationIcon.NoIcon;
 
81
        value = value.Substring(1);
 
82
        if (!Enum.IsDefined(typeof(PdfRubberStampAnnotationIcon), value))
 
83
          return PdfRubberStampAnnotationIcon.NoIcon;
 
84
        return (PdfRubberStampAnnotationIcon)Enum.Parse(typeof(PdfRubberStampAnnotationIcon), value);
 
85
      }
 
86
      set
 
87
      {
 
88
        if (Enum.IsDefined(typeof(PdfRubberStampAnnotationIcon), value) &&
 
89
          PdfRubberStampAnnotationIcon.NoIcon != value)
 
90
        {
 
91
          Elements.SetName(Keys.Name, "/" + value.ToString());
 
92
        }
 
93
        else
 
94
          Elements.Remove(Keys.Name);
 
95
      }
 
96
    }
 
97
 
 
98
    /// <summary>
 
99
    /// Predefined keys of this dictionary.
 
100
    /// </summary>
 
101
    internal new class Keys : PdfAnnotation.Keys
 
102
    {
 
103
      /// <summary>
 
104
      /// (Optional) The name of an icon to be used in displaying the annotation. Viewer
 
105
      /// applications should provide predefined icon appearances for at least the following
 
106
      /// standard names:
 
107
      ///   Approved
 
108
      ///   AsIs
 
109
      ///   Confidential
 
110
      ///   Departmental
 
111
      ///   Draft
 
112
      ///   Experimental
 
113
      ///   Expired
 
114
      ///   Final
 
115
      ///   ForComment
 
116
      ///   ForPublicRelease
 
117
      ///   NotApproved
 
118
      ///   NotForPublicRelease
 
119
      ///   Sold
 
120
      ///   TopSecret
 
121
      /// </summary>
 
122
      [KeyInfo(KeyType.Name | KeyType.Optional)]
 
123
      public const string Name = "/Name";
 
124
 
 
125
      public static DictionaryMeta Meta
 
126
      {
 
127
        get
 
128
        {
 
129
          if (Keys.meta == null)
 
130
            Keys.meta = CreateMeta(typeof(Keys));
 
131
          return Keys.meta;
 
132
        }
 
133
      }
 
134
      static DictionaryMeta meta;
 
135
    }
 
136
 
 
137
    /// <summary>
 
138
    /// Gets the KeysMeta of this dictionary type.
 
139
    /// </summary>
 
140
    internal override DictionaryMeta Meta
 
141
    {
 
142
      get { return Keys.Meta; }
 
143
    }
 
144
  }
 
145
}