OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
ManagedGuiObject.h
Go to the documentation of this file.
1
4// ###########################################################################################################################################################################################################################################################################################################################
5
6#pragma once
7
8// OpenTwin header
11#include "OTGui/GuiTypes.h"
13
14// std header
15#include <map>
16#include <string>
17
18namespace ot {
19
22 public:
25
26 // ###########################################################################################################################################################################################################################################################################################################################
27
28 // Setter / Getter
29
30 void setGuiObjectOwner(const BasicServiceInformation& _owner) { m_owner = _owner; };
31 const BasicServiceInformation& getGuiObjectOwner(void) const { return m_owner; };
32
33 void setGuiObjectKey(const std::string& _key) { m_key = _key; };
34 const std::string& getGuiObjectKey(void) const { return m_key; };
35
36 // ###########################################################################################################################################################################################################################################################################################################################
37
38 // State management
39
40 void setGuiObjectEnabled(bool _enabled, int _counter = 1);
41
44
45 void lockGuiObject(const LockTypeFlags& _flags, int _lockCount = 1);
46
47 void unlockGuiObject(const LockTypeFlags& _flags, int _unlockCount = 1);
48
50
51 protected:
53 virtual void updateGuiObjectEnabledState(bool _enabled) = 0;
54
55 private:
56 void lockGuiObjectFlag(LockTypeFlag _flag, int _lockCount);
57 void unlockGuiObjectFlag(LockTypeFlag _flag, int _unlockCount);
58
59 void evaluateEnabledState(void);
60 int& getLockCounter(LockTypeFlag _flag);
61
63 std::string m_key;
64 bool m_isEnabled;
65 int m_disabledCounter;
66 std::map<LockTypeFlag, int> m_lockCounter;
67 };
68
69}
This file contains defines that may be used simplyfy class creation.
#define OT_DECL_NOCOPY(___class)
Removes the default copy constructor and assignment operator.
Definition OTClassHelper.h:14
#define OT_WIDGETS_API_EXPORT
Definition OTWidgetsAPIExport.h:12
The BasicServiceInformation class is used to hold a service name and type. The BasicServiceInformatio...
Definition BasicServiceInformation.h:21
Definition ManagedGuiObject.h:20
const BasicServiceInformation & getGuiObjectOwner(void) const
Definition ManagedGuiObject.h:31
void resetGuiObjectDisabledCounter(void)
Resets the disabled counter back to 0. (like no disabled was called)
void unlockGuiObject(const LockTypeFlags &_flags, int _unlockCount=1)
void setGuiObjectOwner(const BasicServiceInformation &_owner)
Definition ManagedGuiObject.h:30
const std::string & getGuiObjectKey(void) const
Definition ManagedGuiObject.h:34
virtual void updateGuiObjectEnabledState(bool _enabled)=0
This method is called whenever the enabled state should be updated (e.g. setEnabled or setReadOnly).
virtual ~ManagedGuiObject()
void lockGuiObject(const LockTypeFlags &_flags, int _lockCount=1)
void setGuiObjectKey(const std::string &_key)
Definition ManagedGuiObject.h:33
void setGuiObjectEnabled(bool _enabled, int _counter=1)
void resetGuiObjectLockCounter(void)
Definition Connector.h:8
LockTypeFlag
Describes the object type to lock in the UI.
Definition GuiTypes.h:156