39 lines
1.0 KiB
C++
39 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include "qtcommon.h"
|
|
|
|
namespace Ui
|
|
{
|
|
class ExtenWindow;
|
|
}
|
|
|
|
struct InfoForExtension
|
|
{
|
|
const char* name;
|
|
int64_t value;
|
|
};
|
|
|
|
bool DispatchSentenceToExtensions(std::wstring& sentence, const InfoForExtension* sentenceInfo);
|
|
void CleanupExtensions(); // must call this before exiting the program, only way to uphold guarantee that DllMain and OnNewSentence won't be called concurrently
|
|
|
|
class ExtenWindow : public QMainWindow
|
|
{
|
|
public:
|
|
explicit ExtenWindow(QWidget* parent = nullptr);
|
|
~ExtenWindow();
|
|
|
|
private:
|
|
inline static constexpr auto EXTEN_SAVE_FILE = u8"SavedExtensions.txt";
|
|
|
|
void Add(QFileInfo extenFile);
|
|
void Sync();
|
|
bool eventFilter(QObject* target, QEvent* event) override;
|
|
void keyPressEvent(QKeyEvent* event) override;
|
|
void dragEnterEvent(QDragEnterEvent* event) override;
|
|
void dropEvent(QDropEvent* event) override;
|
|
|
|
Ui::ExtenWindow* ui;
|
|
};
|
|
|
|
inline HMODULE LoadLibraryOnce(std::wstring fileName) { if (HMODULE module = GetModuleHandleW(fileName.c_str())) return module; return LoadLibraryW(fileName.c_str()); }
|