Removed this Maximize() overridden bug

Changed wxFrame so that drawing into the
    client area draws into the client area.
    Removed some ugly hacks on the way. Don't
    forget to recompile everything.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2083 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
1999-04-09 20:26:29 +00:00
parent 034be8882c
commit f362b96d67
10 changed files with 156 additions and 184 deletions

View File

@@ -103,7 +103,6 @@ public:
// implementation
virtual void GtkOnSize( int x, int y, int width, int height );
virtual wxPoint GetClientAreaOrigin() const;
void DoMenuUpdates();
void DoMenuUpdates(wxMenu* menu, wxWindow* focusWin);
virtual void OnInternalIdle();
@@ -115,6 +114,7 @@ public:
wxString m_title;
wxIcon m_icon;
int m_miniEdge,m_miniTitle;
GtkWidget *m_mainWidget;
protected:
virtual void DoSetSize(int x, int y,

View File

@@ -150,7 +150,7 @@ class wxMDIChildFrame: public wxFrame
wxString GetTitle() const { return m_title; }
// no maximize etc
virtual void Maximize(void) {}
virtual void Maximize(bool WXUNUSED(maximize)) {}
virtual void Restore(void) {}
void OnActivate( wxActivateEvent &event );

View File

@@ -403,14 +403,12 @@ public:
// implementation
virtual wxPoint GetClientAreaOrigin() const;
virtual void AdjustForParentClientOrigin( int& x, int& y, int sizeFlags );
bool HasVMT();
/* I don't want users to override what's done in OnIdle */
virtual void OnInternalIdle();
// For compatibility across platforms (not in event table)
/* For compatibility across platforms (not in event table) */
void OnIdle(wxIdleEvent& WXUNUSED(event)) {};
/* used by all classes in the widget creation process */

View File

@@ -103,7 +103,6 @@ public:
// implementation
virtual void GtkOnSize( int x, int y, int width, int height );
virtual wxPoint GetClientAreaOrigin() const;
void DoMenuUpdates();
void DoMenuUpdates(wxMenu* menu, wxWindow* focusWin);
virtual void OnInternalIdle();
@@ -115,6 +114,7 @@ public:
wxString m_title;
wxIcon m_icon;
int m_miniEdge,m_miniTitle;
GtkWidget *m_mainWidget;
protected:
virtual void DoSetSize(int x, int y,

View File

@@ -150,7 +150,7 @@ class wxMDIChildFrame: public wxFrame
wxString GetTitle() const { return m_title; }
// no maximize etc
virtual void Maximize(void) {}
virtual void Maximize(bool WXUNUSED(maximize)) {}
virtual void Restore(void) {}
void OnActivate( wxActivateEvent &event );

View File

@@ -403,14 +403,12 @@ public:
// implementation
virtual wxPoint GetClientAreaOrigin() const;
virtual void AdjustForParentClientOrigin( int& x, int& y, int sizeFlags );
bool HasVMT();
/* I don't want users to override what's done in OnIdle */
virtual void OnInternalIdle();
// For compatibility across platforms (not in event table)
/* For compatibility across platforms (not in event table) */
void OnIdle(wxIdleEvent& WXUNUSED(event)) {};
/* used by all classes in the widget creation process */

View File

@@ -97,6 +97,50 @@ static gint gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventC
return FALSE;
}
//-----------------------------------------------------------------------------
// InsertChild for wxFrame
//-----------------------------------------------------------------------------
/* Callback for wxFrame. This very strange beast has to be used because
* C++ has no virtual methods in a constructor. We have to emulate a
* virtual function here as wxWindows requires different ways to insert
* a child in container classes. */
static void wxInsertChildInFrame( wxWindow* parent, wxWindow* child )
{
if (wxIS_KIND_OF(child,wxToolBar) || wxIS_KIND_OF(child,wxMenuBar))
{
/* these are outside the client area */
wxFrame* frame = (wxFrame*) parent;
gtk_myfixed_put( GTK_MYFIXED(frame->m_mainWidget),
GTK_WIDGET(child->m_widget),
child->m_x,
child->m_y );
}
else
{
/* these are inside the client area */
gtk_myfixed_put( GTK_MYFIXED(parent->m_wxwindow),
GTK_WIDGET(child->m_widget),
child->m_x,
child->m_y );
}
gtk_widget_set_usize( GTK_WIDGET(child->m_widget),
child->m_width,
child->m_height );
/* resize on OnInternalIdle */
parent->m_sizeSet = FALSE;
if (parent->m_windowStyle & wxTAB_TRAVERSAL)
{
/* we now allow a window to get the focus as long as it
doesn't have any children. */
GTK_WIDGET_UNSET_FLAGS( parent->m_wxwindow, GTK_CAN_FOCUS );
}
}
//-----------------------------------------------------------------------------
// wxFrame
//-----------------------------------------------------------------------------
@@ -145,6 +189,8 @@ bool wxFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title,
PreCreation( parent, id, pos, size, style, name );
m_title = title;
m_insertCallback = wxInsertChildInFrame;
GtkWindowType win_type = GTK_WINDOW_TOPLEVEL;
if (style & wxSIMPLE_BORDER) win_type = GTK_WINDOW_POPUP;
@@ -159,11 +205,18 @@ bool wxFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title,
gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event",
GTK_SIGNAL_FUNC(gtk_frame_delete_callback), (gpointer)this );
/* m_mainWidget holds the toolbar, the menubar and the client area */
m_mainWidget = gtk_myfixed_new();
gtk_widget_show( m_mainWidget );
GTK_WIDGET_UNSET_FLAGS( m_mainWidget, GTK_CAN_FOCUS );
gtk_container_add( GTK_CONTAINER(m_widget), m_mainWidget );
gtk_widget_realize( m_mainWidget );
/* m_wxwindow only represents the client area without toolbar and menubar */
m_wxwindow = gtk_myfixed_new();
gtk_widget_show( m_wxwindow );
GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow );
gtk_container_add( GTK_CONTAINER(m_mainWidget), m_wxwindow );
if (m_parent) m_parent->AddChild( this );
@@ -233,7 +286,7 @@ bool wxFrame::Show( bool show )
{
/* by calling GtkOnSize here, we don't have to call
either after showing the frame, which would entail
much ugly flicker nor from within the size_allocate
much ugly flicker or from within the size_allocate
handler, because GTK 1.1.X forbids that. */
GtkOnSize( m_x, m_y, m_width, m_height );
@@ -251,24 +304,6 @@ bool wxFrame::Destroy()
return TRUE;
}
wxPoint wxFrame::GetClientAreaOrigin() const
{
wxPoint pt( m_miniEdge, m_miniEdge + m_miniTitle );
if (m_frameMenuBar)
{
int h = 0;
m_frameMenuBar->GetSize( (int*)NULL, &h );
pt.y += h;
}
if (m_frameToolBar)
{
int h = 0;
m_frameToolBar->GetSize( (int*)NULL, &h );
pt.y += h;
}
return pt;
}
void wxFrame::DoSetSize( int x, int y, int width, int height, int sizeFlags )
{
wxASSERT_MSG( (m_widget != NULL), "invalid frame" );
@@ -404,10 +439,13 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height
if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth;
if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight;
/* this emulates the new wxMSW behaviour of placing all
* frame-subwindows (menu, toolbar..) on one native window
/* I revert back to wxGTK's original behaviour. m_mainWidget holds the
* menubar, the toolbar and the client area, which is represented by
* m_wxwindow.
* this hurts in the eye, but I don't want to call SetSize()
* because I don't want to call any non-native functions here. */
int client_area_y_offset = 0;
if (m_frameMenuBar)
{
@@ -420,8 +458,10 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height
m_frameMenuBar->m_width = ww;
m_frameMenuBar->m_height = hh;
gtk_myfixed_move( GTK_MYFIXED(m_wxwindow), m_frameMenuBar->m_widget, xx, yy );
gtk_myfixed_move( GTK_MYFIXED(m_mainWidget), m_frameMenuBar->m_widget, xx, yy );
gtk_widget_set_usize( m_frameMenuBar->m_widget, ww, hh );
client_area_y_offset += hh;
}
if (m_frameToolBar)
@@ -437,14 +477,19 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height
m_frameToolBar->m_height = hh;
m_frameToolBar->m_width = ww;
gtk_myfixed_move( GTK_MYFIXED(m_wxwindow), m_frameToolBar->m_widget, xx, yy );
gtk_myfixed_move( GTK_MYFIXED(m_mainWidget), m_frameToolBar->m_widget, xx, yy );
gtk_widget_set_usize( m_frameToolBar->m_widget, ww, hh );
client_area_y_offset += hh;
}
gtk_myfixed_move( GTK_MYFIXED(m_mainWidget), m_wxwindow, 0, client_area_y_offset );
gtk_widget_set_usize( m_wxwindow, m_width, m_height-client_area_y_offset );
if (m_frameStatusBar)
{
int xx = 0 + m_miniEdge;
int yy = m_height - wxSTATUS_HEIGHT - m_miniEdge;
int yy = m_height - wxSTATUS_HEIGHT - m_miniEdge - client_area_y_offset;
int ww = m_width - 2*m_miniEdge;
int hh = wxSTATUS_HEIGHT;
@@ -564,7 +609,7 @@ void wxFrame::SetMenuBar( wxMenuBar *menuBar )
if (m_frameMenuBar->m_parent != this)
{
m_frameMenuBar->m_parent = this;
gtk_myfixed_put( GTK_MYFIXED(m_wxwindow),
gtk_myfixed_put( GTK_MYFIXED(m_mainWidget),
m_frameMenuBar->m_widget, m_frameMenuBar->m_x, m_frameMenuBar->m_y );
/* an mdi child menu bar might be underneath */

View File

@@ -184,13 +184,6 @@ static void draw_frame( GtkWidget *widget, wxWindow *win )
dx += widget->allocation.x;
dy += widget->allocation.y;
}
else
if (win->m_parent)
{
wxPoint pt(win->m_parent->GetClientAreaOrigin());
dx += pt.x;
dy += pt.y;
}
if (win->m_windowStyle & wxRAISED_BORDER)
{
@@ -706,10 +699,6 @@ static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton
}
}
wxPoint pt(win->GetClientAreaOrigin());
event.m_x -= pt.x;
event.m_y -= pt.y;
event.SetEventObject( win );
gs_timeLastClick = gdk_event->time;
@@ -816,10 +805,6 @@ static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButto
}
}
wxPoint pt(win->GetClientAreaOrigin());
event.m_x -= pt.x;
event.m_y -= pt.y;
event.SetEventObject( win );
if (win->GetEventHandler()->ProcessEvent( event ))
@@ -927,10 +912,6 @@ static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion
}
}
wxPoint pt(win->GetClientAreaOrigin());
event.m_x -= pt.x;
event.m_y -= pt.y;
event.SetEventObject( win );
if (win->GetEventHandler()->ProcessEvent( event ))
@@ -1064,10 +1045,6 @@ static gint gtk_window_enter_callback( GtkWidget *widget, GdkEventCrossing *gdk_
event.m_x = (long)x;
event.m_y = (long)y;
wxPoint pt(win->GetClientAreaOrigin());
event.m_x -= pt.x;
event.m_y -= pt.y;
if (win->GetEventHandler()->ProcessEvent( event ))
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "enter_notify_event" );
@@ -1118,10 +1095,6 @@ static gint gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_
event.m_x = (long)x;
event.m_y = (long)y;
wxPoint pt(win->GetClientAreaOrigin());
event.m_x -= pt.x;
event.m_y -= pt.y;
if (win->GetEventHandler()->ProcessEvent( event ))
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "leave_notify_event" );
@@ -1345,11 +1318,6 @@ static void wxInsertChildInWindow( wxWindow* parent, wxWindow* child )
child->m_width,
child->m_height );
if (wxIS_KIND_OF(parent,wxFrame))
{
parent->m_sizeSet = FALSE;
}
if (parent->m_windowStyle & wxTAB_TRAVERSAL)
{
/* we now allow a window to get the focus as long as it
@@ -1869,21 +1837,6 @@ void wxWindow::PrepareDC( wxDC &WXUNUSED(dc) )
// are we to set fonts here ?
}
wxPoint wxWindow::GetClientAreaOrigin() const
{
return wxPoint(0,0);
}
void wxWindow::AdjustForParentClientOrigin( int& x, int& y, int sizeFlags )
{
if (((sizeFlags & wxSIZE_NO_ADJUSTMENTS) == 0) && GetParent())
{
wxPoint pt(GetParent()->GetClientAreaOrigin());
x += pt.x;
y += pt.y;
}
}
void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags )
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
@@ -1940,15 +1893,13 @@ void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags )
/* the default button has a border around it */
int border = 5;
wxPoint pt( m_parent->GetClientAreaOrigin() );
gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), m_widget, m_x+pt.x-border, m_y+pt.y-border );
gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), m_widget, m_x-border, m_y-border );
gtk_widget_set_usize( m_widget, m_width+2*border, m_height+2*border );
}
else
{
wxPoint pt( m_parent->GetClientAreaOrigin() );
gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), m_widget, m_x+pt.x, m_y+pt.y );
gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), m_widget, m_x, m_y );
if ((old_width != m_width) || (old_height != m_height))
gtk_widget_set_usize( m_widget, m_width, m_height );
@@ -2139,10 +2090,6 @@ void wxWindow::ClientToScreen( int *x, int *y )
}
}
wxPoint pt(GetClientAreaOrigin());
org_x += pt.x;
org_y += pt.y;
if (x) *x += org_x;
if (y) *y += org_y;
}
@@ -2170,10 +2117,6 @@ void wxWindow::ScreenToClient( int *x, int *y )
}
}
wxPoint pt(GetClientAreaOrigin());
org_x -= pt.x;
org_y -= pt.y;
if (x) *x -= org_x;
if (y) *y -= org_y;
}

View File

@@ -97,6 +97,50 @@ static gint gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventC
return FALSE;
}
//-----------------------------------------------------------------------------
// InsertChild for wxFrame
//-----------------------------------------------------------------------------
/* Callback for wxFrame. This very strange beast has to be used because
* C++ has no virtual methods in a constructor. We have to emulate a
* virtual function here as wxWindows requires different ways to insert
* a child in container classes. */
static void wxInsertChildInFrame( wxWindow* parent, wxWindow* child )
{
if (wxIS_KIND_OF(child,wxToolBar) || wxIS_KIND_OF(child,wxMenuBar))
{
/* these are outside the client area */
wxFrame* frame = (wxFrame*) parent;
gtk_myfixed_put( GTK_MYFIXED(frame->m_mainWidget),
GTK_WIDGET(child->m_widget),
child->m_x,
child->m_y );
}
else
{
/* these are inside the client area */
gtk_myfixed_put( GTK_MYFIXED(parent->m_wxwindow),
GTK_WIDGET(child->m_widget),
child->m_x,
child->m_y );
}
gtk_widget_set_usize( GTK_WIDGET(child->m_widget),
child->m_width,
child->m_height );
/* resize on OnInternalIdle */
parent->m_sizeSet = FALSE;
if (parent->m_windowStyle & wxTAB_TRAVERSAL)
{
/* we now allow a window to get the focus as long as it
doesn't have any children. */
GTK_WIDGET_UNSET_FLAGS( parent->m_wxwindow, GTK_CAN_FOCUS );
}
}
//-----------------------------------------------------------------------------
// wxFrame
//-----------------------------------------------------------------------------
@@ -145,6 +189,8 @@ bool wxFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title,
PreCreation( parent, id, pos, size, style, name );
m_title = title;
m_insertCallback = wxInsertChildInFrame;
GtkWindowType win_type = GTK_WINDOW_TOPLEVEL;
if (style & wxSIMPLE_BORDER) win_type = GTK_WINDOW_POPUP;
@@ -159,11 +205,18 @@ bool wxFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title,
gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event",
GTK_SIGNAL_FUNC(gtk_frame_delete_callback), (gpointer)this );
/* m_mainWidget holds the toolbar, the menubar and the client area */
m_mainWidget = gtk_myfixed_new();
gtk_widget_show( m_mainWidget );
GTK_WIDGET_UNSET_FLAGS( m_mainWidget, GTK_CAN_FOCUS );
gtk_container_add( GTK_CONTAINER(m_widget), m_mainWidget );
gtk_widget_realize( m_mainWidget );
/* m_wxwindow only represents the client area without toolbar and menubar */
m_wxwindow = gtk_myfixed_new();
gtk_widget_show( m_wxwindow );
GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow );
gtk_container_add( GTK_CONTAINER(m_mainWidget), m_wxwindow );
if (m_parent) m_parent->AddChild( this );
@@ -233,7 +286,7 @@ bool wxFrame::Show( bool show )
{
/* by calling GtkOnSize here, we don't have to call
either after showing the frame, which would entail
much ugly flicker nor from within the size_allocate
much ugly flicker or from within the size_allocate
handler, because GTK 1.1.X forbids that. */
GtkOnSize( m_x, m_y, m_width, m_height );
@@ -251,24 +304,6 @@ bool wxFrame::Destroy()
return TRUE;
}
wxPoint wxFrame::GetClientAreaOrigin() const
{
wxPoint pt( m_miniEdge, m_miniEdge + m_miniTitle );
if (m_frameMenuBar)
{
int h = 0;
m_frameMenuBar->GetSize( (int*)NULL, &h );
pt.y += h;
}
if (m_frameToolBar)
{
int h = 0;
m_frameToolBar->GetSize( (int*)NULL, &h );
pt.y += h;
}
return pt;
}
void wxFrame::DoSetSize( int x, int y, int width, int height, int sizeFlags )
{
wxASSERT_MSG( (m_widget != NULL), "invalid frame" );
@@ -404,10 +439,13 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height
if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth;
if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight;
/* this emulates the new wxMSW behaviour of placing all
* frame-subwindows (menu, toolbar..) on one native window
/* I revert back to wxGTK's original behaviour. m_mainWidget holds the
* menubar, the toolbar and the client area, which is represented by
* m_wxwindow.
* this hurts in the eye, but I don't want to call SetSize()
* because I don't want to call any non-native functions here. */
int client_area_y_offset = 0;
if (m_frameMenuBar)
{
@@ -420,8 +458,10 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height
m_frameMenuBar->m_width = ww;
m_frameMenuBar->m_height = hh;
gtk_myfixed_move( GTK_MYFIXED(m_wxwindow), m_frameMenuBar->m_widget, xx, yy );
gtk_myfixed_move( GTK_MYFIXED(m_mainWidget), m_frameMenuBar->m_widget, xx, yy );
gtk_widget_set_usize( m_frameMenuBar->m_widget, ww, hh );
client_area_y_offset += hh;
}
if (m_frameToolBar)
@@ -437,14 +477,19 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height
m_frameToolBar->m_height = hh;
m_frameToolBar->m_width = ww;
gtk_myfixed_move( GTK_MYFIXED(m_wxwindow), m_frameToolBar->m_widget, xx, yy );
gtk_myfixed_move( GTK_MYFIXED(m_mainWidget), m_frameToolBar->m_widget, xx, yy );
gtk_widget_set_usize( m_frameToolBar->m_widget, ww, hh );
client_area_y_offset += hh;
}
gtk_myfixed_move( GTK_MYFIXED(m_mainWidget), m_wxwindow, 0, client_area_y_offset );
gtk_widget_set_usize( m_wxwindow, m_width, m_height-client_area_y_offset );
if (m_frameStatusBar)
{
int xx = 0 + m_miniEdge;
int yy = m_height - wxSTATUS_HEIGHT - m_miniEdge;
int yy = m_height - wxSTATUS_HEIGHT - m_miniEdge - client_area_y_offset;
int ww = m_width - 2*m_miniEdge;
int hh = wxSTATUS_HEIGHT;
@@ -564,7 +609,7 @@ void wxFrame::SetMenuBar( wxMenuBar *menuBar )
if (m_frameMenuBar->m_parent != this)
{
m_frameMenuBar->m_parent = this;
gtk_myfixed_put( GTK_MYFIXED(m_wxwindow),
gtk_myfixed_put( GTK_MYFIXED(m_mainWidget),
m_frameMenuBar->m_widget, m_frameMenuBar->m_x, m_frameMenuBar->m_y );
/* an mdi child menu bar might be underneath */

View File

@@ -184,13 +184,6 @@ static void draw_frame( GtkWidget *widget, wxWindow *win )
dx += widget->allocation.x;
dy += widget->allocation.y;
}
else
if (win->m_parent)
{
wxPoint pt(win->m_parent->GetClientAreaOrigin());
dx += pt.x;
dy += pt.y;
}
if (win->m_windowStyle & wxRAISED_BORDER)
{
@@ -706,10 +699,6 @@ static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton
}
}
wxPoint pt(win->GetClientAreaOrigin());
event.m_x -= pt.x;
event.m_y -= pt.y;
event.SetEventObject( win );
gs_timeLastClick = gdk_event->time;
@@ -816,10 +805,6 @@ static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButto
}
}
wxPoint pt(win->GetClientAreaOrigin());
event.m_x -= pt.x;
event.m_y -= pt.y;
event.SetEventObject( win );
if (win->GetEventHandler()->ProcessEvent( event ))
@@ -927,10 +912,6 @@ static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion
}
}
wxPoint pt(win->GetClientAreaOrigin());
event.m_x -= pt.x;
event.m_y -= pt.y;
event.SetEventObject( win );
if (win->GetEventHandler()->ProcessEvent( event ))
@@ -1064,10 +1045,6 @@ static gint gtk_window_enter_callback( GtkWidget *widget, GdkEventCrossing *gdk_
event.m_x = (long)x;
event.m_y = (long)y;
wxPoint pt(win->GetClientAreaOrigin());
event.m_x -= pt.x;
event.m_y -= pt.y;
if (win->GetEventHandler()->ProcessEvent( event ))
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "enter_notify_event" );
@@ -1118,10 +1095,6 @@ static gint gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_
event.m_x = (long)x;
event.m_y = (long)y;
wxPoint pt(win->GetClientAreaOrigin());
event.m_x -= pt.x;
event.m_y -= pt.y;
if (win->GetEventHandler()->ProcessEvent( event ))
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "leave_notify_event" );
@@ -1345,11 +1318,6 @@ static void wxInsertChildInWindow( wxWindow* parent, wxWindow* child )
child->m_width,
child->m_height );
if (wxIS_KIND_OF(parent,wxFrame))
{
parent->m_sizeSet = FALSE;
}
if (parent->m_windowStyle & wxTAB_TRAVERSAL)
{
/* we now allow a window to get the focus as long as it
@@ -1869,21 +1837,6 @@ void wxWindow::PrepareDC( wxDC &WXUNUSED(dc) )
// are we to set fonts here ?
}
wxPoint wxWindow::GetClientAreaOrigin() const
{
return wxPoint(0,0);
}
void wxWindow::AdjustForParentClientOrigin( int& x, int& y, int sizeFlags )
{
if (((sizeFlags & wxSIZE_NO_ADJUSTMENTS) == 0) && GetParent())
{
wxPoint pt(GetParent()->GetClientAreaOrigin());
x += pt.x;
y += pt.y;
}
}
void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags )
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
@@ -1940,15 +1893,13 @@ void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags )
/* the default button has a border around it */
int border = 5;
wxPoint pt( m_parent->GetClientAreaOrigin() );
gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), m_widget, m_x+pt.x-border, m_y+pt.y-border );
gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), m_widget, m_x-border, m_y-border );
gtk_widget_set_usize( m_widget, m_width+2*border, m_height+2*border );
}
else
{
wxPoint pt( m_parent->GetClientAreaOrigin() );
gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), m_widget, m_x+pt.x, m_y+pt.y );
gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), m_widget, m_x, m_y );
if ((old_width != m_width) || (old_height != m_height))
gtk_widget_set_usize( m_widget, m_width, m_height );
@@ -2139,10 +2090,6 @@ void wxWindow::ClientToScreen( int *x, int *y )
}
}
wxPoint pt(GetClientAreaOrigin());
org_x += pt.x;
org_y += pt.y;
if (x) *x += org_x;
if (y) *y += org_y;
}
@@ -2170,10 +2117,6 @@ void wxWindow::ScreenToClient( int *x, int *y )
}
}
wxPoint pt(GetClientAreaOrigin());
org_x -= pt.x;
org_y -= pt.y;
if (x) *x -= org_x;
if (y) *y -= org_y;
}