ImagingTools Core SDK
CPageSwitcherComp.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// ACF includes
6#include <iauth/ILogin.h>
7#include <iprm/ISelectionParam.h>
8#include <icomp/TMakeComponentWrap.h>
9#include <imod/TSingleModelObserverBase.h>
10
11
12namespace imtgui
13{
14
15
16class CPageSwitcherComp:
17 public icomp::TMakeComponentWrap<
18 imod::TSingleModelObserverBase<iauth::ILogin>>
19{
20public:
21 typedef icomp::TMakeComponentWrap<
22 imod::TSingleModelObserverBase<iauth::ILogin>> BaseClass;
23
24
25 I_BEGIN_COMPONENT(CPageSwitcherComp);
26 I_ASSIGN(m_pageSelectorCompPtr, "PageSelector", "Page selector", true, "PageSelector");
27 I_ASSIGN(m_onLoginPageIndexAttrPtr, "OnLoginPageIndex", "Switch to page index on login", false, 0);
28 I_ASSIGN(m_onLogoutPageIndexAttrPtr, "OnLogoutPageIndex", "Switch to page index on logout", false, 0);
29 I_END_COMPONENT;
30
31protected:
32 // reimplemented (imod::CSingleModelObserverBase)
33 virtual void OnUpdate(const istd::IChangeable::ChangeSet& changeSet) override;
34
35private:
36 I_REF(iprm::ISelectionParam, m_pageSelectorCompPtr);
37 I_ATTR(int, m_onLoginPageIndexAttrPtr);
38 I_ATTR(int, m_onLogoutPageIndexAttrPtr);
39};
40
41
42} // namespace imtgui
43
44