ImagingTools Core SDK
CVirtualKeyboardShowCommandComp.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QProcess>
7
8// ACF includes
9#include <imod/TSingleModelObserverBase.h>
10#include <icomp/CComponentBase.h>
11#include <ibase/ICommandsProvider.h>
12#include <ifile/IFileNameParam.h>
13#include <iqtgui/IIconProvider.h>
14#include <iqtgui/CHierarchicalCommand.h>
15#include <iqtgui/TMakeIconProviderCompWrap.h>
16#include <ibase/TLocalizableWrap.h>
17
18
19namespace imtgui
20{
21
22
27 public QObject,
28 virtual public iqtgui::TMakeIconProviderCompWrap<ibase::TLocalizableWrap<icomp::CComponentBase>>,
29 virtual public ibase::ICommandsProvider
30{
31 Q_OBJECT
32public:
33 typedef iqtgui::TMakeIconProviderCompWrap<ibase::TLocalizableWrap<icomp::CComponentBase>> BaseClass;
34
35 I_BEGIN_COMPONENT(CVirtualKeyboardShowCommandComp);
36 I_REGISTER_INTERFACE(ibase::ICommandsProvider);
37 I_ASSIGN(m_actionIconAttrPtr, "ActionIcon", "Icon used command menu", true, ":/Icons");
38 I_ASSIGN(m_menuNameAttrPtr, "MenuName", "Name of the menu for the action group", true, "MenuName");
39 I_ASSIGN(m_menuDescriptionAttrPtr, "MenuDescription", "Description for the action group", true, "MenuDescription");
40 I_ASSIGN(m_rootMenuNameAttrPtr, "RootMenu", "Name of the root command", true, "");
41 I_END_COMPONENT;
42
44
45 // reimpemented (ibase::ICommandsProvider)
46 virtual const ibase::IHierarchicalCommand* GetCommands() const override;
47
48 // reimpemented (icomp::IComponent)
49 virtual void OnComponentCreated() override;
50
51protected:
52 // reimpemented (ibase::TLocalizableWrap)
53 virtual void OnLanguageChanged() override;
54 virtual void OnDesignSchemaChanged(const QByteArray& themeId) override;
55
56private Q_SLOTS:
57 void OnCommandActivated();
58
59private:
60 void ShowKeyboard();
61 void HideKeyboard();
62 void SetKeyboardCommandPath();
63
64protected:
65 I_ATTR(QByteArray, m_actionIconAttrPtr);
66 I_TEXTATTR(m_menuNameAttrPtr);
67 I_TEXTATTR(m_menuDescriptionAttrPtr);
68 I_TEXTATTR(m_rootMenuNameAttrPtr);
69
70 iqtgui::CHierarchicalCommand m_rootMenuCommand;
71 iqtgui::CHierarchicalCommand m_mainMenuCommand;
72 iqtgui::CHierarchicalCommand m_switchCommand;
73
74 istd::TDelPtr<QProcess> m_keyboardProcessPtr;
75 QString m_winKeyboardPath;
76
77};
78
79
80} // namespace imtgui
81
82