first pass of wxUniv merge - nothing works, most parts don't even compile
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10673 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -35,6 +35,7 @@
|
||||
#include "wx/frame.h"
|
||||
#include "wx/defs.h"
|
||||
#include "wx/window.h"
|
||||
#include "wx/control.h"
|
||||
#include "wx/checkbox.h"
|
||||
#include "wx/radiobut.h"
|
||||
#include "wx/textctrl.h"
|
||||
@@ -116,7 +117,7 @@ void wxWindowBase::InitBase()
|
||||
|
||||
// no client data (yet)
|
||||
m_clientData = NULL;
|
||||
m_clientDataType = ClientData_None;
|
||||
m_clientDataType = wxClientData_None;
|
||||
|
||||
// the default event handler is just this window
|
||||
m_eventHandler = this;
|
||||
@@ -236,7 +237,7 @@ wxWindowBase::~wxWindowBase()
|
||||
#endif // wxUSE_VALIDATORS
|
||||
|
||||
// we only delete object data, not untyped
|
||||
if ( m_clientDataType == ClientData_Object )
|
||||
if ( m_clientDataType == wxClientData_Object )
|
||||
delete m_clientObject;
|
||||
|
||||
#if wxUSE_CONSTRAINTS
|
||||
@@ -445,7 +446,11 @@ wxSize wxWindowBase::DoGetBestSize() const
|
||||
node = node->GetNext() )
|
||||
{
|
||||
wxWindow *win = node->GetData();
|
||||
if ( win->IsTopLevel() || wxDynamicCast(win, wxStatusBar) || !win->IsShown())
|
||||
if ( win->IsTopLevel()
|
||||
#if wxUSE_STATUSBAR
|
||||
|| wxDynamicCast(win, wxStatusBar)
|
||||
#endif // wxUSE_STATUSBAR
|
||||
)
|
||||
{
|
||||
// dialogs and frames lie in different top level windows -
|
||||
// don't deal with them here; as for the status bars, they
|
||||
@@ -480,6 +485,12 @@ wxSize wxWindowBase::DoGetBestSize() const
|
||||
}
|
||||
}
|
||||
|
||||
// by default the origin is not shifted
|
||||
wxPoint wxWindowBase::GetClientAreaOrigin() const
|
||||
{
|
||||
return wxPoint(0, 0);
|
||||
}
|
||||
|
||||
// set the min/max size of the window
|
||||
void wxWindowBase::SetSizeHints(int minW, int minH,
|
||||
int maxW, int maxH,
|
||||
@@ -707,9 +718,21 @@ void wxWindowBase::SetValidator(const wxValidator& validator)
|
||||
#endif // wxUSE_VALIDATORS
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// update region testing
|
||||
// update region stuff
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
wxRect wxWindowBase::GetUpdateClientRect() const
|
||||
{
|
||||
wxRegion rgnUpdate = GetUpdateRegion();
|
||||
rgnUpdate.Intersect(GetClientRect());
|
||||
wxRect rectUpdate = rgnUpdate.GetBox();
|
||||
wxPoint ptOrigin = GetClientAreaOrigin();
|
||||
rectUpdate.x -= ptOrigin.x;
|
||||
rectUpdate.y -= ptOrigin.y;
|
||||
|
||||
return rectUpdate;
|
||||
}
|
||||
|
||||
bool wxWindowBase::IsExposed(int x, int y) const
|
||||
{
|
||||
return m_updateRegion.Contains(x, y) != wxOutRegion;
|
||||
@@ -1349,6 +1372,7 @@ void wxWindowBase::GetPositionConstraint(int *x, int *y) const
|
||||
// of control classes.
|
||||
void wxWindowBase::UpdateWindowUI()
|
||||
{
|
||||
#if wxUSE_CONTROLS
|
||||
wxUpdateUIEvent event(GetId());
|
||||
event.m_eventObject = this;
|
||||
|
||||
@@ -1362,10 +1386,12 @@ void wxWindowBase::UpdateWindowUI()
|
||||
wxControl *control = wxDynamicThisCast(this, wxControl);
|
||||
if ( control )
|
||||
{
|
||||
#if wxUSE_TEXTCTRL
|
||||
wxTextCtrl *text = wxDynamicCast(control, wxTextCtrl);
|
||||
if ( text )
|
||||
text->SetValue(event.GetText());
|
||||
else
|
||||
#endif // wxUSE_TEXTCTRL
|
||||
control->SetLabel(event.GetText());
|
||||
}
|
||||
}
|
||||
@@ -1388,6 +1414,7 @@ void wxWindowBase::UpdateWindowUI()
|
||||
}
|
||||
#endif // wxUSE_RADIOBTN
|
||||
}
|
||||
#endif // wxUSE_CONTROLS
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -1426,21 +1453,21 @@ wxPoint wxWindowBase::ConvertDialogToPixels(const wxPoint& pt)
|
||||
|
||||
void wxWindowBase::DoSetClientObject( wxClientData *data )
|
||||
{
|
||||
wxASSERT_MSG( m_clientDataType != ClientData_Void,
|
||||
wxASSERT_MSG( m_clientDataType != wxClientData_Void,
|
||||
wxT("can't have both object and void client data") );
|
||||
|
||||
if ( m_clientObject )
|
||||
delete m_clientObject;
|
||||
|
||||
m_clientObject = data;
|
||||
m_clientDataType = ClientData_Object;
|
||||
m_clientDataType = wxClientData_Object;
|
||||
}
|
||||
|
||||
wxClientData *wxWindowBase::DoGetClientObject() const
|
||||
{
|
||||
// it's not an error to call GetClientObject() on a window which doesn't
|
||||
// have client data at all - NULL will be returned
|
||||
wxASSERT_MSG( m_clientDataType != ClientData_Void,
|
||||
wxASSERT_MSG( m_clientDataType != wxClientData_Void,
|
||||
wxT("this window doesn't have object client data") );
|
||||
|
||||
return m_clientObject;
|
||||
@@ -1448,18 +1475,18 @@ wxClientData *wxWindowBase::DoGetClientObject() const
|
||||
|
||||
void wxWindowBase::DoSetClientData( void *data )
|
||||
{
|
||||
wxASSERT_MSG( m_clientDataType != ClientData_Object,
|
||||
wxASSERT_MSG( m_clientDataType != wxClientData_Object,
|
||||
wxT("can't have both object and void client data") );
|
||||
|
||||
m_clientData = data;
|
||||
m_clientDataType = ClientData_Void;
|
||||
m_clientDataType = wxClientData_Void;
|
||||
}
|
||||
|
||||
void *wxWindowBase::DoGetClientData() const
|
||||
{
|
||||
// it's not an error to call GetClientData() on a window which doesn't have
|
||||
// client data at all - NULL will be returned
|
||||
wxASSERT_MSG( m_clientDataType != ClientData_Object,
|
||||
wxASSERT_MSG( m_clientDataType != wxClientData_Object,
|
||||
wxT("this window doesn't have void client data") );
|
||||
|
||||
return m_clientData;
|
||||
@@ -1497,6 +1524,7 @@ void wxWindowBase::OnInitDialog( wxInitDialogEvent &WXUNUSED(event) )
|
||||
// process Ctrl-Alt-mclick
|
||||
void wxWindowBase::OnMiddleClick( wxMouseEvent& event )
|
||||
{
|
||||
#if wxUSE_MSGDLG
|
||||
if ( event.ControlDown() && event.AltDown() )
|
||||
{
|
||||
// don't translate these strings
|
||||
@@ -1541,6 +1569,7 @@ void wxWindowBase::OnMiddleClick( wxMouseEvent& event )
|
||||
(wxWindow *)this);
|
||||
}
|
||||
else
|
||||
#endif // wxUSE_MSGDLG
|
||||
{
|
||||
event.Skip();
|
||||
}
|
||||
@@ -1555,3 +1584,43 @@ void wxWindowListNode::DeleteData()
|
||||
delete (wxWindow *)GetData();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// borders
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
wxBorder wxWindowBase::GetBorder() const
|
||||
{
|
||||
wxBorder border = (wxBorder)(m_windowStyle & wxBORDER_MASK);
|
||||
if ( border == wxBORDER_DEFAULT )
|
||||
{
|
||||
border = GetDefaultBorder();
|
||||
}
|
||||
|
||||
return border;
|
||||
}
|
||||
|
||||
wxBorder wxWindowBase::GetDefaultBorder() const
|
||||
{
|
||||
return wxBORDER_NONE;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// hit testing
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
wxHitTest wxWindowBase::DoHitTest(wxCoord x, wxCoord y) const
|
||||
{
|
||||
// here we just check if the point is inside the window or not
|
||||
|
||||
// check the top and left border first
|
||||
bool outside = x < 0 || y < 0;
|
||||
if ( !outside )
|
||||
{
|
||||
// check the right and bottom borders too
|
||||
wxSize size = GetSize();
|
||||
outside = x >= size.x || y >= size.y;
|
||||
}
|
||||
|
||||
return outside ? wxHT_WINDOW_OUTSIDE : wxHT_WINDOW_INSIDE;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user