selection_handler,
NULL );
break;
-*/
case wxDF_TEXT:
gtk_selection_add_handler( m_clipboardWidget,
g_clipboardAtom,
selection_handler,
NULL );
break;
+*/
default:
break;
}
gprivate->height = (attributes->height > 1) ? (attributes->height) : (1);
gprivate->window_type = attributes->window_type;
gprivate->extension_events = FALSE;
+
+#ifndef NEW_GTK_DND_CODE
gprivate->dnd_drag_data_type = None;
gprivate->dnd_drag_data_typesavail =
gprivate->dnd_drop_data_typesavail = NULL;
gprivate->dnd_drop_data_numtypesavail =
gprivate->dnd_drag_data_numtypesavail = 0;
gprivate->dnd_drag_eventmask = gprivate->dnd_drag_savedeventmask = 0;
+#endif
gprivate->filters = NULL;
gprivate->children = NULL;
#include "wx/utils.h"
#include <wx/intl.h>
+//-------------------------------------------------------------------------
+// conditional compilation
+//-------------------------------------------------------------------------
+
+#if (GTK_MINOR_VERSION == 1)
+#if (GTK_MICRO_VERSION >= 5)
+#define NEW_GTK_SCROLL_CODE
+#endif
+#endif
+
//-----------------------------------------------------------------------------
// data
//-----------------------------------------------------------------------------
gtk_list_set_selection_mode( GTK_LIST(m_list), mode );
+#ifdef NEW_GTK_SCROLL_CODE
+ gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(m_widget), GTK_WIDGET(m_list) );
+#else
gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_list) );
+#endif
+
gtk_widget_show( GTK_WIDGET(m_list) );
wxSize newSize = size;
ConnectWidget( list_item );
+#ifndef NEW_GTK_DND_CODE
if (m_dropTarget) m_dropTarget->RegisterWidget( list_item );
+#endif
}
void wxListBox::Append( const wxString &item )
{
wxCHECK_RET( m_list != NULL, "invalid listbox" );
+#ifndef NEW_GTK_DND_CODE
if (m_dropTarget)
{
GList *child = m_list->children;
while (child)
{
-#ifdef NEW_GTK_DND_CODE
- GtkBin *item = GTK_BIN( child->data );
- m_dropTarget->UnregisterWidget( item->child );
-#else
m_dropTarget->UnregisterWidget( GTK_WIDGET( child->data ) );
-#endif
child = child->next;
}
}
-
-#ifndef NEW_GTK_DND_CODE
- if (m_dropTarget) m_dropTarget->UnregisterWidget( m_list );
#endif
-
- if (m_dropTarget) delete m_dropTarget;
- m_dropTarget = dropTarget;
+
+ wxWindow::SetDropTarget( dropTarget );
#ifndef NEW_GTK_DND_CODE
- if (m_dropTarget) m_dropTarget->RegisterWidget( dnd_widget );
-#endif
-
if (m_dropTarget)
{
GList *child = m_list->children;
while (child)
{
-#ifdef NEW_GTK_DND_CODE
- GtkBin *item = GTK_BIN( child->data );
- m_dropTarget->RegisterWidget( item->child );
-#else
m_dropTarget->RegisterWidget( GTK_WIDGET( child->data ) );
-#endif
child = child->next;
}
}
+#endif
}
GtkWidget *wxListBox::GetConnectWidget()
#include "wx/gtk/win_gtk.h"
#include <gtk/gtkfeatures.h>
+/*-------------------------------------------------------------------------
+// conditional compilation
+//------------------------------------------------------------------------- */
+
+#if (GTK_MINOR_VERSION == 1)
+#if (GTK_MICRO_VERSION >= 5)
+#define NEW_GTK_CONSTRUCT_CODE
+#endif
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
static void gtk_myfixed_class_init (GtkMyFixedClass *klass);
static void gtk_myfixed_init (GtkMyFixed *myfixed);
static void gtk_myfixed_map (GtkWidget *widget);
+#ifndef NEW_GTK_CONSTRUCT_CODE
static void gtk_myfixed_unmap (GtkWidget *widget);
+#endif
static void gtk_myfixed_realize (GtkWidget *widget);
static void gtk_myfixed_size_request (GtkWidget *widget,
GtkRequisition *requisition);
#endif
GtkCallback callback,
gpointer callback_data);
+#ifdef NEW_GTK_CONSTRUCT_CODE
+static GtkType gtk_myfixed_child_type (GtkContainer *container);
+#endif
static GtkContainerClass *parent_class = NULL;
sizeof (GtkMyFixedClass),
(GtkClassInitFunc) gtk_myfixed_class_init,
(GtkObjectInitFunc) gtk_myfixed_init,
- (GtkArgSetFunc) NULL,
+#ifndef NEW_GTK_CONSTRUCT_CODE
+ (GtkArgSetFunc) NULL,
(GtkArgGetFunc) NULL,
+#else
+ /* reserved_1 */ NULL,
+ /* reserved_2 */ NULL,
+ (GtkClassInitFunc) NULL,
+#endif
};
myfixed_type = gtk_type_unique (gtk_container_get_type (), &myfixed_info);
widget_class = (GtkWidgetClass*) klass;
container_class = (GtkContainerClass*) klass;
+#ifndef NEW_GTK_CONSTRUCT_CODE
parent_class = gtk_type_class (gtk_container_get_type ());
+#else
+ parent_class = gtk_type_class (GTK_TYPE_CONTAINER);
+#endif
widget_class->map = gtk_myfixed_map;
+#ifndef NEW_GTK_CONSTRUCT_CODE
widget_class->unmap = gtk_myfixed_unmap;
+#endif
widget_class->realize = gtk_myfixed_realize;
widget_class->size_request = gtk_myfixed_size_request;
widget_class->size_allocate = gtk_myfixed_size_allocate;
#else
container_class->foreach = gtk_myfixed_foreach;
#endif
+
+#ifdef NEW_GTK_CONSTRUCT_CODE
+ container_class->child_type = gtk_myfixed_child_type;
+#endif
+}
+
+#ifdef NEW_GTK_CONSTRUCT_CODE
+static GtkType
+gtk_myfixed_child_type (GtkContainer *container)
+{
+ return GTK_TYPE_WIDGET;
}
+#endif
static void
gtk_myfixed_init (GtkMyFixed *myfixed)
{
GTK_WIDGET_UNSET_FLAGS (myfixed, GTK_NO_WINDOW);
+
+#ifndef NEW_GTK_CONSTRUCT_CODE
GTK_WIDGET_SET_FLAGS (myfixed, GTK_BASIC);
+#endif
myfixed->children = NULL;
}
}
}
+#ifndef NEW_GTK_CONSTRUCT_CODE
static void
gtk_myfixed_unmap (GtkWidget *widget)
{
GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);
}
+#endif
static void
gtk_myfixed_realize (GtkWidget *widget)
*/
+//-------------------------------------------------------------------------
+// conditional compilation
+//-------------------------------------------------------------------------
+
+#if (GTK_MINOR_VERSION == 1)
+#if (GTK_MICRO_VERSION >= 5)
+#define NEW_GTK_SCROLL_CODE
+#endif
+#endif
+
//-----------------------------------------------------------------------------
// data
//-----------------------------------------------------------------------------
PreCreation( parent, id, pos, size, style, name );
m_widget = gtk_scrolled_window_new( (GtkAdjustment *) NULL, (GtkAdjustment *) NULL );
+ GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS );
GtkScrolledWindow *s_window = GTK_SCROLLED_WINDOW(m_widget);
gtk_signal_connect(GTK_OBJECT(m_vAdjust), "changed",
(GtkSignalFunc) gtk_window_vscroll_change_callback, (gpointer) this );
+ m_wxwindow = gtk_myfixed_new();
+
+#ifdef NEW_GTK_SCROLL_CODE
+ gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(m_widget), m_wxwindow );
+ GtkViewport *viewport = GTK_VIEWPORT(s_window->child);
+#else
+ gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow );
GtkViewport *viewport = GTK_VIEWPORT(s_window->viewport);
+#endif
if (m_windowStyle & wxRAISED_BORDER)
{
gtk_viewport_set_shadow_type( viewport, GTK_SHADOW_NONE );
}
- m_wxwindow = gtk_myfixed_new();
-
- GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS );
-
if (m_windowStyle & wxTAB_TRAVERSAL == wxTAB_TRAVERSAL)
GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
else
GTK_WIDGET_SET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
- gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow );
-
// shut the viewport up
gtk_viewport_set_hadjustment( viewport, (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) );
gtk_viewport_set_vadjustment( viewport, (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) );
GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget);
GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass );
+#ifdef NEW_GTK_SCROLL_CODE
+ GtkWidget *viewport = scroll_window->child;
+#else
GtkWidget *viewport = scroll_window->viewport;
+#endif
+
GtkStyleClass *viewport_class = viewport->style->klass;
GtkWidget *hscrollbar = scroll_window->hscrollbar;
GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget);
GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass );
+#ifdef NEW_GTK_SCROLL_CODE
+ GtkWidget *viewport = scroll_window->child;
+#else
GtkWidget *viewport = scroll_window->viewport;
+#endif
+
GtkStyleClass *viewport_class = viewport->style->klass;
GtkWidget *hscrollbar = scroll_window->hscrollbar;
selection_handler,
NULL );
break;
-*/
case wxDF_TEXT:
gtk_selection_add_handler( m_clipboardWidget,
g_clipboardAtom,
selection_handler,
NULL );
break;
+*/
default:
break;
}
gprivate->height = (attributes->height > 1) ? (attributes->height) : (1);
gprivate->window_type = attributes->window_type;
gprivate->extension_events = FALSE;
+
+#ifndef NEW_GTK_DND_CODE
gprivate->dnd_drag_data_type = None;
gprivate->dnd_drag_data_typesavail =
gprivate->dnd_drop_data_typesavail = NULL;
gprivate->dnd_drop_data_numtypesavail =
gprivate->dnd_drag_data_numtypesavail = 0;
gprivate->dnd_drag_eventmask = gprivate->dnd_drag_savedeventmask = 0;
+#endif
gprivate->filters = NULL;
gprivate->children = NULL;
#include "wx/utils.h"
#include <wx/intl.h>
+//-------------------------------------------------------------------------
+// conditional compilation
+//-------------------------------------------------------------------------
+
+#if (GTK_MINOR_VERSION == 1)
+#if (GTK_MICRO_VERSION >= 5)
+#define NEW_GTK_SCROLL_CODE
+#endif
+#endif
+
//-----------------------------------------------------------------------------
// data
//-----------------------------------------------------------------------------
gtk_list_set_selection_mode( GTK_LIST(m_list), mode );
+#ifdef NEW_GTK_SCROLL_CODE
+ gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(m_widget), GTK_WIDGET(m_list) );
+#else
gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_list) );
+#endif
+
gtk_widget_show( GTK_WIDGET(m_list) );
wxSize newSize = size;
ConnectWidget( list_item );
+#ifndef NEW_GTK_DND_CODE
if (m_dropTarget) m_dropTarget->RegisterWidget( list_item );
+#endif
}
void wxListBox::Append( const wxString &item )
{
wxCHECK_RET( m_list != NULL, "invalid listbox" );
+#ifndef NEW_GTK_DND_CODE
if (m_dropTarget)
{
GList *child = m_list->children;
while (child)
{
-#ifdef NEW_GTK_DND_CODE
- GtkBin *item = GTK_BIN( child->data );
- m_dropTarget->UnregisterWidget( item->child );
-#else
m_dropTarget->UnregisterWidget( GTK_WIDGET( child->data ) );
-#endif
child = child->next;
}
}
-
-#ifndef NEW_GTK_DND_CODE
- if (m_dropTarget) m_dropTarget->UnregisterWidget( m_list );
#endif
-
- if (m_dropTarget) delete m_dropTarget;
- m_dropTarget = dropTarget;
+
+ wxWindow::SetDropTarget( dropTarget );
#ifndef NEW_GTK_DND_CODE
- if (m_dropTarget) m_dropTarget->RegisterWidget( dnd_widget );
-#endif
-
if (m_dropTarget)
{
GList *child = m_list->children;
while (child)
{
-#ifdef NEW_GTK_DND_CODE
- GtkBin *item = GTK_BIN( child->data );
- m_dropTarget->RegisterWidget( item->child );
-#else
m_dropTarget->RegisterWidget( GTK_WIDGET( child->data ) );
-#endif
child = child->next;
}
}
+#endif
}
GtkWidget *wxListBox::GetConnectWidget()
#include "wx/gtk/win_gtk.h"
#include <gtk/gtkfeatures.h>
+/*-------------------------------------------------------------------------
+// conditional compilation
+//------------------------------------------------------------------------- */
+
+#if (GTK_MINOR_VERSION == 1)
+#if (GTK_MICRO_VERSION >= 5)
+#define NEW_GTK_CONSTRUCT_CODE
+#endif
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
static void gtk_myfixed_class_init (GtkMyFixedClass *klass);
static void gtk_myfixed_init (GtkMyFixed *myfixed);
static void gtk_myfixed_map (GtkWidget *widget);
+#ifndef NEW_GTK_CONSTRUCT_CODE
static void gtk_myfixed_unmap (GtkWidget *widget);
+#endif
static void gtk_myfixed_realize (GtkWidget *widget);
static void gtk_myfixed_size_request (GtkWidget *widget,
GtkRequisition *requisition);
#endif
GtkCallback callback,
gpointer callback_data);
+#ifdef NEW_GTK_CONSTRUCT_CODE
+static GtkType gtk_myfixed_child_type (GtkContainer *container);
+#endif
static GtkContainerClass *parent_class = NULL;
sizeof (GtkMyFixedClass),
(GtkClassInitFunc) gtk_myfixed_class_init,
(GtkObjectInitFunc) gtk_myfixed_init,
- (GtkArgSetFunc) NULL,
+#ifndef NEW_GTK_CONSTRUCT_CODE
+ (GtkArgSetFunc) NULL,
(GtkArgGetFunc) NULL,
+#else
+ /* reserved_1 */ NULL,
+ /* reserved_2 */ NULL,
+ (GtkClassInitFunc) NULL,
+#endif
};
myfixed_type = gtk_type_unique (gtk_container_get_type (), &myfixed_info);
widget_class = (GtkWidgetClass*) klass;
container_class = (GtkContainerClass*) klass;
+#ifndef NEW_GTK_CONSTRUCT_CODE
parent_class = gtk_type_class (gtk_container_get_type ());
+#else
+ parent_class = gtk_type_class (GTK_TYPE_CONTAINER);
+#endif
widget_class->map = gtk_myfixed_map;
+#ifndef NEW_GTK_CONSTRUCT_CODE
widget_class->unmap = gtk_myfixed_unmap;
+#endif
widget_class->realize = gtk_myfixed_realize;
widget_class->size_request = gtk_myfixed_size_request;
widget_class->size_allocate = gtk_myfixed_size_allocate;
#else
container_class->foreach = gtk_myfixed_foreach;
#endif
+
+#ifdef NEW_GTK_CONSTRUCT_CODE
+ container_class->child_type = gtk_myfixed_child_type;
+#endif
+}
+
+#ifdef NEW_GTK_CONSTRUCT_CODE
+static GtkType
+gtk_myfixed_child_type (GtkContainer *container)
+{
+ return GTK_TYPE_WIDGET;
}
+#endif
static void
gtk_myfixed_init (GtkMyFixed *myfixed)
{
GTK_WIDGET_UNSET_FLAGS (myfixed, GTK_NO_WINDOW);
+
+#ifndef NEW_GTK_CONSTRUCT_CODE
GTK_WIDGET_SET_FLAGS (myfixed, GTK_BASIC);
+#endif
myfixed->children = NULL;
}
}
}
+#ifndef NEW_GTK_CONSTRUCT_CODE
static void
gtk_myfixed_unmap (GtkWidget *widget)
{
GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);
}
+#endif
static void
gtk_myfixed_realize (GtkWidget *widget)
*/
+//-------------------------------------------------------------------------
+// conditional compilation
+//-------------------------------------------------------------------------
+
+#if (GTK_MINOR_VERSION == 1)
+#if (GTK_MICRO_VERSION >= 5)
+#define NEW_GTK_SCROLL_CODE
+#endif
+#endif
+
//-----------------------------------------------------------------------------
// data
//-----------------------------------------------------------------------------
PreCreation( parent, id, pos, size, style, name );
m_widget = gtk_scrolled_window_new( (GtkAdjustment *) NULL, (GtkAdjustment *) NULL );
+ GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS );
GtkScrolledWindow *s_window = GTK_SCROLLED_WINDOW(m_widget);
gtk_signal_connect(GTK_OBJECT(m_vAdjust), "changed",
(GtkSignalFunc) gtk_window_vscroll_change_callback, (gpointer) this );
+ m_wxwindow = gtk_myfixed_new();
+
+#ifdef NEW_GTK_SCROLL_CODE
+ gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(m_widget), m_wxwindow );
+ GtkViewport *viewport = GTK_VIEWPORT(s_window->child);
+#else
+ gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow );
GtkViewport *viewport = GTK_VIEWPORT(s_window->viewport);
+#endif
if (m_windowStyle & wxRAISED_BORDER)
{
gtk_viewport_set_shadow_type( viewport, GTK_SHADOW_NONE );
}
- m_wxwindow = gtk_myfixed_new();
-
- GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS );
-
if (m_windowStyle & wxTAB_TRAVERSAL == wxTAB_TRAVERSAL)
GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
else
GTK_WIDGET_SET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
- gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow );
-
// shut the viewport up
gtk_viewport_set_hadjustment( viewport, (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) );
gtk_viewport_set_vadjustment( viewport, (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) );
GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget);
GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass );
+#ifdef NEW_GTK_SCROLL_CODE
+ GtkWidget *viewport = scroll_window->child;
+#else
GtkWidget *viewport = scroll_window->viewport;
+#endif
+
GtkStyleClass *viewport_class = viewport->style->klass;
GtkWidget *hscrollbar = scroll_window->hscrollbar;
GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget);
GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass );
+#ifdef NEW_GTK_SCROLL_CODE
+ GtkWidget *viewport = scroll_window->child;
+#else
GtkWidget *viewport = scroll_window->viewport;
+#endif
+
GtkStyleClass *viewport_class = viewport->style->klass;
GtkWidget *hscrollbar = scroll_window->hscrollbar;