// event tables
// ----------------------------------------------------------------------------
-#ifndef __WXUNIVERSAL__
- IMPLEMENT_DYNAMIC_CLASS(wxTopLevelWindow, wxWindow)
-#endif
-
// ----------------------------------------------------------------------------
// data
// ----------------------------------------------------------------------------
/* All this is for Motif Window Manager "hints" and is supposed to be
recognized by other WM as well. Not tested. */
- gdk_window_set_decorations(win->m_widget->window,
+ gdk_window_set_decorations(win->m_widget->window,
(GdkWMDecoration)win->m_gdkDecor);
- gdk_window_set_functions(win->m_widget->window,
+ gdk_window_set_functions(win->m_widget->window,
(GdkWMFunction)win->m_gdkFunc);
/* GTK's shrinking/growing policy */
if (style & wxFRAME_TOOL_WINDOW)
win_type = GTK_WINDOW_POPUP;
-
+
if (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)
win_type = GTK_WINDOW_DIALOG;
m_widget = gtk_window_new( win_type );
- if ((m_parent) && (HasFlag(wxFRAME_FLOAT_ON_PARENT)) && (GTK_IS_WINDOW(m_parent->m_widget)))
+ if (m_parent && (GTK_IS_WINDOW(m_parent->m_widget)) &&
+ (HasFlag(wxFRAME_FLOAT_ON_PARENT) || (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)))
+ {
gtk_window_set_transient_for( GTK_WINDOW(m_widget), GTK_WINDOW(m_parent->m_widget) );
+ }
if (!name.IsEmpty())
gtk_window_set_wmclass( GTK_WINDOW(m_widget), name.mb_str(), name.mb_str() );
{
m_gdkDecor = (long) GDK_DECOR_BORDER;
m_gdkFunc = (long) GDK_FUNC_MOVE;
-
+
// All this is for Motif Window Manager "hints" and is supposed to be
- // recognized by other WM as well. Not tested.
+ // recognized by other WM as well. Not tested.
if ((style & wxCAPTION) != 0)
m_gdkDecor |= GDK_DECOR_TITLE;
if ((style & wxSYSTEM_MENU) != 0)
if (show)
{
- m_fsSaveStyle = m_windowStyle;
+ m_fsSaveGdkFunc = m_gdkFunc;
+ m_fsSaveGdkDecor = m_gdkDecor;
m_fsSaveFlag = style;
GetPosition( &m_fsSaveFrame.x, &m_fsSaveFrame.y );
GetSize( &m_fsSaveFrame.width, &m_fsSaveFrame.height );
gtk_widget_hide( m_widget );
gtk_widget_unrealize( m_widget );
- m_windowStyle = wxSIMPLE_BORDER;
+ m_gdkDecor = (long) GDK_DECOR_BORDER;
+ m_gdkFunc = (long) GDK_FUNC_MOVE;
int x;
int y;
gtk_widget_hide( m_widget );
gtk_widget_unrealize( m_widget );
- m_windowStyle = m_fsSaveStyle;
+ m_gdkFunc = m_fsSaveGdkFunc;
+ m_gdkDecor = m_fsSaveGdkDecor;
SetSize( m_fsSaveFrame.x, m_fsSaveFrame.y, m_fsSaveFrame.width, m_fsSaveFrame.height );
{
wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
- /* 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") );
/* avoid recursions */
{
wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
- DoSetSize(-1, -1,
+ DoSetSize(-1, -1,
width + m_miniEdge*2, height + m_miniEdge*2 + m_miniTitle, 0);
}
void wxTopLevelWindowGTK::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
- int width, int height )
+ int width, int height )
{
// due to a bug in gtk, x,y are always 0
// m_x = x;
m_width = width;
m_height = height;
- /* 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 */