#pragma once #include "MID/Mid_Def.h" #include #include #include struct Lgc_Core_Struct_State; enum class Lgc_FunctionFeature_Type : quint8 { KeyCombination = 0, KeySequence = 1, Website = 2 }; struct Lgc_FunctionFeature_Definition { int Id = 0; QString Name; QString Description; Lgc_FunctionFeature_Type Type = Lgc_FunctionFeature_Type::KeyCombination; QString SequenceText; QString WebsiteUrl; }; struct Lgc_FunctionButton_Config { QHash FeatureMap; QHash UsageFeatureIdMap; int NextFeatureId = 1; }; QString Lgc_FunctionButton_GetUsageShortText(quint16 Usage); QString Lgc_FunctionButton_GetFeatureTypeText(Lgc_FunctionFeature_Type Type); QVector Lgc_FunctionButton_GetConfigurableUsages(); QVector Lgc_FunctionButton_GetFeatureIdList(const Lgc_FunctionButton_Config& Config); Lgc_FunctionFeature_Definition Lgc_FunctionButton_GetFeature( const Lgc_FunctionButton_Config& Config, int FeatureId); QString Lgc_FunctionButton_GetFeatureName(const Lgc_FunctionFeature_Definition& Feature); int Lgc_FunctionButton_AddFeature(Lgc_FunctionButton_Config* p_Config); void Lgc_FunctionButton_RemoveFeature(Lgc_FunctionButton_Config* p_Config, int FeatureId); void Lgc_FunctionButton_SetFeature( Lgc_FunctionButton_Config* p_Config, const Lgc_FunctionFeature_Definition& Feature); int Lgc_FunctionButton_GetUsageFeatureId( const Lgc_FunctionButton_Config& Config, quint16 Usage); void Lgc_FunctionButton_SetUsageFeatureId( Lgc_FunctionButton_Config* p_Config, quint16 Usage, int FeatureId); bool Lgc_FunctionButton_HasUsageFeature( const Lgc_FunctionButton_Config& Config, quint16 Usage); bool Lgc_FunctionButton_SendUsageToWindows(quint16 Usage, bool IsPressed); bool Lgc_FunctionButton_RunBinding( Lgc_Core_Struct_State* p_State, quint16 Usage, QString* p_TextStatus);