~ubuntu-branches/ubuntu/oneiric/monodevelop/oneiric-updates

« back to all changes in this revision

Viewing changes to src/core/MonoDevelop.Projects/MonoDevelop.Projects.Dom/DomEvent.cs

  • Committer: Bazaar Package Importer
  • Author(s): Jo Shields
  • Date: 2009-02-18 08:40:51 UTC
  • mfrom: (1.2.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20090218084051-gh8m6ukvokbwj7cf
Tags: 1.9.2+dfsg-1ubuntu1
* Merge from Debian Experimental (LP: #330519), remaining Ubuntu changes:
  + debian/control:
    - Update for Gnome# 2.24
    - Add libmono-cairo1.0-cil to build-deps to fool pkg-config check

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//
 
2
// DomEvent.cs
 
3
//
 
4
// Author:
 
5
//   Mike Krüger <mkrueger@novell.com>
 
6
//
 
7
// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
 
8
//
 
9
// Permission is hereby granted, free of charge, to any person obtaining
 
10
// a copy of this software and associated documentation files (the
 
11
// "Software"), to deal in the Software without restriction, including
 
12
// without limitation the rights to use, copy, modify, merge, publish,
 
13
// distribute, sublicense, and/or sell copies of the Software, and to
 
14
// permit persons to whom the Software is furnished to do so, subject to
 
15
// the following conditions:
 
16
// 
 
17
// The above copyright notice and this permission notice shall be
 
18
// included in all copies or substantial portions of the Software.
 
19
// 
 
20
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 
21
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 
22
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 
23
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 
24
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 
25
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 
26
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
27
//
 
28
 
 
29
using System;
 
30
using System.Collections.Generic;
 
31
 
 
32
namespace MonoDevelop.Projects.Dom
 
33
{
 
34
        public class DomEvent : AbstractMember, IEvent
 
35
        {
 
36
                IMethod addMethod = null;
 
37
                IMethod removeMethod = null;
 
38
                IMethod raiseMethod = null;
 
39
                
 
40
                public virtual IMethod AddMethod {
 
41
                        get {
 
42
                                if (addMethod != null)
 
43
                                        return addMethod;
 
44
                                return LookupSpecialMethod ("add_");
 
45
                        }
 
46
                        set {
 
47
                                addMethod = value;
 
48
                        }
 
49
                }
 
50
                
 
51
                public virtual IMethod RemoveMethod {
 
52
                        get {
 
53
                                if (removeMethod != null)
 
54
                                        return removeMethod;
 
55
                                return LookupSpecialMethod ("remove_");
 
56
                        }
 
57
                        set {
 
58
                                removeMethod = value;
 
59
                        }
 
60
                }
 
61
                
 
62
                public virtual IMethod RaiseMethod {
 
63
                        get {
 
64
                                if (raiseMethod != null)
 
65
                                        return raiseMethod;
 
66
                                return LookupSpecialMethod ("raise_");
 
67
                        }
 
68
                        set {
 
69
                                raiseMethod = value;
 
70
                        }
 
71
                }
 
72
                
 
73
                public DomEvent ()
 
74
                {
 
75
                }
 
76
                
 
77
                public DomEvent (string name, Modifiers modifiers, DomLocation location, IReturnType returnType)
 
78
                {
 
79
                        this.Name = name;
 
80
                        this.Modifiers = modifiers;
 
81
                        this.Location = location;
 
82
                        this.ReturnType = returnType;
 
83
                }
 
84
                
 
85
                public override string HelpUrl {
 
86
                        get {
 
87
                                return "F:" + this.FullName;
 
88
                        }
 
89
                }
 
90
                
 
91
                static readonly string[] iconTable = {Stock.Event, Stock.PrivateEvent, Stock.ProtectedEvent, Stock.InternalEvent};
 
92
                public override string StockIcon {
 
93
                        get {
 
94
                                return iconTable [ModifierToOffset (Modifiers)];
 
95
                        }
 
96
                }
 
97
                
 
98
                public override string ToString ()
 
99
                {
 
100
                        return string.Format ("[DomEvent:Name={0}, Modifiers={1}, ReturnType={2}, Location={3}]",
 
101
                                              Name,
 
102
                                              Modifiers,
 
103
                                              ReturnType,
 
104
                                              Location);
 
105
                }
 
106
                
 
107
                public override int CompareTo (object obj)
 
108
                {
 
109
                        if (obj is IEvent)
 
110
                                return Name.CompareTo (((IEvent)obj).Name);
 
111
                        return 1;
 
112
                }
 
113
                
 
114
                public override S AcceptVisitor<T, S> (IDomVisitor<T, S> visitor, T data)
 
115
                {
 
116
                        return visitor.Visit (this, data);
 
117
                }
 
118
        }
 
119
}