#include "wx/dcclient.h"
#include <glib.h>
-#include <gdk/gdk.h>
-#include <gtk/gtk.h>
+#include "wx/gtk/private.h"
+
#include <gdk/gdkkeysyms.h>
#include <gdk/gdkx.h>
// event tables
// ----------------------------------------------------------------------------
-#ifndef __WXUNIVERSAL__
- IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
-#endif
+IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
// ============================================================================
// implementation
// "child_attached" of menu bar
//-----------------------------------------------------------------------------
-static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrameGTK *win )
+static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
// "child_detached" of menu bar
//-----------------------------------------------------------------------------
-static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrameGTK *win )
+static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
// "child_attached" of tool bar
//-----------------------------------------------------------------------------
-static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrameGTK *win )
+static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
// "child_detached" of tool bar
//-----------------------------------------------------------------------------
-static void gtk_toolbar_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrameGTK *win )
+static void gtk_toolbar_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (g_isIdle)
wxapp_install_idle_handler();
// ----------------------------------------------------------------------------
-// wxFrameGTK itself
+// wxFrame itself
// ----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
-// InsertChild for wxFrameGTK
+// InsertChild for wxFrame
//-----------------------------------------------------------------------------
-/* Callback for wxFrameGTK. This very strange beast has to be used because
+/* 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( wxFrameGTK* parent, wxWindow* child )
+static void wxInsertChildInFrame( wxFrame* parent, wxWindow* child )
{
wxASSERT( GTK_IS_WIDGET(child->m_widget) );
if (!parent->m_insertInClientArea)
{
/* these are outside the client area */
- wxFrameGTK* frame = (wxFrameGTK*) parent;
+ wxFrame* frame = (wxFrame*) parent;
gtk_pizza_put( GTK_PIZZA(frame->m_mainWidget),
GTK_WIDGET(child->m_widget),
child->m_x,
}
// ----------------------------------------------------------------------------
-// wxFrameGTK creation
+// wxFrame creation
// ----------------------------------------------------------------------------
-void wxFrameGTK::Init()
+void wxFrame::Init()
{
m_menuBarDetached = FALSE;
m_toolBarDetached = FALSE;
}
-bool wxFrameGTK::Create( wxWindow *parent,
+bool wxFrame::Create( wxWindow *parent,
wxWindowID id,
const wxString& title,
const wxPoint& pos,
return rt;
}
-wxFrameGTK::~wxFrameGTK()
+wxFrame::~wxFrame()
{
m_isBeingDeleted = TRUE;
DeleteAllBars();
// overridden wxWindow methods
// ----------------------------------------------------------------------------
-void wxFrameGTK::DoGetClientSize( int *width, int *height ) const
+void wxFrame::DoGetClientSize( int *width, int *height ) const
{
wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
}
}
-void wxFrameGTK::DoSetClientSize( int width, int height )
+void wxFrame::DoSetClientSize( int width, int height )
{
wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
wxTopLevelWindow::DoSetClientSize( width, height );
}
-void wxFrameGTK::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
+void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
int width, int height )
{
// due to a bug in gtk, x,y are always 0
if (m_resizing) return;
m_resizing = TRUE;
- /* this shouldn't happen: wxFrameGTK, wxMDIParentFrame and wxMDIChildFrame have m_wxwindow */
+ /* this shouldn't happen: wxFrame, wxMDIParentFrame and wxMDIChildFrame have m_wxwindow */
wxASSERT_MSG( (m_wxwindow != NULL), wxT("invalid frame") );
m_width = width;
int client_area_x_offset = 0,
client_area_y_offset = 0;
- /* wxMDIChildFrame derives from wxFrameGTK but it _is_ a wxWindow as it uses
+ /* wxMDIChildFrame derives from wxFrame but it _is_ a wxWindow as it uses
wxWindow::Create to create it's GTK equivalent. m_mainWidget is only
- set in wxFrameGTK::Create so it is used to check what kind of frame we
+ set in wxFrame::Create so it is used to check what kind of frame we
have here. if m_mainWidget is NULL it is a wxMDIChildFrame and so we
skip the part which handles m_frameMenuBar, m_frameToolBar and (most
importantly) m_mainWidget */
- if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth;
- if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight;
- if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth;
- if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight;
+ int minWidth = GetMinWidth(),
+ minHeight = GetMinHeight(),
+ maxWidth = GetMaxWidth(),
+ maxHeight = GetMaxHeight();
+
+ if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth;
+ if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight;
+ if ((maxWidth != -1) && (m_width > maxWidth)) m_width = maxWidth;
+ if ((maxHeight != -1) && (m_height > maxHeight)) m_height = maxHeight;
if (m_mainWidget)
{
/* set size hints */
gint flag = 0; // GDK_HINT_POS;
- if ((m_minWidth != -1) || (m_minHeight != -1)) flag |= GDK_HINT_MIN_SIZE;
- if ((m_maxWidth != -1) || (m_maxHeight != -1)) flag |= GDK_HINT_MAX_SIZE;
+ if ((minWidth != -1) || (minHeight != -1)) flag |= GDK_HINT_MIN_SIZE;
+ if ((maxWidth != -1) || (maxHeight != -1)) flag |= GDK_HINT_MAX_SIZE;
GdkGeometry geom;
- geom.min_width = m_minWidth;
- geom.min_height = m_minHeight;
- geom.max_width = m_maxWidth;
- geom.max_height = m_maxHeight;
+ geom.min_width = minWidth;
+ geom.min_height = minHeight;
+ geom.max_width = maxWidth;
+ geom.max_height = maxHeight;
gtk_window_set_geometry_hints( GTK_WINDOW(m_widget),
(GtkWidget*) NULL,
&geom,
m_resizing = FALSE;
}
-void wxFrameGTK::OnInternalIdle()
+void wxFrame::OnInternalIdle()
{
wxTopLevelWindow::OnInternalIdle();
#if wxUSE_MENUS_NATIVE
-void wxFrameGTK::DetachMenuBar()
+void wxFrame::DetachMenuBar()
{
wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
wxASSERT_MSG( (m_wxwindow != NULL), wxT("invalid frame") );
GTK_SIGNAL_FUNC(gtk_menu_detached_callback), (gpointer)this );
}
- gtk_container_remove( GTK_CONTAINER(m_mainWidget), m_frameMenuBar->m_widget );
gtk_widget_ref( m_frameMenuBar->m_widget );
- gtk_widget_unparent( m_frameMenuBar->m_widget );
+
+ gtk_container_remove( GTK_CONTAINER(m_mainWidget), m_frameMenuBar->m_widget );
}
wxFrameBase::DetachMenuBar();
}
-void wxFrameGTK::AttachMenuBar( wxMenuBar *menuBar )
+void wxFrame::AttachMenuBar( wxMenuBar *menuBar )
{
wxFrameBase::AttachMenuBar(menuBar);
m_frameMenuBar->Show( TRUE );
}
- /* resize window in OnInternalIdle */
+ // resize window in OnInternalIdle
m_sizeSet = FALSE;
}
#if wxUSE_TOOLBAR
-wxToolBar* wxFrameGTK::CreateToolBar( long style, wxWindowID id, const wxString& name )
+wxToolBar* wxFrame::CreateToolBar( long style, wxWindowID id, const wxString& name )
{
wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
return m_frameToolBar;
}
-void wxFrameGTK::SetToolBar(wxToolBar *toolbar)
+void wxFrame::SetToolBar(wxToolBar *toolbar)
{
wxFrameBase::SetToolBar(toolbar);
if (m_frameToolBar)
{
- /* insert into toolbar area if not already there */
+ // insert into toolbar area if not already there
if ((m_frameToolBar->m_widget->parent) &&
(m_frameToolBar->m_widget->parent != m_mainWidget))
{
#if wxUSE_STATUSBAR
-wxStatusBar* wxFrameGTK::CreateStatusBar(int number,
+wxStatusBar* wxFrame::CreateStatusBar(int number,
long style,
wxWindowID id,
const wxString& name)
return wxFrameBase::CreateStatusBar( number, style, id, name );
}
-void wxFrameGTK::PositionStatusBar()
+void wxFrame::PositionStatusBar()
{
if ( !m_frameStatusBar )
return;