reorganize files and add btgui
This commit is contained in:
87
btgui/Gwen/Controls/Layout/Splitter.h
Normal file
87
btgui/Gwen/Controls/Layout/Splitter.h
Normal file
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
GWEN
|
||||
Copyright (c) 2010 Facepunch Studios
|
||||
See license in Gwen.h
|
||||
*/
|
||||
|
||||
|
||||
#pragma once
|
||||
#ifndef GWEN_CONTROLS_LAYOUT_SPLITTER_H
|
||||
#define GWEN_CONTROLS_LAYOUT_SPLITTER_H
|
||||
|
||||
#include "Gwen/Controls/Base.h"
|
||||
|
||||
namespace Gwen
|
||||
{
|
||||
namespace Controls
|
||||
{
|
||||
namespace Layout
|
||||
{
|
||||
|
||||
class GWEN_EXPORT Splitter : public Base
|
||||
{
|
||||
public:
|
||||
|
||||
typedef Base BaseClass;
|
||||
|
||||
Splitter( Base* pParent ) : BaseClass( pParent )
|
||||
{
|
||||
for ( int i=0; i<2; i++ )
|
||||
m_pPanel[i] = NULL;
|
||||
}
|
||||
|
||||
void SetPanel( int i, Base* pPanel )
|
||||
{
|
||||
if ( i < 0 || i > 1 ) return;
|
||||
|
||||
m_pPanel[i] = pPanel;
|
||||
|
||||
if ( m_pPanel[i] )
|
||||
{
|
||||
m_pPanel[i] ->SetParent( this );
|
||||
}
|
||||
}
|
||||
|
||||
Base* GetPanel( int i ) const
|
||||
{
|
||||
if ( i < 0 || i > 1 ) return NULL;
|
||||
return m_pPanel[i];
|
||||
}
|
||||
|
||||
void Layout( Skin::Base* skin )
|
||||
{
|
||||
LayoutVertical( skin );
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
void LayoutVertical( Skin::Base* /*skin*/ )
|
||||
{
|
||||
int w = Width();
|
||||
int h = Height();
|
||||
|
||||
if ( m_pPanel[0] )
|
||||
{
|
||||
const Margin& m = m_pPanel[0]->GetMargin();
|
||||
m_pPanel[0]->SetBounds( m.left, m.top, w-m.left-m.right, (h * 0.5) - m.top - m.bottom );
|
||||
}
|
||||
|
||||
if ( m_pPanel[1] )
|
||||
{
|
||||
const Margin& m = m_pPanel[1]->GetMargin();
|
||||
m_pPanel[1]->SetBounds( m.left, m.top + (h * 0.5f), w-m.left-m.right, (h * 0.5f) - m.top - m.bottom );
|
||||
}
|
||||
}
|
||||
|
||||
void LayoutHorizontal( Skin::Base* /*skin*/ )
|
||||
{
|
||||
// Todo.
|
||||
}
|
||||
|
||||
Base* m_pPanel[2];
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user