Developing Extensions

With every copy of Cookie comes the CookieExtensionsFramework.dll . Simply import this DLL into your C# project to get started.

Creating the entry point

All cookie extensions derive from the ICookieExtension interface. This allows for a uniform method of installing and managing extensions effectively.

Note: Use Visual Studio IntelliSense to instantly implement the entire framework.

Sample Extension Manifest Setup.

Manifest.cs
using CookieExtensionsFramework;

namespace CookieDemoExtension
{
    public class Extension : ICookieExtension
    {
        public string Name => "ContextMenuDemo";
        public string FullName => "Cookie Context Menu Demo";
        public string Description => "Demo Application to test custom Context Menu's";
        public string Copyright => "©" + DateTime.Now.Year + " Microart Inc.";
        public string Developer => "Microart Inc.";
        public string Version => "2.0";
        public DateTime LastUpdateTime => DateTime.Parse("12/28/2021");
        public bool IsOpenSource => true;
        public Uri OpenSourceUrl => new Uri("https://opensource.microart.cf");
        public Uri HomepageUrl => new Uri("https://microart.cf");
        public ImageSource Icon => Properties.Resources.Icon;
        public string License => null;
        public IContextMenuProvider ContextMenuProvider => new ContextMenuProvider();
        public IGameLibraryProvider GameLibraryProvider => null;
    }

In this example, the extension sets up a ContextMenuProvider which allows the extension to add custom context menu items to the Cookie UI.

The ContextMenuProvider

Any given cookie extensions can register a maximum of four ContextMenuItems.

ContextMenuProvider.cs
using CookieExtensionsFramework;

namespace CookieDemoExtension
{
    class ContextMenuProvider : IContextMenuProvider
    {
        public ContextMenuItem ContextMenuItemOne => new ContextMenuItem() { Text = "Hello", Callback = () => 
            {
                MessageBox.Show("Hello");
            }
        };

        public ContextMenuItem ContextMenuItemTwo => null;

        public ContextMenuItem ContextMenuItemThree => null;

        public ContextMenuItem ContextMenuItemFour => null;
    }
}

Last updated