コード例 #1
0
        void FillValue(int i, GimpParam param)
        {
            Type type = this[i].Type;

            switch (param.type)
            {
            case PDBArgType.Int32:
                if (type == typeof(int) || type == typeof(uint))
                {
                    this[i].Value = (Int32)param.data.d_int32;
                }
                else if (type == typeof(bool))
                {
                    this[i].Value = ((Int32)param.data.d_int32 == 0)
              ? false
              : true;
                }
                break;

            case PDBArgType.Float:
                this[i].Value = param.data.d_float;
                break;

            case PDBArgType.Color:
                this[i].Value = new RGB(param.data.d_color);
                break;

            case PDBArgType.Image:
                this[i].Value = new Image((Int32)param.data.d_image);
                break;

            case PDBArgType.String:
                if (type == typeof(string))
                {
                    this[i].Value = Marshal.PtrToStringAuto(param.data.d_string);
                }
                else
                {
                    this[i].Value = Marshaller.FilenamePtrToString
                                        (param.data.d_string);
                }
                break;

            case PDBArgType.Drawable:
                this[i].Value = new Drawable((Int32)param.data.d_drawable);
                break;

            default:
                Console.WriteLine("Fill: parameter " + param.type +
                                  " not supported yet!");
                break;
            }
        }
コード例 #2
0
 static string FilenamePtrToString(IntPtr filenamePtr)
 {
     return(Marshaller.FilenamePtrToString(filenamePtr));
 }