Last active
April 27, 2018 12:38
-
-
Save Nihlus/01f2457406aa5776a7502d371cba6d29 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Accel.cs - customizations to Gtk.Accel | |
// | |
// Authors: Mike Kestner <mkestner@ximian.com> | |
// | |
// Copyright (c) 2004-2005 Novell, Inc. | |
// | |
// This program is free software; you can redistribute it and/or | |
// modify it under the terms of version 2 of the Lesser GNU General | |
// Public License as published by the Free Software Foundation. | |
// | |
// This program is distributed in the hope that it will be useful, | |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
// Lesser General Public License for more details. | |
// | |
// You should have received a copy of the GNU Lesser General Public | |
// License along with this program; if not, write to the | |
// Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
// Boston, MA 02111-1307, USA. | |
namespace Gtk | |
{ | |
using System; | |
using System.Runtime.InteropServices; | |
public partial class Accel | |
{ | |
private interface IAccel | |
{ | |
[NativeSymbol("gtk_accel_map_save")] | |
void MapSave(IntPtr file_name); | |
[NativeSymbol("gtk_accel_map_add_filter")] | |
void MapAddFilter(IntPtr filter_pattern); | |
[NativeSymbol("gtk_accel_map_foreach_unfiltered")] | |
void MapForeachUnfiltered(IntPtr data, GtkSharp.AccelMapForeachNative foreachFunc); | |
[NativeSymbol("gtk_accel_map_save_fd")] | |
void MapSaveFd(int fd); | |
[NativeSymbol("gtk_accel_map_add_entry")] | |
void MapAddEntry(IntPtr accelPath, uint accelKey, int accelMods); | |
[NativeSymbol("gtk_accel_map_load_fd")] | |
void MapLoadFd(int fd); | |
[NativeSymbol("gtk_accel_map_lookup_entry")] | |
void MapLookupEntry(IntPtr accelPath, ref Gtk.AccelKey key); | |
[NativeSymbol("gtk_accel_map_change_entry")] | |
void MapChangeEntry(IntPtr accelPath, uing accelKey, int accelMods, bool replace); | |
[NativeSymbol("gtk_accel_map_load")] | |
void MapLoad(IntPtr fileName); | |
[NativeSymbol("gtk_accel_map_foreach")] | |
void MapForeach(IntPtr data, GtkSharp.AccelMapForeachNative foreachFunc); | |
[NativeSymbol("gtk_accel_groups_from_object")] | |
IntPtr GroupsFromObject(IntPtr obj); | |
} | |
private static IAccel Native; | |
static Accel() | |
{ | |
Native = NativeLibraryBuilder.Default.ActivateInterface<IAccel>(Library.Gtk); | |
} | |
[Obsolete("Moved to AccelMap class. Use AccelMap.Save instead")] | |
public static void MapSave(string file_name) | |
{ | |
IntPtr native = GLib.Marshaller.StringToPtrGStrdup (file_name); | |
Native.MapSave(native); | |
GLib.Marshaller.Free (native); | |
} | |
[Obsolete("Moved to AccelMap class. Use AccelMap.AddFilter instead")] | |
public static void MapAddFilter(string filter_pattern) | |
{ | |
IntPtr native = GLib.Marshaller.StringToPtrGStrdup (filter_pattern); | |
Native.MapAddFilter(native); | |
GLib.Marshaller.Free (native); | |
} | |
[Obsolete("Moved to AccelMap class. Use AccelMap.ForeachUnfiltered instead")] | |
public static void MapForeachUnfiltered(IntPtr data, Gtk.AccelMapForeach foreach_func) | |
{ | |
GtkSharp.AccelMapForeachWrapper foreach_func_wrapper = new GtkSharp.AccelMapForeachWrapper (foreach_func); | |
Native.MapForeachUnfiltered(data, foreach_func_wrapper.NativeDelegate); | |
} | |
[Obsolete("Moved to AccelMap class. Use AccelMap.SaveFd instead")] | |
public static void MapSaveFd(int fd) | |
{ | |
Native.MapSaveFd(fd); | |
} | |
[Obsolete("Moved to AccelMap class. Use AccelMap.AddEntry instead")] | |
public static void MapAddEntry(string accel_path, uint accel_key, Gdk.ModifierType accel_mods) | |
{ | |
IntPtr native = GLib.Marshaller.StringToPtrGStrdup (accel_path); | |
Native.MapAddEntry(native, accel_key, (int) accel_mods); | |
GLib.Marshaller.Free (native); | |
} | |
[Obsolete("Moved to AccelMap class. Use AccelMap.LoadFd instead")] | |
public static void MapLoadFd(int fd) | |
{ | |
gtk_accel_map_load_fd(fd); | |
} | |
[Obsolete("Moved to AccelMap class. Use AccelMap.LookupEntry instead")] | |
public static bool MapLookupEntry(string accel_path, Gtk.AccelKey key) | |
{ | |
IntPtr native = GLib.Marshaller.StringToPtrGStrdup (accel_path); | |
bool ret = Native.MapLookupEntry(native, ref key); | |
GLib.Marshaller.Free (native); | |
return ret; | |
} | |
[Obsolete("Moved to AccelMap class. Use AccelMap.ChangeEntry instead")] | |
public static bool MapChangeEntry (string accel_path, uint accel_key, Gdk.ModifierType accel_mods, bool replace) | |
{ | |
IntPtr native = GLib.Marshaller.StringToPtrGStrdup (accel_path); | |
bool ret = Native.MapChangeEntry(native, accel_key, (int) accel_mods, replace); | |
GLib.Marshaller.Free (native); | |
return ret; | |
} | |
[Obsolete("Moved to AccelMap class. Use AccelMap.Load instead")] | |
public static void MapLoad (string file_name) | |
{ | |
IntPtr native = GLib.Marshaller.StringToPtrGStrdup (file_name); | |
Native.MapLoad(native); | |
GLib.Marshaller.Free (native); | |
} | |
[Obsolete("Moved to AccelMap class. Use AccelMap.Foreach instead")] | |
public static void MapForeach(IntPtr data, Gtk.AccelMapForeach foreach_func) | |
{ | |
GtkSharp.AccelMapForeachWrapper foreach_func_wrapper = new GtkSharp.AccelMapForeachWrapper (foreach_func); | |
Native.MapForeach(data, foreach_func_wrapper.NativeDelegate); | |
} | |
public static AccelGroup[] GroupsFromObject (GLib.Object obj) | |
{ | |
IntPtr raw_ret = Native.GroupsFromObject(obj.Handle); | |
if (raw_ret == IntPtr.Zero) | |
{ | |
return new AccelGroup [0]; | |
} | |
GLib.SList list = new GLib.SList(raw_ret); | |
AccelGroup[] result = new AccelGroup [list.Count]; | |
for (int i = 0; i < list.Count; i++) | |
{ | |
result [i] = list [i] as AccelGroup; | |
} | |
return result; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment