X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3a8b3bd1597952135585d7e4e852a4933611f1f7..e16ceb3ca67315531e22417becb2df208529d599:/src/gtk/frame.cpp diff --git a/src/gtk/frame.cpp b/src/gtk/frame.cpp index bc3afd8551..08a0d0e713 100644 --- a/src/gtk/frame.cpp +++ b/src/gtk/frame.cpp @@ -221,7 +221,7 @@ void wxFrame::DoGetClientSize( int *width, int *height ) const { #if wxUSE_MENUS_NATIVE // menu bar - if (m_frameMenuBar) + if (m_frameMenuBar && !(m_fsIsShowing && (m_fsSaveFlag & wxFULLSCREEN_NOMENUBAR != 0))) { if (!m_menuBarDetached) (*height) -= m_menuBarHeight; @@ -232,7 +232,8 @@ void wxFrame::DoGetClientSize( int *width, int *height ) const #if wxUSE_STATUSBAR // status bar - if (m_frameStatusBar && m_frameStatusBar->IsShown()) + if (m_frameStatusBar && m_frameStatusBar->IsShown() && + !(m_fsIsShowing && (m_fsSaveFlag & wxFULLSCREEN_NOSTATUSBAR != 0))) (*height) -= wxSTATUS_HEIGHT; #endif // wxUSE_STATUSBAR } @@ -250,7 +251,7 @@ void wxFrame::DoGetClientSize( int *width, int *height ) const { int x, y; m_frameToolBar->GetSize( &x, &y ); - if ( m_frameToolBar->GetWindowStyle() & wxTB_VERTICAL ) + if ( m_frameToolBar->IsVertical() ) { if (width != NULL) *width -= x; @@ -276,7 +277,7 @@ void wxFrame::DoSetClientSize( int width, int height ) #if wxUSE_MENUS_NATIVE // menu bar - if (m_frameMenuBar) + if (m_frameMenuBar && !(m_fsIsShowing && (m_fsSaveFlag & wxFULLSCREEN_NOMENUBAR != 0))) { if (!m_menuBarDetached) height += m_menuBarHeight; @@ -287,7 +288,9 @@ void wxFrame::DoSetClientSize( int width, int height ) #if wxUSE_STATUSBAR // status bar - if (m_frameStatusBar && m_frameStatusBar->IsShown()) height += wxSTATUS_HEIGHT; + if (m_frameStatusBar && m_frameStatusBar->IsShown() && + !(m_fsIsShowing && (m_fsSaveFlag & wxFULLSCREEN_NOSTATUSBAR != 0))) + height += wxSTATUS_HEIGHT; #endif #if wxUSE_TOOLBAR @@ -302,7 +305,7 @@ void wxFrame::DoSetClientSize( int width, int height ) { int x, y; m_frameToolBar->GetSize( &x, &y ); - if ( m_frameToolBar->GetWindowStyle() & wxTB_VERTICAL ) + if ( m_frameToolBar->IsVertical() ) { width += x; } @@ -349,19 +352,6 @@ void wxFrame::GtkOnSize() if (m_mainWidget) { - // set size hints - gint flag = 0; // GDK_HINT_POS; - 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 = 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, - (GdkWindowHints) flag ); // TODO // Rewrite this terrible code to using GtkVBox @@ -428,6 +418,17 @@ void wxFrame::GtkOnSize() client_area_x_offset += ww; } + else if( m_frameToolBar->HasFlag(wxTB_RIGHT) ) + { + yy += 2; + ww = m_toolBarDetached ? wxPLACE_HOLDER + : m_frameToolBar->m_width; + xx = GetClientSize().x - 1; + hh = m_height - 2*m_miniEdge; + if( hh < 0 ) + hh = 0; + + } else if( m_frameToolBar->GetWindowStyle() & wxTB_BOTTOM ) { xx = m_miniEdge; @@ -479,8 +480,12 @@ void wxFrame::GtkOnSize() } #if wxUSE_STATUSBAR - if (m_frameStatusBar && m_frameStatusBar->IsShown()) + if (m_frameStatusBar && m_frameStatusBar->IsShown() && + !(m_fsIsShowing && (m_fsSaveFlag & wxFULLSCREEN_NOSTATUSBAR != 0))) { + if (!GTK_WIDGET_VISIBLE(m_frameStatusBar->m_widget)) + gtk_widget_show( m_frameStatusBar->m_widget ); + int xx = 0 + m_miniEdge; int yy = m_height - wxSTATUS_HEIGHT - m_miniEdge - client_area_y_offset; int ww = m_width - 2*m_miniEdge; @@ -495,6 +500,14 @@ void wxFrame::GtkOnSize() m_frameStatusBar->m_widget, xx, yy, ww, hh ); } + else + { + if (m_frameStatusBar) + { + if (GTK_WIDGET_VISIBLE(m_frameStatusBar->m_widget)) + gtk_widget_hide( m_frameStatusBar->m_widget ); + } + } #endif // wxUSE_STATUSBAR m_sizeSet = true;