#ifndef FOCUSNAVGROUP_H #define FOCUSNAVGROUP_H #ifdef _WIN32 #pragma once #endif #include "VGUI.h" #include "PHandle.h" namespace vgui { class Panel; class FocusNavGroup { public: FocusNavGroup(Panel* panel); ~FocusNavGroup(); virtual Panel* GetDefaultPanel(); virtual void SetDefaultButton(Panel* panel); virtual VPANEL GetDefaultButton(); virtual VPANEL GetCurrentDefaultButton(); virtual Panel* FindPanelByHotkey(wchar_t key); virtual bool RequestFocusPrev(VPANEL panel = NULL); virtual bool RequestFocusNext(VPANEL panel = NULL); virtual Panel* GetCurrentFocus(); virtual VPANEL SetCurrentFocus(VPANEL panel, VPANEL defaultPanel); virtual void SetFocusTopLevel(bool state); virtual void SetCurrentDefaultButton(VPANEL panel, bool sendCurrentDefaultButtonMessage = true); private: bool CanButtonBeDefault(VPANEL panel); VPanelHandle _defaultButton; VPanelHandle _currentDefaultButton; VPanelHandle _currentFocus; Panel* _mainPanel; bool _topLevelFocus; }; } #endif