The Return of WM Size Hints Part IV.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -175,19 +175,6 @@ gtk_dialog_realized_callback( GtkWidget *widget, wxDialog *win )
|
||||
else
|
||||
gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1);
|
||||
|
||||
/* set size hints */
|
||||
gint flag = 0; // GDK_HINT_POS;
|
||||
if ((win->GetMinWidth() != -1) || (win->GetMinHeight() != -1)) flag |= GDK_HINT_MIN_SIZE;
|
||||
if ((win->GetMaxWidth() != -1) || (win->GetMaxHeight() != -1)) flag |= GDK_HINT_MAX_SIZE;
|
||||
if (flag)
|
||||
{
|
||||
gdk_window_set_hints( win->m_widget->window,
|
||||
win->m_x, win->m_y,
|
||||
win->GetMinWidth(), win->GetMinHeight(),
|
||||
win->GetMaxWidth(), win->GetMaxHeight(),
|
||||
flag );
|
||||
}
|
||||
|
||||
/* reset the icon */
|
||||
if (win->m_icon != wxNullIcon)
|
||||
{
|
||||
@@ -556,6 +543,20 @@ void wxDialog::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int heigh
|
||||
if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth;
|
||||
if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight;
|
||||
|
||||
/* 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;
|
||||
GdkGeometry geom;
|
||||
geom.min_width = m_minWidth;
|
||||
geom.min_height = m_minHeight;
|
||||
geom.max_width = m_maxWidth;
|
||||
geom.max_height = m_maxHeight;
|
||||
gtk_window_set_geometry_hints( GTK_WINDOW(m_widget),
|
||||
(GtkWidget*) NULL,
|
||||
&geom,
|
||||
(GdkWindowHints) flag );
|
||||
|
||||
m_sizeSet = TRUE;
|
||||
|
||||
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
|
||||
|
@@ -294,19 +294,6 @@ gtk_frame_realized_callback( GtkWidget *widget, wxFrame *win )
|
||||
else
|
||||
gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1);
|
||||
|
||||
/* set size hints */
|
||||
gint flag = 0; // GDK_HINT_POS;
|
||||
if ((win->GetMinWidth() != -1) || (win->GetMinHeight() != -1)) flag |= GDK_HINT_MIN_SIZE;
|
||||
if ((win->GetMaxWidth() != -1) || (win->GetMaxHeight() != -1)) flag |= GDK_HINT_MAX_SIZE;
|
||||
if (flag)
|
||||
{
|
||||
gdk_window_set_hints( win->m_widget->window,
|
||||
win->m_x, win->m_y,
|
||||
win->GetMinWidth(), win->GetMinHeight(),
|
||||
win->GetMaxWidth(), win->GetMaxHeight(),
|
||||
flag );
|
||||
}
|
||||
|
||||
/* reset the icon */
|
||||
wxIcon iconOld = win->GetIcon();
|
||||
if ( iconOld != wxNullIcon )
|
||||
@@ -747,13 +734,27 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
|
||||
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;
|
||||
|
||||
/* 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;
|
||||
GdkGeometry geom;
|
||||
geom.min_width = m_minWidth;
|
||||
geom.min_height = m_minHeight;
|
||||
geom.max_width = m_maxWidth;
|
||||
geom.max_height = m_maxHeight;
|
||||
gtk_window_set_geometry_hints( GTK_WINDOW(m_widget),
|
||||
(GtkWidget*) NULL,
|
||||
&geom,
|
||||
(GdkWindowHints) flag );
|
||||
|
||||
if (m_mainWidget)
|
||||
{
|
||||
/* check if size is in legal range */
|
||||
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;
|
||||
|
||||
/* I revert back to wxGTK's original behaviour. m_mainWidget holds the
|
||||
* menubar, the toolbar and the client area, which is represented by
|
||||
@@ -852,9 +853,6 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
|
||||
}
|
||||
#endif
|
||||
|
||||
/* we actually set the size of a frame here and no-where else */
|
||||
// gtk_widget_set_usize( m_widget, m_width, m_height );
|
||||
|
||||
m_sizeSet = TRUE;
|
||||
|
||||
// send size event to frame
|
||||
|
@@ -175,19 +175,6 @@ gtk_dialog_realized_callback( GtkWidget *widget, wxDialog *win )
|
||||
else
|
||||
gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1);
|
||||
|
||||
/* set size hints */
|
||||
gint flag = 0; // GDK_HINT_POS;
|
||||
if ((win->GetMinWidth() != -1) || (win->GetMinHeight() != -1)) flag |= GDK_HINT_MIN_SIZE;
|
||||
if ((win->GetMaxWidth() != -1) || (win->GetMaxHeight() != -1)) flag |= GDK_HINT_MAX_SIZE;
|
||||
if (flag)
|
||||
{
|
||||
gdk_window_set_hints( win->m_widget->window,
|
||||
win->m_x, win->m_y,
|
||||
win->GetMinWidth(), win->GetMinHeight(),
|
||||
win->GetMaxWidth(), win->GetMaxHeight(),
|
||||
flag );
|
||||
}
|
||||
|
||||
/* reset the icon */
|
||||
if (win->m_icon != wxNullIcon)
|
||||
{
|
||||
@@ -556,6 +543,20 @@ void wxDialog::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int heigh
|
||||
if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth;
|
||||
if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight;
|
||||
|
||||
/* 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;
|
||||
GdkGeometry geom;
|
||||
geom.min_width = m_minWidth;
|
||||
geom.min_height = m_minHeight;
|
||||
geom.max_width = m_maxWidth;
|
||||
geom.max_height = m_maxHeight;
|
||||
gtk_window_set_geometry_hints( GTK_WINDOW(m_widget),
|
||||
(GtkWidget*) NULL,
|
||||
&geom,
|
||||
(GdkWindowHints) flag );
|
||||
|
||||
m_sizeSet = TRUE;
|
||||
|
||||
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
|
||||
|
@@ -294,19 +294,6 @@ gtk_frame_realized_callback( GtkWidget *widget, wxFrame *win )
|
||||
else
|
||||
gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1);
|
||||
|
||||
/* set size hints */
|
||||
gint flag = 0; // GDK_HINT_POS;
|
||||
if ((win->GetMinWidth() != -1) || (win->GetMinHeight() != -1)) flag |= GDK_HINT_MIN_SIZE;
|
||||
if ((win->GetMaxWidth() != -1) || (win->GetMaxHeight() != -1)) flag |= GDK_HINT_MAX_SIZE;
|
||||
if (flag)
|
||||
{
|
||||
gdk_window_set_hints( win->m_widget->window,
|
||||
win->m_x, win->m_y,
|
||||
win->GetMinWidth(), win->GetMinHeight(),
|
||||
win->GetMaxWidth(), win->GetMaxHeight(),
|
||||
flag );
|
||||
}
|
||||
|
||||
/* reset the icon */
|
||||
wxIcon iconOld = win->GetIcon();
|
||||
if ( iconOld != wxNullIcon )
|
||||
@@ -747,13 +734,27 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
|
||||
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;
|
||||
|
||||
/* 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;
|
||||
GdkGeometry geom;
|
||||
geom.min_width = m_minWidth;
|
||||
geom.min_height = m_minHeight;
|
||||
geom.max_width = m_maxWidth;
|
||||
geom.max_height = m_maxHeight;
|
||||
gtk_window_set_geometry_hints( GTK_WINDOW(m_widget),
|
||||
(GtkWidget*) NULL,
|
||||
&geom,
|
||||
(GdkWindowHints) flag );
|
||||
|
||||
if (m_mainWidget)
|
||||
{
|
||||
/* check if size is in legal range */
|
||||
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;
|
||||
|
||||
/* I revert back to wxGTK's original behaviour. m_mainWidget holds the
|
||||
* menubar, the toolbar and the client area, which is represented by
|
||||
@@ -852,9 +853,6 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
|
||||
}
|
||||
#endif
|
||||
|
||||
/* we actually set the size of a frame here and no-where else */
|
||||
// gtk_widget_set_usize( m_widget, m_width, m_height );
|
||||
|
||||
m_sizeSet = TRUE;
|
||||
|
||||
// send size event to frame
|
||||
|
Reference in New Issue
Block a user