aboutsummaryrefslogblamecommitdiffstats
path: root/modules/plugin-mono/Evolution.cs
blob: 0db54405b3eea57b532752353146eef87a92127c (plain) (tree)
1
2
3
4
5
6





                                     
























                                              






















                                                                                                                                                 







































































































                                                                                                         
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); }
        }

    }
};