using Dino.Entities; namespace Dino.Plugins { public enum Priority { LOWEST, LOWER, DEFAULT, HIGHER, HIGHEST } public enum WidgetType { GTK } public interface RootInterface : Object { public abstract void registered(Dino.Application app); public abstract void shutdown(); } public interface EncryptionListEntry : Object { public abstract Entities.Encryption encryption { get; } public abstract string name { get; } public abstract bool can_encrypt(Conversation conversation); } public abstract class AccountSettingsEntry : Object { public abstract string id { get; } public virtual Priority priority { get { return Priority.DEFAULT; } } public abstract string name { get; } public virtual int16 label_top_padding { get { return -1; } } public abstract AccountSettingsWidget? get_widget(WidgetType type); } public interface AccountSettingsWidget : Object { public abstract void set_account(Account account); public abstract signal void activated(); public abstract void deactivate(); } public interface ContactDetailsProvider : Object { public abstract string id { get; } public abstract void populate(Conversation conversation, ContactDetails contact_details, WidgetType type); } public class ContactDetails : Object { public signal void save(); public signal void add(string category, string label, string? desc, Object widget); } public interface TextCommand : Object { public abstract string cmd { get; } public abstract string? handle_command(string? text, Entities.Conversation? conversation); } public interface ConversationTitlebarEntry : Object { public abstract string id { get; } public abstract double order { get; } public abstract ConversationTitlebarWidget get_widget(WidgetType type); } public interface ConversationTitlebarWidget : Object { public abstract void set_conversation(Conversation conversation); } }