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 bool eventFilter(QObject* Watched, QEvent*
Event)
override;
39 void Init(
bool MayReInit =
true);
41 void MoveResize(QRect& Geometry);
44 void PopScreenStack();
50 bool TranslateKeyPress(
const QString& Context, QKeyEvent*
Event,
51 QStringList& Actions,
bool AllowJumps =
true);
52 bool KeyLongPressFilter(QEvent**
Event, QScopedPointer<QEvent>& NewEvent);
55 void ClearKey(
const QString& Context,
const QString&
Action);
56 void ClearKeyContext(
const QString& Context);
57 void BindKey(
const QString& Context,
const QString&
Action,
const QString& Key);
58 void RegisterKey(
const QString& Context,
const QString&
Action,
59 const QString& Description,
const QString& Key);
60 static QString GetKey(
const QString& Context,
const QString&
Action);
61 QObject* GetTarget(QKeyEvent& Key);
62 QString GetActionText(
const QString& Context,
const QString&
Action)
const;
64 void ClearJump(
const QString& Destination);
65 void BindJump(
const QString& Destination,
const QString& Key);
66 void RegisterJump(
const QString& Destination,
const QString& Description,
67 const QString& Key,
void (*Callback)(
void),
68 bool Exittomain =
true, QString LocalAction =
"");
70 void RegisterMediaPlugin(
const QString&
Name,
const QString& Desc,
72 bool HandleMedia(
const QString& Handler,
const QString& Mrl,
73 const QString& Plot=
"",
const QString& Title=
"",
74 const QString& Subtitle=
"",
const QString& Director=
"",
75 int Season=0,
int Episode=0,
const QString& Inetref=
"",
76 std::chrono::minutes LenMins=2h,
const QString& Year=
"1895",
77 const QString& Id=
"",
bool UseBookmarks =
false);
78 void HandleTVAction(
const QString&
Action);
80 void JumpTo(
const QString& Destination,
bool Pop =
true);
81 bool DestinationExists(
const QString& Destination)
const;
82 QStringList EnumerateDestinations()
const;
84 bool IsExitingToMain()
const;
87 static void destroyMainWindow();
91 QWidget* GetPaintWindow();
94 void ShowPainterWindow();
95 void HidePainterWindow();
96 static void GrabWindow(QImage& Image);
97 static bool SaveScreenShot(
const QImage& Image, QString Filename =
"");
98 static bool ScreenShot(
int Width = 0,
int Height = 0, QString Filename =
"");
99 static void RestoreScreensaver();
100 static void DisableScreensaver();
101 static void ResetScreensaver();
102 static bool IsScreensaverAsleep();
103 static bool IsTopScreenInitialized();
104 void RemoteScreenShot(QString Filename,
int Width,
int Height);
105 void AllowInput(
bool Allow);
106 void RestartInputHandlers();
107 uint PushDrawDisabled();
108 uint PopDrawDisabled();
109 void SetEffectsEnabled(
bool Enable);
111 void ResetIdleTimer();
112 void PauseIdleTimer(
bool Pause);
113 void DisableIdleTimer(
bool DisableIdle =
true);
114 void EnterStandby(
bool Manual =
true);
115 void ExitStandby(
bool Manual =
true);
117 QPaintEngine* paintEngine()
const override;
121 void HideMouseTimeout();
126 void DoRemoteScreenShot(
const QString& Filename,
int Width,
int Height);
127 void SetDrawEnabled(
bool Enable);
128 void OnApplicationStateChange(Qt::ApplicationState
State);
142 static void LoadQtConfig();
145 void customEvent(QEvent*
Event)
override;
146 void closeEvent(QCloseEvent*
Event)
override;
147 void drawScreen(QPaintEvent*
Event =
nullptr);
148 bool event(QEvent*
Event)
override;
149 void ExitToMainMenu();
150 void ShowMouseCursor(
bool Show);
153 void DelayedAction();
166 std::chrono::minutes m_idleTime { 0min };
177 const QString& Description,
const QString& Key)
189REG_JUMP(
const QString& Destination,
const QString& Description,
190 const QString& Key,
void (*Callback)(
void))
196REG_JUMPLOC(
const QString& Destination,
const QString& Description,
197 const QString& Key,
void (*Callback)(
void),
const QString& LocalAction)
203REG_JUMPEX(
const QString& Destination,
const QString& Description,
204 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()