1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-08-17 00:31:42 +02:00
Files
.github
.idea
bld
lib
TweetLib.Api
TweetLib.Browser
TweetLib.Browser.CEF
Component
Data
ByteArrayResource.cs
ContextMenuActionRegistry.cs
DownloadCallbacks.cs
ResourceHandlerRegistry.cs
Dialogs
Interfaces
Logic
Utils
Lib.cs
TweetLib.Browser.CEF.csproj
TweetLib.Communication
TweetLib.Core
TweetLib.Utils
TweetTest.Browser.CEF
TweetTest.Core
TweetTest.Utils
linux
resources
windows
.gitattributes
.gitignore
LICENSE.md
README.md
TweetDuck.sln
TweetDuck.sln.DotSettings
Version.cs
global.json
TweetDuck/lib/TweetLib.Browser.CEF/Data/ContextMenuActionRegistry.cs

30 lines
558 B
C#

using System;
using System.Collections.Generic;
namespace TweetLib.Browser.CEF.Data {
abstract class ContextMenuActionRegistry<T> where T : notnull {
private readonly Dictionary<T, Action> actions = new ();
protected abstract T NextId(int n);
public T AddAction(Action action) {
T id = NextId(actions.Count);
actions[id] = action;
return id;
}
public bool Execute(T id) {
if (actions.TryGetValue(id, out var action)) {
action();
return true;
}
return false;
}
public void Clear() {
actions.Clear();
}
}
}