1#ifndef MYTHMAINWINDOW_H_
2#define MYTHMAINWINDOW_H_
19using MediaPlayCallback = int (*)(
const QString& ,
const QString& ,
const QString& ,
const QString& ,
const QString& , int, int,
const QString& , std::chrono::minutes,
const QString& ,
const QString& ,
bool);
37 void Init(
bool MayReInit =
true);
39 void MoveResize(QRect& Geometry);
42 void PopScreenStack();
48 bool TranslateKeyPress(
const QString& Context, QKeyEvent*
Event,
49 QStringList& Actions,
bool AllowJumps =
true);
50 bool KeyLongPressFilter(QEvent**
Event, QScopedPointer<QEvent>& NewEvent);
53 void ClearKey(
const QString& Context,
const QString&
Action);
54 void ClearKeyContext(
const QString& Context);
55 void BindKey(
const QString& Context,
const QString&
Action,
const QString& Key);
56 void RegisterKey(
const QString& Context,
const QString&
Action,
57 const QString& Description,
const QString& Key);
58 static QString GetKey(
const QString& Context,
const QString&
Action);
59 QObject* GetTarget(QKeyEvent& Key);
60 QString GetActionText(
const QString& Context,
const QString&
Action)
const;
62 void ClearJump(
const QString& Destination);
63 void BindJump(
const QString& Destination,
const QString& Key);
64 void RegisterJump(
const QString& Destination,
const QString& Description,
65 const QString& Key,
void (*Callback)(
void),
66 bool Exittomain =
true, QString LocalAction =
"");
68 void RegisterMediaPlugin(
const QString&
Name,
const QString& Desc,
70 bool HandleMedia(
const QString& Handler,
const QString& Mrl,
71 const QString& Plot=
"",
const QString& Title=
"",
72 const QString& Subtitle=
"",
const QString& Director=
"",
73 int Season=0,
int Episode=0,
const QString& Inetref=
"",
74 std::chrono::minutes LenMins=2h,
const QString& Year=
"1895",
75 const QString& Id=
"",
bool UseBookmarks =
false);
76 void HandleTVAction(
const QString&
Action);
78 void JumpTo(
const QString& Destination,
bool Pop =
true);
79 bool DestinationExists(
const QString& Destination)
const;
80 QStringList EnumerateDestinations()
const;
82 bool IsExitingToMain()
const;
85 static void destroyMainWindow();
89 QWidget* GetPaintWindow();
92 void ShowPainterWindow();
93 void HidePainterWindow();
94 static void GrabWindow(QImage& Image);
95 static bool SaveScreenShot(
const QImage& Image, QString Filename =
"");
96 static bool ScreenShot(
int Width = 0,
int Height = 0, QString Filename =
"");
97 static void RestoreScreensaver();
98 static void DisableScreensaver();
99 static void ResetScreensaver();
100 static bool IsScreensaverAsleep();
101 static bool IsTopScreenInitialized();
102 void RemoteScreenShot(QString Filename,
int Width,
int Height);
103 void AllowInput(
bool Allow);
104 void RestartInputHandlers();
105 uint PushDrawDisabled();
106 uint PopDrawDisabled();
107 void SetEffectsEnabled(
bool Enable);
109 void ResetIdleTimer();
110 void PauseIdleTimer(
bool Pause);
111 void DisableIdleTimer(
bool DisableIdle =
true);
112 void EnterStandby(
bool Manual =
true);
113 void ExitStandby(
bool Manual =
true);
115 QPaintEngine* paintEngine()
const override;
119 void HideMouseTimeout();
124 void DoRemoteScreenShot(
const QString& Filename,
int Width,
int Height);
125 void SetDrawEnabled(
bool Enable);
126 void OnApplicationStateChange(Qt::ApplicationState
State);
140 static void LoadQtConfig();
143 bool eventFilter(QObject* Watched, QEvent*
Event)
override;
144 void customEvent(QEvent*
Event)
override;
145 void closeEvent(QCloseEvent*
Event)
override;
146 void drawScreen(QPaintEvent*
Event =
nullptr);
147 bool event(QEvent*
Event)
override;
148 void ExitToMainMenu();
149 void ShowMouseCursor(
bool Show);
152 void DelayedAction();
165 std::chrono::minutes m_idleTime { 0min };
176 const QString& Description,
const QString& Key)
188REG_JUMP(
const QString& Destination,
const QString& Description,
189 const QString& Key,
void (*Callback)(
void))
195REG_JUMPLOC(
const QString& Destination,
const QString& Description,
196 const QString& Key,
void (*Callback)(
void),
const QString& LocalAction)
202REG_JUMPEX(
const QString& Destination,
const QString& Description,
203 const QString& Key,
void (*Callback)(
void),
bool ExitToMain)
An action (for this plugin) consists of a description, and a set of key sequences.
void SignalRemoteScreenShot(QString Filename, int Width, int Height)
void SignalDisableScreensaver()
void SignalResetScreensaver()
void SignalRestoreScreensaver()
void RegisterMediaPlugin(const QString &Name, const QString &Desc, MediaPlayCallback Func)
void RegisterJump(const QString &Destination, const QString &Description, const QString &Key, void(*Callback)(void), bool Exittomain=true, QString LocalAction="")
void SignalSetDrawEnabled(bool Enable)
static QString GetKey(const QString &Context, const QString &Action)
void RegisterKey(const QString &Context, const QString &Action, const QString &Description, const QString &Key)
MythRender * GetRenderDevice()
Controls all instances of the screensaver.
static void ReloadKeys(void)
static void InitKeys(void)
static void REG_JUMPLOC(const QString &Destination, const QString &Description, const QString &Key, void(*Callback)(void), const QString &LocalAction)
MUI_PUBLIC void DestroyMythMainWindow()
MUI_PUBLIC MythMainWindow * GetMythMainWindow()
static void REG_JUMPEX(const QString &Destination, const QString &Description, const QString &Key, void(*Callback)(void), bool ExitToMain)
MUI_PUBLIC MythPainter * GetMythPainter()
MUI_PUBLIC bool HasMythMainWindow()
int(*)(const QString &, const QString &, const QString &, const QString &, const QString &, int, int, const QString &, std::chrono::minutes, const QString &, const QString &, bool) MediaPlayCallback
static void REG_MEDIAPLAYER(const QString &Name, const QString &Desc, MediaPlayCallback Func)
static void REG_JUMP(const QString &Destination, const QString &Description, const QString &Key, void(*Callback)(void))
static QString GET_KEY(const QString &Context, const QString &Action)
static void REG_KEY(const QString &Context, const QString &Action, const QString &Description, const QString &Key)
MUI_PUBLIC MythNotificationCenter * GetNotificationCenter()