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:
Vadim Zeitlin
2001-06-26 20:59:19 +00:00
parent aeb313f31c
commit 1e6feb95a7
409 changed files with 42065 additions and 6675 deletions

View File

@@ -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;
}