Gered
c5cdddbeaa
current versions of all of my basic framework sources, build configurations/scripts, and supporting assets
78 lines
2.1 KiB
C++
78 lines
2.1 KiB
C++
/*
|
|
GWEN
|
|
Copyright (c) 2010 Facepunch Studios
|
|
See license in Gwen.h
|
|
*/
|
|
|
|
#pragma once
|
|
#ifndef GWEN_CONTROLS_DOCKBASE_H
|
|
#define GWEN_CONTROLS_DOCKBASE_H
|
|
|
|
#include "gwen_base.h"
|
|
#include "gwen_button.h"
|
|
|
|
namespace Gwen
|
|
{
|
|
namespace Controls
|
|
{
|
|
class DockedTabControl;
|
|
class TabControl;
|
|
|
|
class GWEN_EXPORT DockBase : public Base
|
|
{
|
|
public:
|
|
|
|
GWEN_CONTROL( DockBase, Base );
|
|
|
|
virtual void Render( Skin::Base* skin );
|
|
virtual void RenderOver( Skin::Base* skin );
|
|
virtual bool IsEmpty();
|
|
|
|
virtual TabControl* GetTabControl();
|
|
|
|
virtual DockBase* GetRight(){ return GetChildDock( Pos::Right ); }
|
|
virtual DockBase* GetLeft(){ return GetChildDock( Pos::Left ); }
|
|
virtual DockBase* GetTop(){ return GetChildDock( Pos::Top ); }
|
|
virtual DockBase* GetBottom(){ return GetChildDock( Pos::Bottom ); }
|
|
|
|
// No action on space (default button action is to press)
|
|
virtual bool OnKeySpace( bool /*bDown*/ ){ return false; }
|
|
|
|
private:
|
|
|
|
// Drag n Drop
|
|
virtual bool DragAndDrop_HandleDrop( Gwen::DragAndDrop::Package* pPackage, int x, int y );
|
|
virtual bool DragAndDrop_CanAcceptPackage( Gwen::DragAndDrop::Package* pPackage );
|
|
virtual void DragAndDrop_HoverEnter( Gwen::DragAndDrop::Package* pPackage, int x, int y );
|
|
virtual void DragAndDrop_HoverLeave( Gwen::DragAndDrop::Package* pPackage );
|
|
virtual void DragAndDrop_Hover( Gwen::DragAndDrop::Package* pPackage, int x, int y );
|
|
|
|
virtual void SetupChildDock( int iPos );
|
|
|
|
virtual void DoRedundancyCheck();
|
|
virtual void DoConsolidateCheck();
|
|
virtual void OnRedundantChildDock( DockBase* pDockBase );
|
|
|
|
virtual int GetDroppedTabDirection( int x, int y );
|
|
virtual void OnTabRemoved( Gwen::Controls::Base* pControl );
|
|
|
|
DockBase* GetChildDock( int iPos );
|
|
DockBase** GetChildDockPtr( int iPos );
|
|
|
|
DockBase* m_Left;
|
|
DockBase* m_Right;
|
|
DockBase* m_Top;
|
|
DockBase* m_Bottom;
|
|
|
|
// Only CHILD dockpanels have a tabcontrol.
|
|
DockedTabControl* m_DockedTabControl;
|
|
|
|
bool m_bDrawHover;
|
|
bool m_bDropFar;
|
|
Gwen::Rect m_HoverRect;
|
|
|
|
};
|
|
}
|
|
}
|
|
#endif
|