aboutsummaryrefslogtreecommitdiffstats
path: root/modules/plugin-mono/Evolution.cs
blob: 0db54405b3eea57b532752353146eef87a92127c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
using System;
using System.Runtime.InteropServices;
using System.Reflection;

using Camel;

namespace Evolution {
    [StructLayout (LayoutKind.Sequential)]
    public class PopupTarget {
        public IntPtr popup;
        public IntPtr widget;
        public int type;
        public int mask;
    };

    [StructLayout (LayoutKind.Sequential)]
    public class MenuTarget {
        public IntPtr menu;
        public IntPtr widget;
        public int type;
        public int mask;
    };

    [StructLayout (LayoutKind.Sequential)]
    public class EventTarget {
        public IntPtr aevent;
        public int type;
        public int mask;
    };
};

namespace Evolution {
    public class Error {
        // can we marshal varags from c#?
        [DllImport("eutil")] static extern int e_error_run(IntPtr parent, string tag, IntPtr end);
        [DllImport("eutil")] static extern int e_error_run(IntPtr parent, string tag, string arg0, IntPtr end);
        [DllImport("eutil")] static extern int e_error_run(IntPtr parent, string tag, string arg0, string arg1, IntPtr end);
        [DllImport("eutil")] static extern int e_error_run(IntPtr parent, string tag, string arg0, string arg1, string arg2, IntPtr end);

        public static int run(IntPtr parent, string tag) {
            return e_error_run(parent, tag, (IntPtr)0);
        }
        public static int run(IntPtr parent, string tag, string arg0) {
            return e_error_run(parent, tag, arg0, (IntPtr)0);
        }
        public static int run(IntPtr parent, string tag, string arg0, string arg1) {
            return e_error_run(parent, tag, arg0, arg1, (IntPtr)0);
        }
        public static int run(IntPtr parent, string tag, string arg0, string arg1, string arg2) {
            return e_error_run(parent, tag, arg0, arg1, arg2, (IntPtr)0);
        }
    }
}

namespace Evolution.Mail {
    /* ********************************************************************** */
    [StructLayout (LayoutKind.Sequential)]
    public class PopupTargetSelect : PopupTarget {
        public IntPtr _folder;
        public string uri;
        public IntPtr _uids;

        public static PopupTargetSelect get(IntPtr o) {
            return (PopupTargetSelect)Marshal.PtrToStructure(o, typeof(PopupTargetSelect));
        }

        public Camel.Folder folder {
            get { return (Camel.Folder)Camel.Object.fromCamel(_folder); }
        }

        public string [] uids {
            get { return Camel.Util.getUIDArray(_uids); }
        }       
    }

    [StructLayout (LayoutKind.Sequential)]
    public class PopupTargetURI : Evolution.PopupTarget {
        public string uri;

        public static PopupTargetURI get(IntPtr o) {
            return (PopupTargetURI)Marshal.PtrToStructure(o, typeof(PopupTargetURI));
        }
    }

    [StructLayout (LayoutKind.Sequential)]
    public class PopupTargetPart : PopupTarget {
        public string mimeType;
        public IntPtr _part;

        public static PopupTargetPart get(IntPtr o) {
            return (PopupTargetPart)Marshal.PtrToStructure(o, typeof(PopupTargetPart));
        }

        public Camel.Object part {
            get { return (Camel.Object)Camel.Object.fromCamel(_part); }
        }
    }

    [StructLayout (LayoutKind.Sequential)]
    public struct PopupTargetFolder {
        public Evolution.PopupTarget target;
        public string uri;

        public static PopupTargetFolder get(IntPtr o) {
            return (PopupTargetFolder)Marshal.PtrToStructure(o, typeof(PopupTargetFolder));
        }
    }

    /* ********************************************************************** */
    [StructLayout (LayoutKind.Sequential)]
    public class MenuTargetSelect : MenuTarget {
        public IntPtr _folder;
        public string uri;
        public IntPtr _uids;

        public static MenuTargetSelect get(IntPtr o) {
            return (MenuTargetSelect)Marshal.PtrToStructure(o, typeof(MenuTargetSelect));
        }

        public Camel.Folder folder {
            get { return (Camel.Folder)Camel.Object.fromCamel(_folder); }
        }

        public string [] uids {
            get { return Camel.Util.getUIDArray(_uids); }
        }       
    }

    /* ********************************************************************** */
    [StructLayout (LayoutKind.Sequential)]
    public class EventTargetFolder : EventTarget {
        public string uri;

        public static EventTargetFolder get(IntPtr o) {
            return (EventTargetFolder)Marshal.PtrToStructure(o, typeof(EventTargetFolder));
        }
    }

    [StructLayout (LayoutKind.Sequential)]
    public class EventTargetMessage : EventTarget {
        public IntPtr _folder;
        public string uid;
        public IntPtr _message;

        public static EventTargetMessage get(IntPtr o) {
            return (EventTargetMessage)Marshal.PtrToStructure(o, typeof(EventTargetMessage));
        }

        public Camel.Folder folder {
            get { return (Camel.Folder)Camel.Object.fromCamel(_folder); }
        }

        public Camel.MimeMessage message {
            get { return (Camel.MimeMessage)Camel.Object.fromCamel(_message); }
        }

    }
};