2018-12-01 19:12:45 -05:00
# pragma once
2018-11-01 14:07:42 -04:00
# include "qtcommon.h"
namespace Ui
{
class ExtenWindow ;
}
2019-02-09 00:30:38 -05:00
struct InfoForExtension
{
const char * name ;
int64_t value ;
} ;
bool DispatchSentenceToExtensions ( std : : wstring & sentence , const InfoForExtension * miscInfo ) ;
2019-06-21 01:29:48 -04:00
void CleanupExtensions ( ) ; // must call this before exiting the program, only way to uphold guarantee that DllMain and OnNewSentence won't be called concurrently
2018-11-01 14:07:42 -04:00
class ExtenWindow : public QMainWindow
{
public :
explicit ExtenWindow ( QWidget * parent = nullptr ) ;
~ ExtenWindow ( ) ;
private :
2019-02-18 23:12:12 -05:00
inline static constexpr auto EXTEN_SAVE_FILE = u8 " SavedExtensions.txt " ;
2019-08-29 13:46:21 -04:00
void Add ( QFileInfo extenFile ) ;
2018-11-01 14:07:42 -04:00
void Sync ( ) ;
2018-12-21 09:34:01 -05:00
bool eventFilter ( QObject * target , QEvent * event ) override ;
2018-12-21 14:18:43 -05:00
void keyPressEvent ( QKeyEvent * event ) override ;
2018-12-21 09:34:01 -05:00
void dragEnterEvent ( QDragEnterEvent * event ) override ;
void dropEvent ( QDropEvent * event ) override ;
2018-11-01 14:07:42 -04:00
Ui : : ExtenWindow * ui ;
} ;
2019-06-29 08:46:31 +05:30
inline HMODULE LoadLibraryOnce ( std : : wstring fileName ) { if ( HMODULE module = GetModuleHandleW ( fileName . c_str ( ) ) ) return module ; return LoadLibraryW ( fileName . c_str ( ) ) ; }