ImagingTools Core SDK
CCommandToolBar.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 <QtWidgets/QToolBar>
7
8// ACF includes
9#include <ibase/ICommandsProvider.h>
10
11// ImtCore includes
12#include <imtbase/TModelUpdateBinder.h>
13
14
15namespace imtgui
16{
17
18
19class CCommandToolBar: public QObject
20{
21public:
22 typedef QObject BaseClass;
23
24 CCommandToolBar();
25
26 void RegisterCommands(QWidget* parentWidgetPtr, const ibase::ICommandsProvider* commandsPtr, int commandGroupId = -1);
27 void UnregisterCommands();
28
29 QToolBar* GetToolBar() const;
30
31protected:
32 virtual void OnCommandsChanged(const istd::IChangeable::ChangeSet& changeSet, const ibase::ICommandsProvider* commandsPtr);
33
34private:
35 void UpdateCommands(const ibase::ICommandsProvider* commandsPtr);
36 const ibase::IHierarchicalCommand* FindCommand(const ibase::IHierarchicalCommand* commandPtr, int groupId);
37
38private:
40
41 QToolBar* m_commandsToolBar = nullptr;
42 QWidget* m_parentWidgetPtr = nullptr;
43
44 int m_groupId = -1;
45};
46
47
48} // namespace imtgui
49
50