mirror of https://github.com/ppy/SDL3-CS.git
Add SDL_tray
This commit is contained in:
parent
d393ea3354
commit
e017626460
|
|
@ -0,0 +1,127 @@
|
|||
/*
|
||||
<auto-generated/>
|
||||
C# bindings for Simple DirectMedia Layer.
|
||||
Original copyright notice of input files:
|
||||
|
||||
Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace SDL
|
||||
{
|
||||
public partial struct SDL_Tray
|
||||
{
|
||||
}
|
||||
|
||||
public partial struct SDL_TrayMenu
|
||||
{
|
||||
}
|
||||
|
||||
public partial struct SDL_TrayEntry
|
||||
{
|
||||
}
|
||||
|
||||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Tray* SDL_CreateTray(SDL_Surface* icon, [NativeTypeName("const char *")] byte* tooltip);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_SetTrayIcon(SDL_Tray* tray, SDL_Surface* icon);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_SetTrayTooltip(SDL_Tray* tray, [NativeTypeName("const char *")] byte* tooltip);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_TrayMenu* SDL_CreateTrayMenu(SDL_Tray* tray);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_TrayMenu* SDL_CreateTraySubmenu(SDL_TrayEntry* entry);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_TrayMenu* SDL_GetTrayMenu(SDL_Tray* tray);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_TrayMenu* SDL_GetTraySubmenu(SDL_TrayEntry* entry);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("const SDL_TrayEntry **")]
|
||||
public static extern SDL_TrayEntry** SDL_GetTrayEntries(SDL_TrayMenu* menu, int* size);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_RemoveTrayEntry(SDL_TrayEntry* entry);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_TrayEntry* SDL_InsertTrayEntryAt(SDL_TrayMenu* menu, int pos, [NativeTypeName("const char *")] byte* label, SDL_TrayEntryFlags flags);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_SetTrayEntryLabel(SDL_TrayEntry* entry, [NativeTypeName("const char *")] byte* label);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetTrayEntryLabel", ExactSpelling = true)]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetTrayEntryLabel(SDL_TrayEntry* entry);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_SetTrayEntryChecked(SDL_TrayEntry* entry, [NativeTypeName("bool")] SDLBool @checked);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetTrayEntryChecked(SDL_TrayEntry* entry);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_SetTrayEntryEnabled(SDL_TrayEntry* entry, [NativeTypeName("bool")] SDLBool enabled);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetTrayEntryEnabled(SDL_TrayEntry* entry);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_SetTrayEntryCallback(SDL_TrayEntry* entry, [NativeTypeName("SDL_TrayCallback")] delegate* unmanaged[Cdecl]<IntPtr, SDL_TrayEntry*, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_DestroyTray(SDL_Tray* tray);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_TrayMenu* SDL_GetTrayEntryParent(SDL_TrayEntry* entry);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_TrayEntry* SDL_GetTrayMenuParentEntry(SDL_TrayMenu* menu);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Tray* SDL_GetTrayMenuParentTray(SDL_TrayMenu* menu);
|
||||
|
||||
[NativeTypeName("#define SDL_TRAYENTRY_BUTTON 0x00000001u")]
|
||||
public const uint SDL_TRAYENTRY_BUTTON = 0x00000001U;
|
||||
|
||||
[NativeTypeName("#define SDL_TRAYENTRY_CHECKBOX 0x00000002u")]
|
||||
public const uint SDL_TRAYENTRY_CHECKBOX = 0x00000002U;
|
||||
|
||||
[NativeTypeName("#define SDL_TRAYENTRY_SUBMENU 0x00000004u")]
|
||||
public const uint SDL_TRAYENTRY_SUBMENU = 0x00000004U;
|
||||
|
||||
[NativeTypeName("#define SDL_TRAYENTRY_DISABLED 0x80000000u")]
|
||||
public const uint SDL_TRAYENTRY_DISABLED = 0x80000000U;
|
||||
|
||||
[NativeTypeName("#define SDL_TRAYENTRY_CHECKED 0x40000000u")]
|
||||
public const uint SDL_TRAYENTRY_CHECKED = 0x40000000U;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System;
|
||||
|
||||
namespace SDL
|
||||
{
|
||||
[Flags]
|
||||
[Typedef]
|
||||
public enum SDL_TrayEntryFlags : UInt32
|
||||
{
|
||||
SDL_TRAYENTRY_BUTTON = SDL3.SDL_TRAYENTRY_BUTTON,
|
||||
SDL_TRAYENTRY_CHECKBOX = SDL3.SDL_TRAYENTRY_CHECKBOX,
|
||||
SDL_TRAYENTRY_SUBMENU = SDL3.SDL_TRAYENTRY_SUBMENU,
|
||||
SDL_TRAYENTRY_DISABLED = SDL3.SDL_TRAYENTRY_DISABLED,
|
||||
SDL_TRAYENTRY_CHECKED = SDL3.SDL_TRAYENTRY_CHECKED,
|
||||
}
|
||||
|
||||
public static partial class SDL3
|
||||
{
|
||||
// The code below is currently incorrect because of https://github.com/libsdl-org/SDL/issues/11787.
|
||||
// [MustDisposeResource]
|
||||
// public static unsafe SDLOpaquePointerArray<SDL_TrayEntry>? SDL_GetTrayEntries(SDL_TrayMenu* menu)
|
||||
// {
|
||||
// int count;
|
||||
// var array = SDL_GetTrayEntries(menu, &count);
|
||||
// return SDLArray.CreateOpaque(array, count);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
|
@ -156,6 +156,7 @@ headers = [
|
|||
add("SDL3/SDL_thread.h"),
|
||||
add("SDL3/SDL_time.h"),
|
||||
add("SDL3/SDL_timer.h"),
|
||||
add("SDL3/SDL_tray.h"),
|
||||
add("SDL3/SDL_touch.h"),
|
||||
add("SDL3/SDL_version.h"),
|
||||
add("SDL3/SDL_video.h"),
|
||||
|
|
|
|||
Loading…
Reference in New Issue