1 #ifndef _YI_DEV_PANEL_H_ 2 #define _YI_DEV_PANEL_H_ 10 #include <glm/vec2.hpp> 14 class CYIDevPanelItemView;
108 std::vector<CYIDevWidget *>
GetWidgets()
const;
180 bool Update(
bool *pbSkipUpdate =
nullptr);
205 void CreateSystemWidgets();
208 void AddViewForWidget(uint32_t uWidgetIndex);
209 void UpdatePanelItems();
210 void UpdatePanelItem(
const std::shared_ptr<CYIDevPanelItemView> &pPanelItem,
CYIDevWidget *pWidget);
211 void OnPanelItemClicked(int32_t nButtonID);
212 void OnConfigureButtonClicked(int32_t nButtonID);
214 void ConfigureConfigureArrows(
CYIDevWidget *pConfiguringWidget);
215 void OnAnimationComplete();
216 void OnConfigureSubpanelAnimationComplete();
217 bool IsTouchActivation(int32_t nX, int32_t nY);
219 bool IsPlayPauseActivation(
const CYIKeyEvent &keyEvent);
220 bool IsKonamiCodeActivation(
const CYIKeyEvent &keyEvent);
222 void UpdatePanelScale();
224 bool SimulateTrackpadKeyEvent(
YI_KEY_CODE eKeyCode);
227 virtual bool OnBackButtonPressed()
override;
230 virtual bool PreFilterEvent(
const std::shared_ptr<CYIEventDispatcher> &pDispatcher,
CYIEvent *pEvent,
CYIEventHandler *pDestination)
override;
231 virtual bool PostFilterEvent(
const std::shared_ptr<CYIEventDispatcher> &pDispatcher,
CYIEvent *pEvent,
CYIEventHandler *pDestination)
override;
233 std::shared_ptr<CYIAssetTextureBase> m_pLogoTexture;
234 std::vector<std::unique_ptr<CYIDevWidget>> m_widgets;
239 bool m_bSystemWidgetsCreated;
242 bool m_bSubconfigurationPanelActive;
244 uint8_t m_uTouchesCount;
245 int64_t m_nLastTouchTime;
247 uint8_t m_uValidPlayPauseKeyCount;
248 int64_t m_nLastPlayPauseKeyEventTime;
250 uint8_t m_uValidKonamiKeyCount;
251 int64_t m_nLastKonamiKeyEventTime;
253 bool m_bSuppressNextKeyUpEvent;
254 bool m_bRenderNextFrame;
256 bool m_bInTrackpadGesture;
257 glm::vec2 m_lastProcessedGestureLocation;
262 std::shared_ptr<CYIGeoScene> m_pDevPanel;
263 std::shared_ptr<CYIGeoView> m_pListContainer;
264 std::shared_ptr<CYIGeoList> m_pList;
265 std::shared_ptr<CYIGeoView> m_pSubListContainer;
266 std::shared_ptr<CYIGeoList> m_pSubList;
267 std::vector<std::shared_ptr<CYIDevPanelItemView>> m_panelItems;
272 #include "debug/YiDevPanel.inl"
void AddWidget(std::unique_ptr< CYIDevWidget > pWidget, INSERT_POSITION eInsertPosition=TOP)
bool HandleKeyInputs(const CYIKeyEvent &keyEvent)
void OpenConfigurationSubpanel(CYIDevWidget *pWidget, const std::vector< std::pair< CYIString, CYIString > > &items)
void SimulateConfigurationItemClicked(uint32_t uWidgetIndex, uint32_t uItemIndex)
Stores data related to trackpad input.
Definition: YiTrackpadEvent.h:22
void SimulatePanelItemClicked(uint32_t uIndex)
Class for key events.
Definition: YiKeyEvent.h:15
bool IsConfigurationSubpanelOpen() const
Allows registering of event filters which can be used to perform processing on an event before and af...
Definition: YiEventHandler.h:25
Scene trees composed of CYISceneNode objects are registered with the scene manager in order for them ...
Definition: YiSceneManager.h:73
bool Update(bool *pbSkipUpdate=nullptr)
CYIDevPanel(CYISceneManager *pSceneManager, CYIApp *pApp)
Base class for events.
Definition: YiEvent.h:489
The base class for all view types. Views are containers of renderable elements that often define inte...
Definition: YiSceneView.h:47
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
bool HandleActionInputs(int32_t nX, int32_t nY, int32_t nWheelDelta, uint8_t uButton, YI_EVENT_TYPE eEventType, uint8_t uPointerID, bool bHover)
YI_EVENT_TYPE
The event type of the CYIEvent class instance.
Definition: YiEvent.h:23
The base class for an object accessible from script source code.
Definition: YiScriptableObject.h:28
static const CYIString DEV_PANEL_ASSETS_PREFIX
Definition: YiDevPanel.h:64
void CloseConfigurationSubpanel()
CYISceneManager * GetSceneManager() const
void ReconfigureConfigurationSubpanel(CYIDevWidget *pWidget)
CYISignal UserDeactivated
Definition: YiDevPanel.h:202
void UpdateWidget(uint32_t uIndexInPanel)
YI_KEY_CODE
Key code for CYIKeyEvent events.
Definition: YiEvent.h:81
CYISceneView * GetWidgetsContainer() const
Insert at the bottom of the widgets list.
Definition: YiDevPanel.h:58
Definition: YiSignalHandler.h:174
CYISignal UserActivated
Definition: YiDevPanel.h:192
Insert at the top of the widgets list.
Definition: YiDevPanel.h:57
This asset represents the base class for POT (Power Of Two) and NPOT (Non-Power Of Two) textures...
Definition: YiAssetTextureBase.h:24
Allows children that inherit from this class to implement processing before and after events are hand...
Definition: YiEventFilter.h:24
A class used to manipulate developer utilities.
Definition: YiDevPanel.h:52
Signals and slots are a thread-safe and flexible communication framework that will allow various obje...
Definition: YiSignal.h:164
std::vector< CYIDevWidget * > GetWidgets() const
INSERT_POSITION
Definition: YiDevPanel.h:55
The base class for all applications.
Definition: YiApp.h:43