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; } }
static string FilenamePtrToString(IntPtr filenamePtr) { return(Marshaller.FilenamePtrToString(filenamePtr)); }