Mac support
This commit is contained in:
67
Programs/GridProxyGUI/IgeMacMenuGlobal.cs
Normal file
67
Programs/GridProxyGUI/IgeMacMenuGlobal.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace IgeMacIntegration {
|
||||
|
||||
public class IgeMacMenu {
|
||||
|
||||
[DllImport("libigemacintegration.dylib")]
|
||||
static extern void ige_mac_menu_connect_window_key_handler (IntPtr window);
|
||||
|
||||
public static void ConnectWindowKeyHandler (Gtk.Window window)
|
||||
{
|
||||
ige_mac_menu_connect_window_key_handler (window.Handle);
|
||||
}
|
||||
|
||||
[DllImport("libigemacintegration.dylib")]
|
||||
static extern void ige_mac_menu_set_global_key_handler_enabled (bool enabled);
|
||||
|
||||
public static bool GlobalKeyHandlerEnabled {
|
||||
set {
|
||||
ige_mac_menu_set_global_key_handler_enabled (value);
|
||||
}
|
||||
}
|
||||
|
||||
[DllImport("libigemacintegration.dylib")]
|
||||
static extern void ige_mac_menu_set_menu_bar(IntPtr menu_shell);
|
||||
|
||||
public static Gtk.MenuShell MenuBar {
|
||||
set {
|
||||
ige_mac_menu_set_menu_bar(value == null ? IntPtr.Zero : value.Handle);
|
||||
}
|
||||
}
|
||||
|
||||
[DllImport("libigemacintegration.dylib")]
|
||||
static extern void ige_mac_menu_set_quit_menu_item(IntPtr quit_item);
|
||||
|
||||
public static Gtk.MenuItem QuitMenuItem {
|
||||
set {
|
||||
ige_mac_menu_set_quit_menu_item(value == null ? IntPtr.Zero : value.Handle);
|
||||
}
|
||||
}
|
||||
|
||||
[DllImport("libigemacintegration.dylib")]
|
||||
static extern IntPtr ige_mac_menu_add_app_menu_group();
|
||||
|
||||
public static IgeMacIntegration.IgeMacMenuGroup AddAppMenuGroup() {
|
||||
IntPtr raw_ret = ige_mac_menu_add_app_menu_group();
|
||||
IgeMacIntegration.IgeMacMenuGroup ret = raw_ret == IntPtr.Zero ? null : (IgeMacIntegration.IgeMacMenuGroup) GLib.Opaque.GetOpaque (raw_ret, typeof (IgeMacIntegration.IgeMacMenuGroup), false);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public class IgeMacMenuGroup : GLib.Opaque {
|
||||
|
||||
[DllImport("libigemacintegration.dylib")]
|
||||
static extern void ige_mac_menu_add_app_menu_item(IntPtr raw, IntPtr menu_item, IntPtr label);
|
||||
|
||||
public void AddMenuItem(Gtk.MenuItem menu_item, string label) {
|
||||
IntPtr native_label = GLib.Marshaller.StringToPtrGStrdup (label);
|
||||
ige_mac_menu_add_app_menu_item(Handle, menu_item == null ? IntPtr.Zero : menu_item.Handle, native_label);
|
||||
GLib.Marshaller.Free (native_label);
|
||||
}
|
||||
|
||||
public IgeMacMenuGroup(IntPtr raw) : base(raw) {}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user