//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    [SmokeClass("QColormap")]
    public class QColormap : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QColormap(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QColormap), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QColormap() {
            staticInterceptor = new SmokeInvocation(typeof(QColormap), null);
        }
        public enum Mode {
            Direct = 0,
            Indexed = 1,
            Gray = 2,
        }
        public QColormap(QColormap colormap) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QColormap#", "QColormap(const QColormap&)", typeof(void), typeof(QColormap), colormap);
        }
        public QColormap.Mode mode() {
            return (QColormap.Mode) interceptor.Invoke("mode", "mode() const", typeof(QColormap.Mode));
        }
        public int Depth() {
            return (int) interceptor.Invoke("depth", "depth() const", typeof(int));
        }
        public int Size() {
            return (int) interceptor.Invoke("size", "size() const", typeof(int));
        }
        public uint Pixel(QColor color) {
            return (uint) interceptor.Invoke("pixel#", "pixel(const QColor&) const", typeof(uint), typeof(QColor), color);
        }
        public QColor ColorAt(uint pixel) {
            return (QColor) interceptor.Invoke("colorAt$", "colorAt(uint) const", typeof(QColor), typeof(uint), pixel);
        }
        public List<QColor> Colormap() {
            return (List<QColor>) interceptor.Invoke("colormap", "colormap() const", typeof(List<QColor>));
        }
        ~QColormap() {
            interceptor.Invoke("~QColormap", "~QColormap()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QColormap", "~QColormap()", typeof(void));
        }
        public static void Initialize() {
            staticInterceptor.Invoke("initialize", "initialize()", typeof(void));
        }
        public static void Cleanup() {
            staticInterceptor.Invoke("cleanup", "cleanup()", typeof(void));
        }
        public static QColormap Instance(int screen) {
            return (QColormap) staticInterceptor.Invoke("instance$", "instance(int)", typeof(QColormap), typeof(int), screen);
        }
        public static QColormap Instance() {
            return (QColormap) staticInterceptor.Invoke("instance", "instance()", typeof(QColormap));
        }
    }
}
