{
wxPaintDC dc(this);
m_owner->PrepareDC( dc );
- dc.DrawText( "Colummn 1", 5, 5 );
- dc.DrawText( "Colummn 2", 105, 5 );
- dc.DrawText( "Colummn 3", 205, 5 );
+ dc.DrawText( "Column 1", 5, 5 );
+ dc.DrawText( "Column 2", 105, 5 );
+ dc.DrawText( "Column 3", 205, 5 );
}
// MyRightLabels
int wxEntry( int argc, char *argv[] )
{
#if wxUSE_THREADS
- g_thread_init(NULL);
+ /* GTK 1.2 up to version 1.2.3 has broken threads */
+ if ((gtk_major_version == 1) &&
+ (gtk_minor_version == 2) &&
+ (gtk_micro_version < 4))
+ {
+ printf( "wxWindows warning: Disabled GUI threading due to outdated GTK version\n" );
+ }
+ else
+ {
+ g_thread_init(NULL);
+ }
#endif
gtk_set_locale();
here in order to make repositioning after resizing to take effect. */
if ((gtk_major_version == 1) &&
(gtk_minor_version == 2) &&
- (gtk_micro_version < 6) &&
+ (gtk_micro_version < 6) &&
(win->m_wxwindow) &&
- (GTK_WIDGET_REALIZED(win->m_wxwindow)))
+ (GTK_WIDGET_REALIZED(win->m_wxwindow)))
{
gtk_widget_size_allocate( win->m_wxwindow, alloc );
}
// "size_allocate"
//-----------------------------------------------------------------------------
+static
+void gtk_window_size_callback( GtkWidget *widget,
+ GtkAllocation *alloc,
+ wxWindow *win )
+{
+ if (g_isIdle)
+ wxapp_install_idle_handler();
+
+ wxSizeEvent event( win->GetSize(), win->GetId() );
+ event.SetEventObject( win );
+ win->GetEventHandler()->ProcessEvent( event );
+}
+
+
#ifdef HAVE_XIM
#define WXUNUSED_UNLESS_XIM(param) param
#else
/* Resize XIM window */
static
-void gtk_wxwindow_size_callback( GtkWidget * WXUNUSED_UNLESS_XIM(widget),
- GtkAllocation * WXUNUSED_UNLESS_XIM(alloc),
- wxFrame * WXUNUSED_UNLESS_XIM(win) )
+void gtk_wxwindow_size_callback( GtkWidget* WXUNUSED_UNLESS_XIM(widget),
+ GtkAllocation* WXUNUSED_UNLESS_XIM(alloc),
+ wxWindow* WXUNUSED_UNLESS_XIM(win) )
{
if (g_isIdle)
wxapp_install_idle_handler();
-
+
#ifdef HAVE_XIM
if (!win->m_ic)
return;
if (m_wxwindow)
{
- /* Initialize XIM support. */
+ /* Catch native resize events. */
+ gtk_signal_connect( GTK_OBJECT(m_wxwindow), "size_allocate",
+ GTK_SIGNAL_FUNC(gtk_window_size_callback), (gpointer)this );
+
+ /* Initialize XIM support. */
gtk_signal_connect( GTK_OBJECT(m_wxwindow), "realize",
GTK_SIGNAL_FUNC(gtk_wxwindow_realized_callback), (gpointer) this );
-
- /* And resize XIM window. */
+
+ /* And resize XIM window. */
gtk_signal_connect( GTK_OBJECT(m_wxwindow), "size_allocate",
GTK_SIGNAL_FUNC(gtk_wxwindow_size_callback), (gpointer)this );
}
int wxEntry( int argc, char *argv[] )
{
#if wxUSE_THREADS
- g_thread_init(NULL);
+ /* GTK 1.2 up to version 1.2.3 has broken threads */
+ if ((gtk_major_version == 1) &&
+ (gtk_minor_version == 2) &&
+ (gtk_micro_version < 4))
+ {
+ printf( "wxWindows warning: Disabled GUI threading due to outdated GTK version\n" );
+ }
+ else
+ {
+ g_thread_init(NULL);
+ }
#endif
gtk_set_locale();
here in order to make repositioning after resizing to take effect. */
if ((gtk_major_version == 1) &&
(gtk_minor_version == 2) &&
- (gtk_micro_version < 6) &&
+ (gtk_micro_version < 6) &&
(win->m_wxwindow) &&
- (GTK_WIDGET_REALIZED(win->m_wxwindow)))
+ (GTK_WIDGET_REALIZED(win->m_wxwindow)))
{
gtk_widget_size_allocate( win->m_wxwindow, alloc );
}
// "size_allocate"
//-----------------------------------------------------------------------------
+static
+void gtk_window_size_callback( GtkWidget *widget,
+ GtkAllocation *alloc,
+ wxWindow *win )
+{
+ if (g_isIdle)
+ wxapp_install_idle_handler();
+
+ wxSizeEvent event( win->GetSize(), win->GetId() );
+ event.SetEventObject( win );
+ win->GetEventHandler()->ProcessEvent( event );
+}
+
+
#ifdef HAVE_XIM
#define WXUNUSED_UNLESS_XIM(param) param
#else
/* Resize XIM window */
static
-void gtk_wxwindow_size_callback( GtkWidget * WXUNUSED_UNLESS_XIM(widget),
- GtkAllocation * WXUNUSED_UNLESS_XIM(alloc),
- wxFrame * WXUNUSED_UNLESS_XIM(win) )
+void gtk_wxwindow_size_callback( GtkWidget* WXUNUSED_UNLESS_XIM(widget),
+ GtkAllocation* WXUNUSED_UNLESS_XIM(alloc),
+ wxWindow* WXUNUSED_UNLESS_XIM(win) )
{
if (g_isIdle)
wxapp_install_idle_handler();
-
+
#ifdef HAVE_XIM
if (!win->m_ic)
return;
if (m_wxwindow)
{
- /* Initialize XIM support. */
+ /* Catch native resize events. */
+ gtk_signal_connect( GTK_OBJECT(m_wxwindow), "size_allocate",
+ GTK_SIGNAL_FUNC(gtk_window_size_callback), (gpointer)this );
+
+ /* Initialize XIM support. */
gtk_signal_connect( GTK_OBJECT(m_wxwindow), "realize",
GTK_SIGNAL_FUNC(gtk_wxwindow_realized_callback), (gpointer) this );
-
- /* And resize XIM window. */
+
+ /* And resize XIM window. */
gtk_signal_connect( GTK_OBJECT(m_wxwindow), "size_allocate",
GTK_SIGNAL_FUNC(gtk_wxwindow_size_callback), (gpointer)this );
}