diff --git a/ChangeLog b/ChangeLog index b5e435303..6ff4356be 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2003-04-14 Lee Mallabone + + * api/gtk-api.xml, sources/Gtk.metadata, gtk/ColorSelection.custom: + Fix up API in ColorSelection - Palette{From,To}String now work, and + PreviousColor is now a C# property. + 2003-04-12 Alp Toker * parser/gen_keysyms: Generates a C# Key enum from the Gdk headers diff --git a/api/gtk-api.xml b/api/gtk-api.xml index 23db8a9da..a45eb235b 100644 --- a/api/gtk-api.xml +++ b/api/gtk-api.xml @@ -2152,7 +2152,7 @@ - + - + - + - + - - - - - - diff --git a/gtk/ColorSelection.custom b/gtk/ColorSelection.custom new file mode 100644 index 000000000..2507cc3ae --- /dev/null +++ b/gtk/ColorSelection.custom @@ -0,0 +1,59 @@ +// Gtk.ColorSelection.custom - customizations and corrections for ColorSelection +// Author: Lee Mallabone +// Author: Justin Malcolm + + [DllImport("libgtk-win32-2.0-0.dll")] + static extern string gtk_color_selection_palette_to_string(Gdk.Color[] colors, int n_colors); + + /// PaletteToString Method + public static string PaletteToString(Gdk.Color[] colors) { + int n_colors = colors.Length; + string raw_ret = gtk_color_selection_palette_to_string(colors, n_colors); + string ret = raw_ret; + return ret; + } + + [DllImport("libgtk-win32-2.0-0.dll")] + static extern bool gtk_color_selection_palette_from_string(string str, out IntPtr colors, out int n_colors); + + public static Gdk.Color[] PaletteFromString(string str) { + IntPtr parsedColors; + int n_colors; + bool raw_ret = gtk_color_selection_palette_from_string(str, out parsedColors, out n_colors); + + // If things failed, return silently + if (!raw_ret) + { + return null; + } + System.Console.WriteLine("Raw call finished, making " + n_colors + " actual colors"); + Gdk.Color[] colors = new Gdk.Color[n_colors]; + for (int i=0; i < n_colors; i++) + { + colors[i] = Gdk.Color.New(parsedColors); + parsedColors = (IntPtr) ((int)parsedColors + Marshal.SizeOf(colors[i])); + } + return colors; + } + + [DllImport("libgtk-win32-2.0-0.dll")] + static extern void gtk_color_selection_set_previous_color(IntPtr raw, ref Gdk.Color color); + + [DllImport("libgtk-win32-2.0-0.dll")] + static extern void gtk_color_selection_get_previous_color(IntPtr raw, out Gdk.Color color); + + // Create Gtk# property to replace two Gtk+ functions + public Gdk.Color PreviousColor + { + get + { + Gdk.Color returnColor; + gtk_color_selection_get_previous_color(Handle, out returnColor); + return returnColor; + } + set + { + gtk_color_selection_set_previous_color(Handle, ref value); + } + } + diff --git a/sources/Gtk.metadata b/sources/Gtk.metadata index af264d282..fe42f9b1c 100644 --- a/sources/Gtk.metadata +++ b/sources/Gtk.metadata @@ -1605,6 +1605,20 @@ + + + PaletteToString + PaletteFromString + GetPreviousColor + SetPreviousColor + + + + hidden + 1 + + + ListAccelClosures