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
|
else
|
||||||
gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1);
|
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 */
|
/* reset the icon */
|
||||||
if (win->m_icon != wxNullIcon)
|
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_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth;
|
||||||
if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight;
|
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;
|
m_sizeSet = TRUE;
|
||||||
|
|
||||||
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
|
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
|
||||||
|
@@ -294,19 +294,6 @@ gtk_frame_realized_callback( GtkWidget *widget, wxFrame *win )
|
|||||||
else
|
else
|
||||||
gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1);
|
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 */
|
/* reset the icon */
|
||||||
wxIcon iconOld = win->GetIcon();
|
wxIcon iconOld = win->GetIcon();
|
||||||
if ( iconOld != wxNullIcon )
|
if ( iconOld != wxNullIcon )
|
||||||
@@ -747,14 +734,28 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
|
|||||||
skip the part which handles m_frameMenuBar, m_frameToolBar and (most
|
skip the part which handles m_frameMenuBar, m_frameToolBar and (most
|
||||||
importantly) m_mainWidget */
|
importantly) m_mainWidget */
|
||||||
|
|
||||||
if (m_mainWidget)
|
|
||||||
{
|
|
||||||
/* check if size is in legal range */
|
|
||||||
if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth;
|
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_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight;
|
||||||
if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth;
|
if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth;
|
||||||
if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight;
|
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)
|
||||||
|
{
|
||||||
|
|
||||||
/* I revert back to wxGTK's original behaviour. m_mainWidget holds the
|
/* I revert back to wxGTK's original behaviour. m_mainWidget holds the
|
||||||
* menubar, the toolbar and the client area, which is represented by
|
* menubar, the toolbar and the client area, which is represented by
|
||||||
* m_wxwindow.
|
* m_wxwindow.
|
||||||
@@ -852,9 +853,6 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
|
|||||||
}
|
}
|
||||||
#endif
|
#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;
|
m_sizeSet = TRUE;
|
||||||
|
|
||||||
// send size event to frame
|
// send size event to frame
|
||||||
|
@@ -175,19 +175,6 @@ gtk_dialog_realized_callback( GtkWidget *widget, wxDialog *win )
|
|||||||
else
|
else
|
||||||
gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1);
|
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 */
|
/* reset the icon */
|
||||||
if (win->m_icon != wxNullIcon)
|
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_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth;
|
||||||
if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight;
|
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;
|
m_sizeSet = TRUE;
|
||||||
|
|
||||||
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
|
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
|
||||||
|
@@ -294,19 +294,6 @@ gtk_frame_realized_callback( GtkWidget *widget, wxFrame *win )
|
|||||||
else
|
else
|
||||||
gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1);
|
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 */
|
/* reset the icon */
|
||||||
wxIcon iconOld = win->GetIcon();
|
wxIcon iconOld = win->GetIcon();
|
||||||
if ( iconOld != wxNullIcon )
|
if ( iconOld != wxNullIcon )
|
||||||
@@ -747,14 +734,28 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
|
|||||||
skip the part which handles m_frameMenuBar, m_frameToolBar and (most
|
skip the part which handles m_frameMenuBar, m_frameToolBar and (most
|
||||||
importantly) m_mainWidget */
|
importantly) m_mainWidget */
|
||||||
|
|
||||||
if (m_mainWidget)
|
|
||||||
{
|
|
||||||
/* check if size is in legal range */
|
|
||||||
if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth;
|
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_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight;
|
||||||
if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth;
|
if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth;
|
||||||
if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight;
|
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)
|
||||||
|
{
|
||||||
|
|
||||||
/* I revert back to wxGTK's original behaviour. m_mainWidget holds the
|
/* I revert back to wxGTK's original behaviour. m_mainWidget holds the
|
||||||
* menubar, the toolbar and the client area, which is represented by
|
* menubar, the toolbar and the client area, which is represented by
|
||||||
* m_wxwindow.
|
* m_wxwindow.
|
||||||
@@ -852,9 +853,6 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
|
|||||||
}
|
}
|
||||||
#endif
|
#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;
|
m_sizeSet = TRUE;
|
||||||
|
|
||||||
// send size event to frame
|
// send size event to frame
|
||||||
|
Reference in New Issue
Block a user