GTK+ callbacks must have C linkage (patch 1157384)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32974 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2005-03-21 23:42:26 +00:00
parent 7d4813a0c1
commit 865bb3251e
70 changed files with 692 additions and 78 deletions

View File

@ -29,6 +29,13 @@ class wxControl;
// wxControl
//-----------------------------------------------------------------------------
// C-linkage function pointer types for GetDefaultAttributesFromGTKWidget
extern "C" {
typedef GtkWidget* (*wxGtkWidgetNew_t)(void);
typedef GtkWidget* (*wxGtkWidgetNewFromStr_t)(const gchar*);
typedef GtkWidget* (*wxGtkWidgetNewFromAdj_t)(GtkAdjustment*);
}
class wxControl : public wxControlBase
{
public:
@ -69,16 +76,16 @@ protected:
bool useBase = false,
int state = -1);
static wxVisualAttributes
GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(void),
GetDefaultAttributesFromGTKWidget(wxGtkWidgetNew_t,
bool useBase = false,
int state = -1);
static wxVisualAttributes
GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(const gchar*),
GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromStr_t,
bool useBase = false,
int state = -1);
static wxVisualAttributes
GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(GtkAdjustment*),
GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromAdj_t,
bool useBase = false,
int state = -1);

View File

@ -29,6 +29,13 @@ class wxControl;
// wxControl
//-----------------------------------------------------------------------------
// C-linkage function pointer types for GetDefaultAttributesFromGTKWidget
extern "C" {
typedef GtkWidget* (*wxGtkWidgetNew_t)(void);
typedef GtkWidget* (*wxGtkWidgetNewFromStr_t)(const gchar*);
typedef GtkWidget* (*wxGtkWidgetNewFromAdj_t)(GtkAdjustment*);
}
class wxControl : public wxControlBase
{
public:
@ -69,16 +76,16 @@ protected:
bool useBase = false,
int state = -1);
static wxVisualAttributes
GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(void),
GetDefaultAttributesFromGTKWidget(wxGtkWidgetNew_t,
bool useBase = false,
int state = -1);
static wxVisualAttributes
GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(const gchar*),
GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromStr_t,
bool useBase = false,
int state = -1);
static wxVisualAttributes
GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(GtkAdjustment*),
GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromAdj_t,
bool useBase = false,
int state = -1);

View File

@ -45,6 +45,7 @@ extern bool g_blockEventsOnDrag;
// "clicked"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (g_isIdle)
@ -57,11 +58,13 @@ static void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxBitma
event.SetEventObject(button);
button->GetEventHandler()->ProcessEvent(event);
}
}
//-----------------------------------------------------------------------------
// "enter"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_bmpbutton_enter_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
@ -69,11 +72,13 @@ static void gtk_bmpbutton_enter_callback( GtkWidget *WXUNUSED(widget), wxBitmapB
button->HasFocus();
}
}
//-----------------------------------------------------------------------------
// "leave"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_bmpbutton_leave_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
@ -81,11 +86,13 @@ static void gtk_bmpbutton_leave_callback( GtkWidget *WXUNUSED(widget), wxBitmapB
button->NotFocus();
}
}
//-----------------------------------------------------------------------------
// "pressed"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_bmpbutton_press_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
@ -93,11 +100,13 @@ static void gtk_bmpbutton_press_callback( GtkWidget *WXUNUSED(widget), wxBitmapB
button->StartSelect();
}
}
//-----------------------------------------------------------------------------
// "released"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
@ -105,6 +114,7 @@ static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitma
button->EndSelect();
}
}
//-----------------------------------------------------------------------------
// wxBitmapButton

View File

@ -47,6 +47,7 @@ extern bool g_blockEventsOnDrag;
// "clicked"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *button )
{
if (g_isIdle)
@ -59,6 +60,7 @@ static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *
event.SetEventObject(button);
button->GetEventHandler()->ProcessEvent(event);
}
}
//-----------------------------------------------------------------------------
// "style_set" from m_widget

View File

@ -42,6 +42,7 @@ extern wxWindowGTK *g_delayedFocus;
// "clicked"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_checkbox_toggled_callback(GtkWidget *widget, wxCheckBox *cb)
{
if (g_isIdle) wxapp_install_idle_handler();
@ -109,6 +110,7 @@ static void gtk_checkbox_toggled_callback(GtkWidget *widget, wxCheckBox *cb)
event.SetEventObject(cb);
cb->GetEventHandler()->ProcessEvent(event);
}
}
//-----------------------------------------------------------------------------
// wxCheckBox

View File

@ -38,6 +38,7 @@ extern bool g_blockEventsOnDrag;
// "activate"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_choice_clicked_callback( GtkWidget *WXUNUSED(widget), wxChoice *choice )
{
if (g_isIdle)
@ -84,6 +85,7 @@ static void gtk_choice_clicked_callback( GtkWidget *WXUNUSED(widget), wxChoice *
choice->GetEventHandler()->ProcessEvent(event);
}
}
//-----------------------------------------------------------------------------
// wxChoice

View File

@ -78,6 +78,7 @@ struct _GtkSelectionData
// "selection_received" for targets
//-----------------------------------------------------------------------------
extern "C" {
static void
targets_selection_received( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
@ -133,11 +134,13 @@ targets_selection_received( GtkWidget *WXUNUSED(widget),
clipboard->m_waiting = FALSE;
}
}
//-----------------------------------------------------------------------------
// "selection_received" for the actual data
//-----------------------------------------------------------------------------
extern "C" {
static void
selection_received( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
@ -189,11 +192,13 @@ selection_received( GtkWidget *WXUNUSED(widget),
wxTheClipboard->m_formatSupported = TRUE;
clipboard->m_waiting = FALSE;
}
}
//-----------------------------------------------------------------------------
// "selection_clear"
//-----------------------------------------------------------------------------
extern "C" {
static gint
selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event )
{
@ -230,11 +235,13 @@ selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event )
wxTheClipboard->m_waiting = FALSE;
return TRUE;
}
}
//-----------------------------------------------------------------------------
// selection handler for supplying data
//-----------------------------------------------------------------------------
extern "C" {
static void
selection_handler( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
@ -295,6 +302,7 @@ selection_handler( GtkWidget *WXUNUSED(widget),
free(d);
}
}
//-----------------------------------------------------------------------------
// wxClipboard

View File

@ -44,6 +44,7 @@ static int g_SelectionBeforePopup = -2; // -2 <=> the popup is hidden
// if it doesn't match an item then just get a single changed
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo )
{
@ -62,12 +63,16 @@ gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo )
event.SetEventObject( combo );
combo->GetEventHandler()->ProcessEvent( event );
}
}
extern "C" {
static void
gtk_dummy_callback(GtkEntry *WXUNUSED(entry), GtkCombo *WXUNUSED(combo))
{
}
}
extern "C" {
static void
gtk_popup_hide_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
{
@ -86,7 +91,9 @@ gtk_popup_hide_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
// reset the selection flag to an identifiable value (-2 = hidden)
g_SelectionBeforePopup = -2;
}
}
extern "C" {
static void
gtk_popup_show_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
{
@ -94,11 +101,13 @@ gtk_popup_show_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
// if there is no selection, combo->GetSelection() returns -1
g_SelectionBeforePopup = combo->GetSelection();
}
}
//-----------------------------------------------------------------------------
// "select-child" - click/cursor get select-child, changed, select-child
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_combo_select_child_callback( GtkList *WXUNUSED(list), GtkWidget *WXUNUSED(widget), wxComboBox *combo )
{
@ -146,6 +155,7 @@ gtk_combo_select_child_callback( GtkList *WXUNUSED(list), GtkWidget *WXUNUSED(wi
event2.SetEventObject( combo );
combo->GetEventHandler()->ProcessEvent( event2 );
}
}
//-----------------------------------------------------------------------------
// wxComboBox

View File

@ -231,7 +231,7 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* widget,
//static
wxVisualAttributes
wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(void),
wxControl::GetDefaultAttributesFromGTKWidget(wxGtkWidgetNew_t widget_new,
bool useBase,
int state)
{
@ -247,7 +247,7 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(void),
//static
wxVisualAttributes
wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(const gchar*),
wxControl::GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromStr_t widget_new,
bool useBase,
int state)
{
@ -264,7 +264,7 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(const gcha
//static
wxVisualAttributes
wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(GtkAdjustment*),
wxControl::GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromAdj_t widget_new,
bool useBase,
int state)
{

View File

@ -139,6 +139,7 @@ static wxDragResult ConvertFromGTK(long action)
// "drag_leave"
// ----------------------------------------------------------------------------
extern "C" {
static void target_drag_leave( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
guint WXUNUSED(time),
@ -160,11 +161,13 @@ static void target_drag_leave( GtkWidget *WXUNUSED(widget),
/* after this, invalidate the drop_target's GdkDragContext */
drop_target->SetDragContext( (GdkDragContext*) NULL );
}
}
// ----------------------------------------------------------------------------
// "drag_motion"
// ----------------------------------------------------------------------------
extern "C" {
static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
gint x,
@ -256,11 +259,13 @@ static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
return ret;
}
}
// ----------------------------------------------------------------------------
// "drag_drop"
// ----------------------------------------------------------------------------
extern "C" {
static gboolean target_drag_drop( GtkWidget *widget,
GdkDragContext *context,
gint x,
@ -355,11 +360,13 @@ static gboolean target_drag_drop( GtkWidget *widget,
return ret;
}
}
// ----------------------------------------------------------------------------
// "drag_data_received"
// ----------------------------------------------------------------------------
extern "C" {
static void target_drag_data_received( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
gint x,
@ -409,6 +416,7 @@ static void target_drag_data_received( GtkWidget *WXUNUSED(widget),
/* after this, invalidate the drop_target's drag data */
drop_target->SetDragData( (GtkSelectionData*) NULL );
}
}
//----------------------------------------------------------------------------
// wxDropTarget
@ -561,6 +569,7 @@ void wxDropTarget::RegisterWidget( GtkWidget *widget )
// "drag_data_get"
//----------------------------------------------------------------------------
extern "C" {
static void
source_drag_data_get (GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
@ -626,11 +635,13 @@ source_drag_data_get (GtkWidget *WXUNUSED(widget),
delete[] d;
}
}
//----------------------------------------------------------------------------
// "drag_data_delete"
//----------------------------------------------------------------------------
extern "C" {
static void source_drag_data_delete( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
wxDropSource *WXUNUSED(drop_source) )
@ -640,11 +651,13 @@ static void source_drag_data_delete( GtkWidget *WXUNUSED(widget),
// printf( "Drag source: drag_data_delete\n" );
}
}
//----------------------------------------------------------------------------
// "drag_begin"
//----------------------------------------------------------------------------
extern "C" {
static void source_drag_begin( GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
wxDropSource *WXUNUSED(drop_source) )
@ -654,11 +667,13 @@ static void source_drag_begin( GtkWidget *WXUNUSED(widget),
// printf( "Drag source: drag_begin.\n" );
}
}
//----------------------------------------------------------------------------
// "drag_end"
//----------------------------------------------------------------------------
extern "C" {
static void source_drag_end( GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
wxDropSource *drop_source )
@ -669,11 +684,13 @@ static void source_drag_end( GtkWidget *WXUNUSED(widget),
drop_source->m_waiting = FALSE;
}
}
//-----------------------------------------------------------------------------
// "configure_event" from m_iconWindow
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_dnd_window_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxDropSource *source )
{
@ -684,6 +701,7 @@ gtk_dnd_window_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigur
return 0;
}
}
//---------------------------------------------------------------------------
// wxDropSource

View File

@ -38,6 +38,7 @@ extern bool g_isIdle;
// "clicked" for OK-button
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_filedialog_ok_callback(GtkWidget *widget, wxFileDialog *dialog)
{
int style = dialog->GetStyle();
@ -91,11 +92,13 @@ static void gtk_filedialog_ok_callback(GtkWidget *widget, wxFileDialog *dialog)
event.SetEventObject(dialog);
dialog->GetEventHandler()->ProcessEvent(event);
}
}
//-----------------------------------------------------------------------------
// "clicked" for Cancel-button
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_filedialog_cancel_callback(GtkWidget *WXUNUSED(w),
wxFileDialog *dialog)
{
@ -103,7 +106,9 @@ static void gtk_filedialog_cancel_callback(GtkWidget *WXUNUSED(w),
event.SetEventObject(dialog);
dialog->GetEventHandler()->ProcessEvent(event);
}
}
extern "C" {
static void gtk_filedialog_response_callback(GtkWidget *w,
int response,
wxFileDialog *dialog)
@ -120,7 +125,9 @@ static void gtk_filedialog_response_callback(GtkWidget *w,
dialog->m_destroyed_by_delete = true;
}
}
#endif
}
#endif // __WXGTK24__
//-----------------------------------------------------------------------------
// wxFileDialog

View File

@ -40,6 +40,7 @@ extern bool g_isIdle;
// "delete_event"
//-----------------------------------------------------------------------------
extern "C" {
static
bool gtk_fontdialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxDialog *win )
{
@ -57,11 +58,13 @@ bool gtk_fontdialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUN
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "clicked" for OK-button
//-----------------------------------------------------------------------------
extern "C" {
static
void gtk_fontdialog_ok_callback( GtkWidget *WXUNUSED(widget), wxFontDialog *dialog )
{
@ -90,11 +93,13 @@ void gtk_fontdialog_ok_callback( GtkWidget *WXUNUSED(widget), wxFontDialog *dial
event.SetEventObject( dialog );
dialog->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// "clicked" for Cancel-button
//-----------------------------------------------------------------------------
extern "C" {
static
void gtk_fontdialog_cancel_callback( GtkWidget *WXUNUSED(w), wxFontDialog *dialog )
{
@ -105,6 +110,7 @@ void gtk_fontdialog_cancel_callback( GtkWidget *WXUNUSED(w), wxFontDialog *dialo
event.SetEventObject( dialog );
dialog->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// wxFontDialog

View File

@ -80,6 +80,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
// "child_attached" of menu bar
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
@ -87,11 +88,13 @@ static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *
win->m_menuBarDetached = FALSE;
win->GtkUpdateSize();
}
}
//-----------------------------------------------------------------------------
// "child_detached" of menu bar
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (g_isIdle)
@ -105,6 +108,7 @@ static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *
win->m_menuBarDetached = TRUE;
win->GtkUpdateSize();
}
}
#endif // wxUSE_MENUS_NATIVE
@ -113,6 +117,7 @@ static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *
// "child_attached" of tool bar
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
@ -120,11 +125,13 @@ static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidge
win->m_toolBarDetached = FALSE;
win->GtkUpdateSize();
}
}
//-----------------------------------------------------------------------------
// "child_detached" of tool bar
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_toolbar_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (g_isIdle)
@ -138,6 +145,7 @@ static void gtk_toolbar_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidge
win->m_toolBarDetached = TRUE;
win->GtkUpdateSize();
}
}
#endif // wxUSE_TOOLBAR

View File

@ -157,6 +157,7 @@ wxPalette wxGLContext::CreateDefaultPalette()
// "realize" from m_wxwindow
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_glwindow_realized_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
{
@ -171,11 +172,13 @@ gtk_glwindow_realized_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "map" from m_wxwindow
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_glwindow_map_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
{
@ -191,11 +194,13 @@ gtk_glwindow_map_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "expose_event" of m_wxwindow
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_glwindow_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_event, wxGLCanvas *win )
{
@ -209,12 +214,14 @@ gtk_glwindow_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_e
gdk_event->area.width,
gdk_event->area.height );
}
}
//-----------------------------------------------------------------------------
// "draw" of m_wxwindow
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
extern "C" {
static void
gtk_glwindow_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxGLCanvas *win )
{
@ -226,12 +233,14 @@ gtk_glwindow_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxG
win->GetUpdateRegion().Union( rect->x, rect->y,
rect->width, rect->height );
}
}
#endif
//-----------------------------------------------------------------------------
// "size_allocate" of m_wxwindow
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_glcanvas_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxGLCanvas *win )
{
@ -245,6 +254,7 @@ gtk_glcanvas_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, w
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
}
//---------------------------------------------------------------------------
// wxGlCanvas

View File

@ -21,6 +21,8 @@
#include "wx/unix/gsockunx.h"
extern "C" {
static
void _GSocket_GDK_Input(gpointer data,
gint source,
GdkInputCondition condition)
@ -32,6 +34,7 @@ void _GSocket_GDK_Input(gpointer data,
if (condition & GDK_INPUT_WRITE)
socket->Detected_Write();
}
}
bool GSocketGUIFunctionsTableConcrete::CanUseEventLoop()
{ return true; }

View File

@ -67,7 +67,8 @@ struct wxlistbox_idle_struct
gint m_tag;
};
extern "C" gint wxlistbox_idle_callback( gpointer gdata )
extern "C" {
static gint wxlistbox_idle_callback( gpointer gdata )
{
wxlistbox_idle_struct* data = (wxlistbox_idle_struct*) gdata;
gdk_threads_enter();
@ -88,11 +89,13 @@ extern "C" gint wxlistbox_idle_callback( gpointer gdata )
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "focus_in_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_listitem_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxWindow *win )
@ -120,11 +123,13 @@ static gint gtk_listitem_focus_in_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_listitem_focus_out_callback( GtkWidget *widget, GdkEventFocus *gdk_event, wxWindowGTK *win )
{
if (g_isIdle)
@ -150,6 +155,7 @@ static gint gtk_listitem_focus_out_callback( GtkWidget *widget, GdkEventFocus *g
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "button_release_event"
@ -161,6 +167,7 @@ static gint gtk_listitem_focus_out_callback( GtkWidget *widget, GdkEventFocus *g
this can lead to race conditions so that we emit the dclick event
after the GDK_BUTTON_RELEASE event after the GDK_2BUTTON_PRESS event */
extern "C" {
static gint
gtk_listbox_button_release_callback( GtkWidget * WXUNUSED(widget),
GdkEventButton * WXUNUSED(gdk_event),
@ -200,11 +207,13 @@ gtk_listbox_button_release_callback( GtkWidget * WXUNUSED(widget),
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "button_press_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_listbox_button_press_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
@ -254,11 +263,13 @@ gtk_listbox_button_press_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_listbox_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxListBox *listbox )
{
@ -349,23 +360,12 @@ gtk_listbox_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxLis
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "select" and "deselect"
//-----------------------------------------------------------------------------
static void gtk_listitem_select_cb( GtkWidget *widget, wxListBox *listbox, bool is_selection );
static void gtk_listitem_select_callback( GtkWidget *widget, wxListBox *listbox )
{
gtk_listitem_select_cb( widget, listbox, TRUE );
}
static void gtk_listitem_deselect_callback( GtkWidget *widget, wxListBox *listbox )
{
gtk_listitem_select_cb( widget, listbox, FALSE );
}
static void gtk_listitem_select_cb( GtkWidget *widget,
wxListBox *listbox,
bool is_selection )
@ -416,10 +416,25 @@ static void gtk_listitem_select_cb( GtkWidget *widget,
listbox->GetEventHandler()->ProcessEvent( event );
}
extern "C" {
static void gtk_listitem_select_callback( GtkWidget *widget, wxListBox *listbox )
{
gtk_listitem_select_cb( widget, listbox, TRUE );
}
}
extern "C" {
static void gtk_listitem_deselect_callback( GtkWidget *widget, wxListBox *listbox )
{
gtk_listitem_select_cb( widget, listbox, FALSE );
}
}
//-----------------------------------------------------------------------------
// wxListBox
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_listbox_realized_callback( GtkWidget *m_widget, wxListBox *win )
{
@ -432,6 +447,7 @@ gtk_listbox_realized_callback( GtkWidget *m_widget, wxListBox *win )
return false;
}
}
//-----------------------------------------------------------------------------
// wxListBox

View File

@ -52,6 +52,7 @@ extern wxList wxPendingDelete;
// "switch_page"
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget),
GtkNotebookPage *page,
@ -104,6 +105,7 @@ gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget),
event2.SetEventObject( child);
child->GetEventHandler()->ProcessEvent( event2 );
}
}
//-----------------------------------------------------------------------------
// wxMDIParentFrame
@ -435,6 +437,7 @@ void wxMDIChildFrame::SetTitle( const wxString &title )
// "size_allocate"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -450,6 +453,7 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
}
}
//-----------------------------------------------------------------------------
// InsertChild callback for wxMDIClientWindow

View File

@ -96,12 +96,14 @@ struct _GtkPixmapMenuItemClass
guint have_pixmap_count;
};
extern "C" {
GtkType gtk_pixmap_menu_item_get_type (void);
GtkWidget* gtk_pixmap_menu_item_new (void);
void gtk_pixmap_menu_item_set_pixmap (GtkPixmapMenuItem *menu_item,
GtkWidget *pixmap);
#endif // GTK 2.0
GtkWidget *pixmap);
}
#endif // !__WXGTK20__
//-----------------------------------------------------------------------------
// idle system
@ -149,6 +151,7 @@ static wxString wxReplaceUnderscore( const wxString& title )
// activate message from GTK
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_menu_open_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -163,6 +166,7 @@ static void gtk_menu_open_callback( GtkWidget *widget, wxMenu *menu )
wxWindow *win = menu->GetInvokingWindow();
if (win) win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// wxMenuBar
@ -581,6 +585,7 @@ void wxMenuBar::SetLabelTop( size_t pos, const wxString& label )
// "activate"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle)
@ -651,11 +656,13 @@ static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
menu->SendEvent(id, item->IsCheckable() ? item->IsChecked() : -1);
}
}
}
//-----------------------------------------------------------------------------
// "select"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_menu_hilight_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -677,11 +684,13 @@ static void gtk_menu_hilight_callback( GtkWidget *widget, wxMenu *menu )
wxWindow *win = menu->GetInvokingWindow();
if (win) win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// "deselect"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_menu_nolight_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -704,6 +713,7 @@ static void gtk_menu_nolight_callback( GtkWidget *widget, wxMenu *menu )
if (win)
win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// wxMenuItem
@ -1525,7 +1535,7 @@ static void changed_have_pixmap_status (GtkPixmapMenuItem *menu_item);
static GtkMenuItemClass *parent_class = NULL;
}
} // extern "C"
#define BORDER_SPACING 3
#define PMAP_WIDTH 20
@ -1556,6 +1566,8 @@ gtk_pixmap_menu_item_get_type (void)
return pixmap_menu_item_type;
}
extern "C" {
/**
* gtk_pixmap_menu_item_new
*
@ -1834,5 +1846,7 @@ changed_have_pixmap_status (GtkPixmapMenuItem *menu_item)
gtk_widget_queue_resize(GTK_WIDGET(menu_item));
}
#endif
} // extern "C"
#endif // !__WXGTK20__

View File

@ -69,6 +69,7 @@ static void DrawFrame( GtkWidget *widget, int x, int y, int w, int h )
// "expose_event" of m_mainWidget
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -109,12 +110,14 @@ static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *g
dc.DrawText( win->GetTitle(), 6, 3 );
}
}
}
//-----------------------------------------------------------------------------
// "draw" of m_mainWidget
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
extern "C" {
static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -154,12 +157,14 @@ static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNU
dc.DrawText( win->GetTitle(), 6, 3 );
}
}
}
#endif
//-----------------------------------------------------------------------------
// "button_press_event" of m_mainWidget
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -203,11 +208,13 @@ static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "button_release_event" of m_mainWidget
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -236,11 +243,13 @@ static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButto
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "motion_notify_event" of m_mainWidget
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -269,17 +278,20 @@ static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "clicked" of X system button
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxMiniFrame *mf )
{
if (g_isIdle) wxapp_install_idle_handler();
mf->Close();
}
}
//-----------------------------------------------------------------------------
// wxMiniFrame

View File

@ -90,6 +90,7 @@ WX_DEFINE_LIST(wxGtkNotebookPagesList);
// "switch_page"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
GtkNotebookPage *WXUNUSED(page),
gint page,
@ -132,11 +133,13 @@ static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
notebook->m_inSwitchPage = FALSE;
}
}
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
{
if (g_isIdle)
@ -163,11 +166,13 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
gtk_widget_size_allocate( win->m_wxwindow, alloc );
}
}
}
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_notebook_realized_callback( GtkWidget * WXUNUSED(widget), wxWindow *win )
{
@ -180,11 +185,13 @@ gtk_notebook_realized_callback( GtkWidget * WXUNUSED(widget), wxWindow *win )
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_notebook_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxNotebook *notebook )
{
if (g_isIdle)
@ -250,6 +257,7 @@ static gint gtk_notebook_key_press_callback( GtkWidget *widget, GdkEventKey *gdk
return FALSE;
}
}
//-----------------------------------------------------------------------------
// InsertChild callback for wxNotebook

View File

@ -38,6 +38,7 @@ extern bool g_isIdle;
// "button_press"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_popup_button_press (GtkWidget *widget, GdkEvent *gdk_event, wxPopupWindow* win )
{
GtkWidget *child = gtk_get_event_widget (gdk_event);
@ -66,11 +67,13 @@ static gint gtk_popup_button_press (GtkWidget *widget, GdkEvent *gdk_event, wxPo
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "focus" from m_window
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_dialog_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUSED(d), wxWindow *WXUNUSED(win) )
{
if (g_isIdle)
@ -80,11 +83,13 @@ static gint gtk_dialog_focus_callback( GtkWidget *widget, GtkDirectionType WXUNU
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus" );
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "delete_event"
//-----------------------------------------------------------------------------
extern "C" {
bool gtk_dialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxPopupWindow *win )
{
if (g_isIdle)
@ -95,11 +100,13 @@ bool gtk_dialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxPopupWindow *win )
{
if (g_isIdle)
@ -114,6 +121,7 @@ static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation
win->GtkUpdateSize();
}
}
}
//-----------------------------------------------------------------------------
// "realize" from m_widget
@ -122,6 +130,7 @@ static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation
/* we cannot MWM hints and icons before the widget has been realized,
so we do this directly after realization */
extern "C" {
static gint
gtk_dialog_realized_callback( GtkWidget * WXUNUSED(widget), wxPopupWindow *win )
{
@ -140,6 +149,7 @@ gtk_dialog_realized_callback( GtkWidget * WXUNUSED(widget), wxPopupWindow *win )
return FALSE;
}
}
//-----------------------------------------------------------------------------
// InsertChild for wxPopupWindow

View File

@ -45,6 +45,7 @@ extern wxWindowGTK *g_delayedFocus;
// "clicked"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioBox *rb )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -60,11 +61,13 @@ static void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioBo
event.SetEventObject( rb );
rb->GetEventHandler()->ProcessEvent(event);
}
}
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_radiobox_keypress_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxRadioBox *rb )
{
if (g_isIdle)
@ -111,7 +114,9 @@ static gint gtk_radiobox_keypress_callback( GtkWidget *widget, GdkEventKey *gdk_
return TRUE;
}
}
extern "C" {
static gint gtk_radiobutton_focus_in( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxRadioBox *win )
@ -135,7 +140,9 @@ static gint gtk_radiobutton_focus_in( GtkWidget *widget,
return FALSE;
}
}
extern "C" {
static gint gtk_radiobutton_focus_out( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxRadioBox *win )
@ -152,6 +159,7 @@ static gint gtk_radiobutton_focus_out( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// wxRadioBox

View File

@ -40,6 +40,7 @@ extern wxWindowGTK *g_delayedFocus;
// "clicked"
//-----------------------------------------------------------------------------
extern "C" {
static
void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioButton *rb )
{
@ -58,6 +59,7 @@ void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioButton *r
event.SetEventObject( rb );
rb->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// wxRadioButton

View File

@ -46,6 +46,7 @@ static const float sensitivity = 0.02;
// FIXME: is GtkScrollType really passed to us as 2nd argument?
extern "C" {
static void gtk_scrollbar_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrollBar *win )
@ -86,10 +87,12 @@ static void gtk_scrollbar_callback( GtkAdjustment *adjust,
win->ProcessEvent( cevent );
*/
}
}
//-----------------------------------------------------------------------------
// "button_press_event" from slider
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxScrollBar *win )
@ -128,11 +131,13 @@ static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "button_release_event" from slider
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
GdkEventButton *WXUNUSED(gdk_event),
@ -159,6 +164,7 @@ gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
return FALSE;
}
}
//-----------------------------------------------------------------------------
// wxScrollBar

View File

@ -72,6 +72,7 @@ extern bool g_isIdle;
// "value_changed" from m_vAdjust
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_scrolled_window_vscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrolledWindow *win )
@ -86,11 +87,13 @@ static void gtk_scrolled_window_vscroll_callback( GtkAdjustment *adjust,
win->GtkVScroll( adjust->value,
GET_SCROLL_TYPE(GTK_SCROLLED_WINDOW(win->m_widget)->vscrollbar) );
}
}
//-----------------------------------------------------------------------------
// "value_changed" from m_hAdjust
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_scrolled_window_hscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrolledWindow *win )
@ -104,11 +107,13 @@ static void gtk_scrolled_window_hscroll_callback( GtkAdjustment *adjust,
win->GtkHScroll( adjust->value,
GET_SCROLL_TYPE(GTK_SCROLLED_WINDOW(win->m_widget)->hscrollbar) );
}
}
//-----------------------------------------------------------------------------
// "button_press_event" from scrollbar
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win)
@ -125,11 +130,13 @@ static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "button_release_event" from scrollbar
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
GdkEventButton *WXUNUSED(gdk_event),
wxWindowGTK *win)
@ -168,6 +175,7 @@ static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// InsertChild for wxScrolledWindow

View File

@ -41,6 +41,7 @@ static const float sensitivity = 0.02;
// "value_changed"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_slider_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxSlider *win )
@ -72,6 +73,7 @@ static void gtk_slider_callback( GtkAdjustment *adjust,
cevent.SetInt( value );
win->GetEventHandler()->ProcessEvent( cevent );
}
}
//-----------------------------------------------------------------------------
// wxSlider

View File

@ -43,6 +43,7 @@ static const float sensitivity = 0.02;
// "value_changed"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_spinbutt_callback( GtkWidget *WXUNUSED(widget), wxSpinButton *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -98,6 +99,7 @@ static void gtk_spinbutt_callback( GtkWidget *WXUNUSED(widget), wxSpinButton *wi
win->GetEventHandler()->ProcessEvent( event2 );
}
}
}
//-----------------------------------------------------------------------------
// wxSpinButton

View File

@ -44,6 +44,7 @@ extern bool g_blockEventsOnDrag;
// "value_changed"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -63,11 +64,13 @@ static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// "changed"
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_spinctrl_text_changed_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win )
{
@ -83,6 +86,7 @@ gtk_spinctrl_text_changed_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// wxSpinCtrl

View File

@ -164,6 +164,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxControl)
// "clicked" (internal from gtk_toolbar)
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget),
wxToolBarTool *tool )
{
@ -198,11 +199,13 @@ static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget),
tool->SetPixmap(tool->GetBitmap());
}
}
}
//-----------------------------------------------------------------------------
// "enter_notify_event" / "leave_notify_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_toolbar_tool_callback( GtkWidget *WXUNUSED(widget),
GdkEventCrossing *gdk_event,
wxToolBarTool *tool )
@ -221,6 +224,7 @@ static gint gtk_toolbar_tool_callback( GtkWidget *WXUNUSED(widget),
return FALSE;
}
}
//-----------------------------------------------------------------------------
// InsertChild callback for wxToolBar

View File

@ -144,6 +144,7 @@ static void wxGtkTextInsert(GtkWidget *text,
// "insert_text" for GtkEntry
// ----------------------------------------------------------------------------
extern "C" {
static void
gtk_insert_text_callback(GtkEditable *editable,
const gchar *new_text,
@ -179,10 +180,12 @@ gtk_insert_text_callback(GtkEditable *editable,
win->GetEventHandler()->ProcessEvent( event );
}
}
}
#ifdef __WXGTK20__
// Implementation of wxTE_AUTO_URL for wxGTK2 by Mart Raudsepp,
extern "C" {
static void
au_apply_tag_callback(GtkTextBuffer *buffer,
GtkTextTag *tag,
@ -193,34 +196,43 @@ au_apply_tag_callback(GtkTextBuffer *buffer,
if(tag == gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(buffer), "wxUrl"))
g_signal_stop_emission_by_name(buffer, "apply_tag");
}
}
//-----------------------------------------------------------------------------
// GtkTextCharPredicates for gtk_text_iter_*_find_char
//-----------------------------------------------------------------------------
extern "C" {
static gboolean
pred_whitespace (gunichar ch, gpointer user_data)
{
return g_unichar_isspace(ch);
}
}
extern "C" {
static gboolean
pred_non_whitespace (gunichar ch, gpointer user_data)
{
return !g_unichar_isspace(ch);
}
}
extern "C" {
static gboolean
pred_nonpunct (gunichar ch, gpointer user_data)
{
return !g_unichar_ispunct(ch);
}
}
extern "C" {
static gboolean
pred_nonpunct_or_slash (gunichar ch, gpointer user_data)
{
return !g_unichar_ispunct(ch) || ch == '/';
}
}
//-----------------------------------------------------------------------------
// Check for links between s and e and correct tags as necessary
@ -228,6 +240,7 @@ pred_nonpunct_or_slash (gunichar ch, gpointer user_data)
// This function should be made match better while being efficient at one point.
// Most probably with a row of regular expressions.
extern "C" {
static void
au_check_word( GtkTextIter *s, GtkTextIter *e )
{
@ -287,7 +300,9 @@ au_check_word( GtkTextIter *s, GtkTextIter *e )
g_signal_handler_unblock(buffer, signal_id);
}
}
}
extern "C" {
static void
au_check_range(GtkTextIter *s,
GtkTextIter *range_end)
@ -314,11 +329,13 @@ au_check_range(GtkTextIter *s,
gtk_text_iter_forward_find_char(&range_start, pred_non_whitespace, NULL, range_end);
}
}
}
//-----------------------------------------------------------------------------
// "insert-text" for GtkTextBuffer
//-----------------------------------------------------------------------------
extern "C" {
static void
au_insert_text_callback(GtkTextBuffer *buffer,
GtkTextIter *end,
@ -344,11 +361,13 @@ au_insert_text_callback(GtkTextBuffer *buffer,
au_check_range(&words_start, &words_end);
}
}
//-----------------------------------------------------------------------------
// "delete-range" for GtkTextBuffer
//-----------------------------------------------------------------------------
extern "C" {
static void
au_delete_range_callback(GtkTextBuffer *buffer,
GtkTextIter *start,
@ -367,6 +386,7 @@ au_delete_range_callback(GtkTextBuffer *buffer,
au_check_range(start, end);
}
}
#endif
@ -375,6 +395,7 @@ au_delete_range_callback(GtkTextBuffer *buffer,
// "changed"
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_text_changed_callback( GtkWidget *widget, wxTextCtrl *win )
{
@ -395,17 +416,20 @@ gtk_text_changed_callback( GtkWidget *widget, wxTextCtrl *win )
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// "expose_event" from scrolled window and textview
//-----------------------------------------------------------------------------
#ifdef __WXGTK20__
extern "C" {
static gboolean
gtk_text_exposed_callback( GtkWidget *widget, GdkEventExpose *event, wxTextCtrl *win )
{
return TRUE;
}
}
#endif
//-----------------------------------------------------------------------------
@ -413,6 +437,7 @@ gtk_text_exposed_callback( GtkWidget *widget, GdkEventExpose *event, wxTextCtrl
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
extern "C" {
static void
gtk_scrollbar_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win )
{
@ -423,6 +448,7 @@ gtk_scrollbar_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win )
win->CalculateScrollbar();
}
}
#endif
// ----------------------------------------------------------------------------
@ -444,8 +470,8 @@ extern "C" {
static GtkDrawCallback gs_gtk_text_draw = NULL;
extern "C"
void wxgtk_text_draw( GtkWidget *widget, GdkRectangle *rect)
extern "C" {
static void wxgtk_text_draw( GtkWidget *widget, GdkRectangle *rect)
{
if ( !wxIsInsideYield )
{
@ -455,6 +481,7 @@ void wxgtk_text_draw( GtkWidget *widget, GdkRectangle *rect)
gs_gtk_text_draw(widget, rect);
}
}
}
#endif // __WXGTK20__

View File

@ -26,6 +26,7 @@ extern bool g_blockEventsOnDrag;
extern wxCursor g_globalCursor;
extern wxWindowGTK *g_delayedFocus;
extern "C" {
static void gtk_togglebutton_clicked_callback(GtkWidget *WXUNUSED(widget), wxToggleButton *cb)
{
if (g_isIdle)
@ -42,6 +43,7 @@ static void gtk_togglebutton_clicked_callback(GtkWidget *WXUNUSED(widget), wxTog
event.SetEventObject(cb);
cb->GetEventHandler()->ProcessEvent(event);
}
}
DEFINE_EVENT_TYPE(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED)

View File

@ -27,7 +27,8 @@
IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxEvtHandler)
extern "C" gint timeout_callback( gpointer data )
extern "C" {
static gint timeout_callback( gpointer data )
{
wxTimer *timer = (wxTimer*)data;
@ -54,6 +55,7 @@ extern "C" gint timeout_callback( gpointer data )
return TRUE;
}
}
void wxTimer::Init()
{

View File

@ -82,6 +82,7 @@ static int g_sendActivateEvent = -1;
// "focus_in_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_frame_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxTopLevelWindowGTK *win )
@ -115,11 +116,13 @@ static gint gtk_frame_focus_in_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_frame_focus_out_callback( GtkWidget *widget,
GdkEventFocus *WXUNUSED(gdk_event),
wxTopLevelWindowGTK *win )
@ -148,11 +151,13 @@ static gint gtk_frame_focus_out_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "focus" from m_window
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_frame_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUSED(d), wxWindow *WXUNUSED(win) )
{
if (g_isIdle)
@ -162,11 +167,13 @@ static gint gtk_frame_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUS
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus" );
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxTopLevelWindowGTK *win )
{
if (g_isIdle)
@ -192,11 +199,13 @@ static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
win->GtkUpdateSize();
}
}
}
//-----------------------------------------------------------------------------
// "delete_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxTopLevelWindowGTK *win )
{
if (g_isIdle)
@ -209,12 +218,14 @@ static gint gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WX
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "configure_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxTopLevelWindowGTK *win )
{
@ -237,6 +248,7 @@ gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WX
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "realize" from m_widget
@ -245,6 +257,7 @@ gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WX
// we cannot MWM hints and icons before the widget has been realized,
// so we do this directly after realization
extern "C" {
static void
gtk_frame_realized_callback( GtkWidget * WXUNUSED(widget),
wxTopLevelWindowGTK *win )
@ -273,11 +286,13 @@ gtk_frame_realized_callback( GtkWidget * WXUNUSED(widget),
win->SetIcons( iconsOld );
}
}
}
//-----------------------------------------------------------------------------
// "map_event" from m_widget
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_frame_map_callback( GtkWidget * WXUNUSED(widget),
GdkEvent * WXUNUSED(event),
@ -285,11 +300,13 @@ gtk_frame_map_callback( GtkWidget * WXUNUSED(widget),
{
win->SetIconizeState(FALSE);
}
}
//-----------------------------------------------------------------------------
// "unmap_event" from m_widget
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_frame_unmap_callback( GtkWidget * WXUNUSED(widget),
GdkEvent * WXUNUSED(event),
@ -297,11 +314,13 @@ gtk_frame_unmap_callback( GtkWidget * WXUNUSED(widget),
{
win->SetIconizeState(TRUE);
}
}
//-----------------------------------------------------------------------------
// "expose_event" of m_client
//-----------------------------------------------------------------------------
extern "C" {
static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxWindow *win )
{
GtkPizza *pizza = GTK_PIZZA(widget);
@ -316,6 +335,7 @@ static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_ev
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "draw" of m_client
@ -323,6 +343,7 @@ static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_ev
#ifndef __WXGTK20__
extern "C" {
static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxWindow *win )
{
GtkPizza *pizza = GTK_PIZZA(widget);
@ -335,6 +356,7 @@ static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxW
(char *)"base",
0, 0, -1, -1);
}
}
#endif // GTK+ 1.x

View File

@ -194,7 +194,8 @@ wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
// subprocess routines
// ----------------------------------------------------------------------------
extern "C"
extern "C" {
static
void GTK_EndProcessDetector(gpointer data, gint source,
GdkInputCondition WXUNUSED(condition) )
{
@ -225,6 +226,7 @@ void GTK_EndProcessDetector(gpointer data, gint source,
wxHandleProcessTermination(proc_data);
}
}
int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
{

View File

@ -379,7 +379,7 @@ static void draw_frame( GtkWidget *widget, wxWindowGTK *win )
dh += hscroll_req.height;
dh += scroll_class->scrollbar_spacing;
}
}
}
int dx = 0;
int dy = 0;
@ -429,7 +429,8 @@ static void draw_frame( GtkWidget *widget, wxWindowGTK *win )
// "expose_event" of m_widget
//-----------------------------------------------------------------------------
gint gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxWindowGTK *win )
extern "C" {
static gint gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxWindowGTK *win )
{
if (gdk_event->count > 0) return FALSE;
@ -442,6 +443,7 @@ gint gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_even
#endif
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "draw" of m_widget
@ -449,10 +451,12 @@ gint gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_even
#ifndef __WXGTK20__
extern "C" {
static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxWindowGTK *win )
{
draw_frame( widget, win );
}
}
#endif // GTK+ < 2.0
@ -460,8 +464,8 @@ static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNU
// "size_request" of m_widget
//-----------------------------------------------------------------------------
// make it extern because wxStatitText needs to disconnect this one
extern "C"
// make it extern because wxStaticText needs to disconnect this one
extern "C" {
void wxgtk_window_size_request_callback(GtkWidget *widget,
GtkRequisition *requisition,
wxWindow *win)
@ -476,9 +480,10 @@ void wxgtk_window_size_request_callback(GtkWidget *widget,
requisition->height = h;
requisition->width = w;
}
}
extern "C"
extern "C" {
static
void wxgtk_combo_size_request_callback(GtkWidget *widget,
GtkRequisition *requisition,
wxComboBox *win)
@ -504,11 +509,13 @@ void wxgtk_combo_size_request_callback(GtkWidget *widget,
requisition->width = w - entry_req.width;
requisition->height = entry_req.height+4; // TODO: why +4?
}
}
//-----------------------------------------------------------------------------
// "expose_event" of m_wxwindow
//-----------------------------------------------------------------------------
extern "C" {
static int gtk_window_expose_callback( GtkWidget *widget,
GdkEventExpose *gdk_event,
wxWindow *win )
@ -578,6 +585,7 @@ static int gtk_window_expose_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "event" of m_wxwindow
@ -589,6 +597,8 @@ static int gtk_window_expose_callback( GtkWidget *widget,
// There, we look for expose events ourselves whereas all other events are
// handled normally.
extern "C" {
static
gint gtk_window_event_event_callback( GtkWidget *widget,
GdkEventExpose *event,
wxWindow *win )
@ -601,6 +611,7 @@ gint gtk_window_event_event_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "draw" of m_wxwindow
@ -611,6 +622,7 @@ gint gtk_window_event_event_callback( GtkWidget *widget,
// This callback is a complete replacement of the gtk_pizza_draw() function,
// which is disabled.
extern "C" {
static void gtk_window_draw_callback( GtkWidget *widget,
GdkRectangle *rect,
wxWindow *win )
@ -686,6 +698,7 @@ static void gtk_window_draw_callback( GtkWidget *widget,
}
#endif
}
}
#endif
@ -1129,6 +1142,7 @@ struct wxGtkIMData
};
#endif
extern "C" {
static gint gtk_window_key_press_callback( GtkWidget *widget,
GdkEventKey *gdk_event,
wxWindow *win )
@ -1389,8 +1403,10 @@ static gint gtk_window_key_press_callback( GtkWidget *widget,
return FALSE;
}
}
#ifdef __WXGTK20__
extern "C" {
static void gtk_wxwindow_commit_cb (GtkIMContext *context,
const gchar *str,
wxWindow *window)
@ -1444,6 +1460,7 @@ static void gtk_wxwindow_commit_cb (GtkIMContext *context,
}
}
}
}
#endif
@ -1451,6 +1468,7 @@ static void gtk_wxwindow_commit_cb (GtkIMContext *context,
// "key_release_event" from any window
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_key_release_callback( GtkWidget *widget,
GdkEventKey *gdk_event,
wxWindowGTK *win )
@ -1479,6 +1497,7 @@ static gint gtk_window_key_release_callback( GtkWidget *widget,
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_release_event" );
return TRUE;
}
}
// ============================================================================
// the mouse events
@ -1622,6 +1641,7 @@ wxWindowGTK *FindWindowForMouseEvent(wxWindowGTK *win, wxCoord& x, wxCoord& y)
// "button_press_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_button_press_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win )
@ -1820,11 +1840,13 @@ static gint gtk_window_button_press_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "button_release_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_button_release_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win )
@ -1880,11 +1902,13 @@ static gint gtk_window_button_release_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "motion_notify_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_motion_notify_callback( GtkWidget *widget,
GdkEventMotion *gdk_event,
wxWindowGTK *win )
@ -1954,15 +1978,17 @@ static gint gtk_window_motion_notify_callback( GtkWidget *widget,
return FALSE;
}
}
#ifdef __WXGTK20__
//-----------------------------------------------------------------------------
// "mouse_wheel_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_wheel_callback (GtkWidget * widget,
GdkEventScroll * gdk_event,
wxWindowGTK * win)
GdkEventScroll * gdk_event,
wxWindowGTK * win)
{
DEBUG_MAIN_THREAD
@ -2010,10 +2036,12 @@ static gint gtk_window_wheel_callback (GtkWidget * widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "popup-menu"
//-----------------------------------------------------------------------------
extern "C" {
static gboolean wxgtk_window_popup_menu_callback(GtkWidget*, wxWindowGTK* win)
{
wxContextMenuEvent event(
@ -2023,6 +2051,7 @@ static gboolean wxgtk_window_popup_menu_callback(GtkWidget*, wxWindowGTK* win)
event.SetEventObject(win);
return win->GetEventHandler()->ProcessEvent(event);
}
}
#endif // __WXGTK20__
//-----------------------------------------------------------------------------
@ -2044,6 +2073,7 @@ static bool DoSendFocusEvents(wxWindow *win)
return win->GetEventHandler()->ProcessEvent(eventFocus);
}
extern "C" {
static gint gtk_window_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxWindow *win )
@ -2093,11 +2123,13 @@ static gint gtk_window_focus_in_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_focus_out_callback( GtkWidget *widget, GdkEventFocus *gdk_event, wxWindowGTK *win )
{
DEBUG_MAIN_THREAD
@ -2152,11 +2184,13 @@ static gint gtk_window_focus_out_callback( GtkWidget *widget, GdkEventFocus *gdk
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "enter_notify_event"
//-----------------------------------------------------------------------------
extern "C" {
static
gint gtk_window_enter_callback( GtkWidget *widget,
GdkEventCrossing *gdk_event,
@ -2195,11 +2229,13 @@ gint gtk_window_enter_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "leave_notify_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_event, wxWindowGTK *win )
{
DEBUG_MAIN_THREAD
@ -2245,11 +2281,13 @@ static gint gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "value_changed" from m_vAdjust
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_window_vscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxWindowGTK *win )
@ -2279,11 +2317,13 @@ static void gtk_window_vscroll_callback( GtkAdjustment *adjust,
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// "value_changed" from m_hAdjust
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_window_hscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxWindowGTK *win )
@ -2312,11 +2352,13 @@ static void gtk_window_hscroll_callback( GtkAdjustment *adjust,
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// "button_press_event" from scrollbar
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win)
@ -2336,11 +2378,13 @@ static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "button_release_event" from scrollbar
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
GdkEventButton *WXUNUSED(gdk_event),
wxWindowGTK *win)
@ -2381,6 +2425,7 @@ static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
return FALSE;
}
}
// ----------------------------------------------------------------------------
// this wxWindowBase function is implemented here (in platform-specific file)
@ -2393,7 +2438,6 @@ wxWindow *wxWindowBase::DoFindFocus()
return (wxWindow *)g_focusWindow;
}
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
@ -2401,6 +2445,7 @@ wxWindow *wxWindowBase::DoFindFocus()
/* We cannot set colours and fonts before the widget has
been realized, so we do this directly after realization. */
extern "C" {
static gint
gtk_window_realized_callback( GtkWidget *m_widget, wxWindow *win )
{
@ -2424,11 +2469,13 @@ gtk_window_realized_callback( GtkWidget *m_widget, wxWindow *win )
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
extern "C" {
static
void gtk_window_size_callback( GtkWidget *WXUNUSED(widget),
GtkAllocation *WXUNUSED(alloc),
@ -2455,6 +2502,7 @@ void gtk_window_size_callback( GtkWidget *WXUNUSED(widget),
win->GetEventHandler()->ProcessEvent( event );
}
}
}
#ifdef HAVE_XIM
@ -2465,6 +2513,7 @@ void gtk_window_size_callback( GtkWidget *WXUNUSED(widget),
/* Resize XIM window */
extern "C" {
static
void gtk_wxwindow_size_callback( GtkWidget* WXUNUSED_UNLESS_XIM(widget),
GtkAllocation* WXUNUSED_UNLESS_XIM(alloc),
@ -2488,6 +2537,7 @@ void gtk_wxwindow_size_callback( GtkWidget* WXUNUSED_UNLESS_XIM(widget),
}
#endif // HAVE_XIM
}
}
//-----------------------------------------------------------------------------
// "realize" from m_wxwindow
@ -2495,6 +2545,7 @@ void gtk_wxwindow_size_callback( GtkWidget* WXUNUSED_UNLESS_XIM(widget),
/* Initialize XIM support */
extern "C" {
static gint
gtk_wxwindow_realized_callback( GtkWidget * WXUNUSED_UNLESS_XIM(widget),
wxWindowGTK * WXUNUSED_UNLESS_XIM(win) )
@ -2581,6 +2632,7 @@ gtk_wxwindow_realized_callback( GtkWidget * WXUNUSED_UNLESS_XIM(widget),
return FALSE;
}
}
//-----------------------------------------------------------------------------
// InsertChild for wxWindowGTK.

View File

@ -45,6 +45,7 @@ extern bool g_blockEventsOnDrag;
// "clicked"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (g_isIdle)
@ -57,11 +58,13 @@ static void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxBitma
event.SetEventObject(button);
button->GetEventHandler()->ProcessEvent(event);
}
}
//-----------------------------------------------------------------------------
// "enter"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_bmpbutton_enter_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
@ -69,11 +72,13 @@ static void gtk_bmpbutton_enter_callback( GtkWidget *WXUNUSED(widget), wxBitmapB
button->HasFocus();
}
}
//-----------------------------------------------------------------------------
// "leave"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_bmpbutton_leave_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
@ -81,11 +86,13 @@ static void gtk_bmpbutton_leave_callback( GtkWidget *WXUNUSED(widget), wxBitmapB
button->NotFocus();
}
}
//-----------------------------------------------------------------------------
// "pressed"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_bmpbutton_press_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
@ -93,11 +100,13 @@ static void gtk_bmpbutton_press_callback( GtkWidget *WXUNUSED(widget), wxBitmapB
button->StartSelect();
}
}
//-----------------------------------------------------------------------------
// "released"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
@ -105,6 +114,7 @@ static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitma
button->EndSelect();
}
}
//-----------------------------------------------------------------------------
// wxBitmapButton

View File

@ -47,6 +47,7 @@ extern bool g_blockEventsOnDrag;
// "clicked"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *button )
{
if (g_isIdle)
@ -59,6 +60,7 @@ static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *
event.SetEventObject(button);
button->GetEventHandler()->ProcessEvent(event);
}
}
//-----------------------------------------------------------------------------
// "style_set" from m_widget

View File

@ -42,6 +42,7 @@ extern wxWindowGTK *g_delayedFocus;
// "clicked"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_checkbox_toggled_callback(GtkWidget *widget, wxCheckBox *cb)
{
if (g_isIdle) wxapp_install_idle_handler();
@ -109,6 +110,7 @@ static void gtk_checkbox_toggled_callback(GtkWidget *widget, wxCheckBox *cb)
event.SetEventObject(cb);
cb->GetEventHandler()->ProcessEvent(event);
}
}
//-----------------------------------------------------------------------------
// wxCheckBox

View File

@ -38,6 +38,7 @@ extern bool g_blockEventsOnDrag;
// "activate"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_choice_clicked_callback( GtkWidget *WXUNUSED(widget), wxChoice *choice )
{
if (g_isIdle)
@ -84,6 +85,7 @@ static void gtk_choice_clicked_callback( GtkWidget *WXUNUSED(widget), wxChoice *
choice->GetEventHandler()->ProcessEvent(event);
}
}
//-----------------------------------------------------------------------------
// wxChoice

View File

@ -78,6 +78,7 @@ struct _GtkSelectionData
// "selection_received" for targets
//-----------------------------------------------------------------------------
extern "C" {
static void
targets_selection_received( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
@ -133,11 +134,13 @@ targets_selection_received( GtkWidget *WXUNUSED(widget),
clipboard->m_waiting = FALSE;
}
}
//-----------------------------------------------------------------------------
// "selection_received" for the actual data
//-----------------------------------------------------------------------------
extern "C" {
static void
selection_received( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
@ -189,11 +192,13 @@ selection_received( GtkWidget *WXUNUSED(widget),
wxTheClipboard->m_formatSupported = TRUE;
clipboard->m_waiting = FALSE;
}
}
//-----------------------------------------------------------------------------
// "selection_clear"
//-----------------------------------------------------------------------------
extern "C" {
static gint
selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event )
{
@ -230,11 +235,13 @@ selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event )
wxTheClipboard->m_waiting = FALSE;
return TRUE;
}
}
//-----------------------------------------------------------------------------
// selection handler for supplying data
//-----------------------------------------------------------------------------
extern "C" {
static void
selection_handler( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
@ -295,6 +302,7 @@ selection_handler( GtkWidget *WXUNUSED(widget),
free(d);
}
}
//-----------------------------------------------------------------------------
// wxClipboard

View File

@ -44,6 +44,7 @@ static int g_SelectionBeforePopup = -2; // -2 <=> the popup is hidden
// if it doesn't match an item then just get a single changed
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo )
{
@ -62,12 +63,16 @@ gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo )
event.SetEventObject( combo );
combo->GetEventHandler()->ProcessEvent( event );
}
}
extern "C" {
static void
gtk_dummy_callback(GtkEntry *WXUNUSED(entry), GtkCombo *WXUNUSED(combo))
{
}
}
extern "C" {
static void
gtk_popup_hide_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
{
@ -86,7 +91,9 @@ gtk_popup_hide_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
// reset the selection flag to an identifiable value (-2 = hidden)
g_SelectionBeforePopup = -2;
}
}
extern "C" {
static void
gtk_popup_show_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
{
@ -94,11 +101,13 @@ gtk_popup_show_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
// if there is no selection, combo->GetSelection() returns -1
g_SelectionBeforePopup = combo->GetSelection();
}
}
//-----------------------------------------------------------------------------
// "select-child" - click/cursor get select-child, changed, select-child
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_combo_select_child_callback( GtkList *WXUNUSED(list), GtkWidget *WXUNUSED(widget), wxComboBox *combo )
{
@ -146,6 +155,7 @@ gtk_combo_select_child_callback( GtkList *WXUNUSED(list), GtkWidget *WXUNUSED(wi
event2.SetEventObject( combo );
combo->GetEventHandler()->ProcessEvent( event2 );
}
}
//-----------------------------------------------------------------------------
// wxComboBox

View File

@ -231,7 +231,7 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* widget,
//static
wxVisualAttributes
wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(void),
wxControl::GetDefaultAttributesFromGTKWidget(wxGtkWidgetNew_t widget_new,
bool useBase,
int state)
{
@ -247,7 +247,7 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(void),
//static
wxVisualAttributes
wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(const gchar*),
wxControl::GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromStr_t widget_new,
bool useBase,
int state)
{
@ -264,7 +264,7 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(const gcha
//static
wxVisualAttributes
wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(GtkAdjustment*),
wxControl::GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromAdj_t widget_new,
bool useBase,
int state)
{

View File

@ -139,6 +139,7 @@ static wxDragResult ConvertFromGTK(long action)
// "drag_leave"
// ----------------------------------------------------------------------------
extern "C" {
static void target_drag_leave( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
guint WXUNUSED(time),
@ -160,11 +161,13 @@ static void target_drag_leave( GtkWidget *WXUNUSED(widget),
/* after this, invalidate the drop_target's GdkDragContext */
drop_target->SetDragContext( (GdkDragContext*) NULL );
}
}
// ----------------------------------------------------------------------------
// "drag_motion"
// ----------------------------------------------------------------------------
extern "C" {
static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
gint x,
@ -256,11 +259,13 @@ static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
return ret;
}
}
// ----------------------------------------------------------------------------
// "drag_drop"
// ----------------------------------------------------------------------------
extern "C" {
static gboolean target_drag_drop( GtkWidget *widget,
GdkDragContext *context,
gint x,
@ -355,11 +360,13 @@ static gboolean target_drag_drop( GtkWidget *widget,
return ret;
}
}
// ----------------------------------------------------------------------------
// "drag_data_received"
// ----------------------------------------------------------------------------
extern "C" {
static void target_drag_data_received( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
gint x,
@ -409,6 +416,7 @@ static void target_drag_data_received( GtkWidget *WXUNUSED(widget),
/* after this, invalidate the drop_target's drag data */
drop_target->SetDragData( (GtkSelectionData*) NULL );
}
}
//----------------------------------------------------------------------------
// wxDropTarget
@ -561,6 +569,7 @@ void wxDropTarget::RegisterWidget( GtkWidget *widget )
// "drag_data_get"
//----------------------------------------------------------------------------
extern "C" {
static void
source_drag_data_get (GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
@ -626,11 +635,13 @@ source_drag_data_get (GtkWidget *WXUNUSED(widget),
delete[] d;
}
}
//----------------------------------------------------------------------------
// "drag_data_delete"
//----------------------------------------------------------------------------
extern "C" {
static void source_drag_data_delete( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
wxDropSource *WXUNUSED(drop_source) )
@ -640,11 +651,13 @@ static void source_drag_data_delete( GtkWidget *WXUNUSED(widget),
// printf( "Drag source: drag_data_delete\n" );
}
}
//----------------------------------------------------------------------------
// "drag_begin"
//----------------------------------------------------------------------------
extern "C" {
static void source_drag_begin( GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
wxDropSource *WXUNUSED(drop_source) )
@ -654,11 +667,13 @@ static void source_drag_begin( GtkWidget *WXUNUSED(widget),
// printf( "Drag source: drag_begin.\n" );
}
}
//----------------------------------------------------------------------------
// "drag_end"
//----------------------------------------------------------------------------
extern "C" {
static void source_drag_end( GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
wxDropSource *drop_source )
@ -669,11 +684,13 @@ static void source_drag_end( GtkWidget *WXUNUSED(widget),
drop_source->m_waiting = FALSE;
}
}
//-----------------------------------------------------------------------------
// "configure_event" from m_iconWindow
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_dnd_window_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxDropSource *source )
{
@ -684,6 +701,7 @@ gtk_dnd_window_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigur
return 0;
}
}
//---------------------------------------------------------------------------
// wxDropSource

View File

@ -38,6 +38,7 @@ extern bool g_isIdle;
// "clicked" for OK-button
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_filedialog_ok_callback(GtkWidget *widget, wxFileDialog *dialog)
{
int style = dialog->GetStyle();
@ -91,11 +92,13 @@ static void gtk_filedialog_ok_callback(GtkWidget *widget, wxFileDialog *dialog)
event.SetEventObject(dialog);
dialog->GetEventHandler()->ProcessEvent(event);
}
}
//-----------------------------------------------------------------------------
// "clicked" for Cancel-button
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_filedialog_cancel_callback(GtkWidget *WXUNUSED(w),
wxFileDialog *dialog)
{
@ -103,7 +106,9 @@ static void gtk_filedialog_cancel_callback(GtkWidget *WXUNUSED(w),
event.SetEventObject(dialog);
dialog->GetEventHandler()->ProcessEvent(event);
}
}
extern "C" {
static void gtk_filedialog_response_callback(GtkWidget *w,
int response,
wxFileDialog *dialog)
@ -120,7 +125,9 @@ static void gtk_filedialog_response_callback(GtkWidget *w,
dialog->m_destroyed_by_delete = true;
}
}
#endif
}
#endif // __WXGTK24__
//-----------------------------------------------------------------------------
// wxFileDialog

View File

@ -40,6 +40,7 @@ extern bool g_isIdle;
// "delete_event"
//-----------------------------------------------------------------------------
extern "C" {
static
bool gtk_fontdialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxDialog *win )
{
@ -57,11 +58,13 @@ bool gtk_fontdialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUN
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "clicked" for OK-button
//-----------------------------------------------------------------------------
extern "C" {
static
void gtk_fontdialog_ok_callback( GtkWidget *WXUNUSED(widget), wxFontDialog *dialog )
{
@ -90,11 +93,13 @@ void gtk_fontdialog_ok_callback( GtkWidget *WXUNUSED(widget), wxFontDialog *dial
event.SetEventObject( dialog );
dialog->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// "clicked" for Cancel-button
//-----------------------------------------------------------------------------
extern "C" {
static
void gtk_fontdialog_cancel_callback( GtkWidget *WXUNUSED(w), wxFontDialog *dialog )
{
@ -105,6 +110,7 @@ void gtk_fontdialog_cancel_callback( GtkWidget *WXUNUSED(w), wxFontDialog *dialo
event.SetEventObject( dialog );
dialog->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// wxFontDialog

View File

@ -80,6 +80,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
// "child_attached" of menu bar
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
@ -87,11 +88,13 @@ static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *
win->m_menuBarDetached = FALSE;
win->GtkUpdateSize();
}
}
//-----------------------------------------------------------------------------
// "child_detached" of menu bar
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (g_isIdle)
@ -105,6 +108,7 @@ static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *
win->m_menuBarDetached = TRUE;
win->GtkUpdateSize();
}
}
#endif // wxUSE_MENUS_NATIVE
@ -113,6 +117,7 @@ static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *
// "child_attached" of tool bar
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
@ -120,11 +125,13 @@ static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidge
win->m_toolBarDetached = FALSE;
win->GtkUpdateSize();
}
}
//-----------------------------------------------------------------------------
// "child_detached" of tool bar
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_toolbar_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (g_isIdle)
@ -138,6 +145,7 @@ static void gtk_toolbar_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidge
win->m_toolBarDetached = TRUE;
win->GtkUpdateSize();
}
}
#endif // wxUSE_TOOLBAR

View File

@ -157,6 +157,7 @@ wxPalette wxGLContext::CreateDefaultPalette()
// "realize" from m_wxwindow
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_glwindow_realized_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
{
@ -171,11 +172,13 @@ gtk_glwindow_realized_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "map" from m_wxwindow
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_glwindow_map_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
{
@ -191,11 +194,13 @@ gtk_glwindow_map_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "expose_event" of m_wxwindow
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_glwindow_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_event, wxGLCanvas *win )
{
@ -209,12 +214,14 @@ gtk_glwindow_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_e
gdk_event->area.width,
gdk_event->area.height );
}
}
//-----------------------------------------------------------------------------
// "draw" of m_wxwindow
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
extern "C" {
static void
gtk_glwindow_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxGLCanvas *win )
{
@ -226,12 +233,14 @@ gtk_glwindow_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxG
win->GetUpdateRegion().Union( rect->x, rect->y,
rect->width, rect->height );
}
}
#endif
//-----------------------------------------------------------------------------
// "size_allocate" of m_wxwindow
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_glcanvas_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxGLCanvas *win )
{
@ -245,6 +254,7 @@ gtk_glcanvas_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, w
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
}
//---------------------------------------------------------------------------
// wxGlCanvas

View File

@ -21,6 +21,8 @@
#include "wx/unix/gsockunx.h"
extern "C" {
static
void _GSocket_GDK_Input(gpointer data,
gint source,
GdkInputCondition condition)
@ -32,6 +34,7 @@ void _GSocket_GDK_Input(gpointer data,
if (condition & GDK_INPUT_WRITE)
socket->Detected_Write();
}
}
bool GSocketGUIFunctionsTableConcrete::CanUseEventLoop()
{ return true; }

View File

@ -67,7 +67,8 @@ struct wxlistbox_idle_struct
gint m_tag;
};
extern "C" gint wxlistbox_idle_callback( gpointer gdata )
extern "C" {
static gint wxlistbox_idle_callback( gpointer gdata )
{
wxlistbox_idle_struct* data = (wxlistbox_idle_struct*) gdata;
gdk_threads_enter();
@ -88,11 +89,13 @@ extern "C" gint wxlistbox_idle_callback( gpointer gdata )
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "focus_in_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_listitem_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxWindow *win )
@ -120,11 +123,13 @@ static gint gtk_listitem_focus_in_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_listitem_focus_out_callback( GtkWidget *widget, GdkEventFocus *gdk_event, wxWindowGTK *win )
{
if (g_isIdle)
@ -150,6 +155,7 @@ static gint gtk_listitem_focus_out_callback( GtkWidget *widget, GdkEventFocus *g
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "button_release_event"
@ -161,6 +167,7 @@ static gint gtk_listitem_focus_out_callback( GtkWidget *widget, GdkEventFocus *g
this can lead to race conditions so that we emit the dclick event
after the GDK_BUTTON_RELEASE event after the GDK_2BUTTON_PRESS event */
extern "C" {
static gint
gtk_listbox_button_release_callback( GtkWidget * WXUNUSED(widget),
GdkEventButton * WXUNUSED(gdk_event),
@ -200,11 +207,13 @@ gtk_listbox_button_release_callback( GtkWidget * WXUNUSED(widget),
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "button_press_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_listbox_button_press_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
@ -254,11 +263,13 @@ gtk_listbox_button_press_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_listbox_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxListBox *listbox )
{
@ -349,23 +360,12 @@ gtk_listbox_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxLis
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "select" and "deselect"
//-----------------------------------------------------------------------------
static void gtk_listitem_select_cb( GtkWidget *widget, wxListBox *listbox, bool is_selection );
static void gtk_listitem_select_callback( GtkWidget *widget, wxListBox *listbox )
{
gtk_listitem_select_cb( widget, listbox, TRUE );
}
static void gtk_listitem_deselect_callback( GtkWidget *widget, wxListBox *listbox )
{
gtk_listitem_select_cb( widget, listbox, FALSE );
}
static void gtk_listitem_select_cb( GtkWidget *widget,
wxListBox *listbox,
bool is_selection )
@ -416,10 +416,25 @@ static void gtk_listitem_select_cb( GtkWidget *widget,
listbox->GetEventHandler()->ProcessEvent( event );
}
extern "C" {
static void gtk_listitem_select_callback( GtkWidget *widget, wxListBox *listbox )
{
gtk_listitem_select_cb( widget, listbox, TRUE );
}
}
extern "C" {
static void gtk_listitem_deselect_callback( GtkWidget *widget, wxListBox *listbox )
{
gtk_listitem_select_cb( widget, listbox, FALSE );
}
}
//-----------------------------------------------------------------------------
// wxListBox
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_listbox_realized_callback( GtkWidget *m_widget, wxListBox *win )
{
@ -432,6 +447,7 @@ gtk_listbox_realized_callback( GtkWidget *m_widget, wxListBox *win )
return false;
}
}
//-----------------------------------------------------------------------------
// wxListBox

View File

@ -52,6 +52,7 @@ extern wxList wxPendingDelete;
// "switch_page"
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget),
GtkNotebookPage *page,
@ -104,6 +105,7 @@ gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget),
event2.SetEventObject( child);
child->GetEventHandler()->ProcessEvent( event2 );
}
}
//-----------------------------------------------------------------------------
// wxMDIParentFrame
@ -435,6 +437,7 @@ void wxMDIChildFrame::SetTitle( const wxString &title )
// "size_allocate"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -450,6 +453,7 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
}
}
//-----------------------------------------------------------------------------
// InsertChild callback for wxMDIClientWindow

View File

@ -96,12 +96,14 @@ struct _GtkPixmapMenuItemClass
guint have_pixmap_count;
};
extern "C" {
GtkType gtk_pixmap_menu_item_get_type (void);
GtkWidget* gtk_pixmap_menu_item_new (void);
void gtk_pixmap_menu_item_set_pixmap (GtkPixmapMenuItem *menu_item,
GtkWidget *pixmap);
#endif // GTK 2.0
GtkWidget *pixmap);
}
#endif // !__WXGTK20__
//-----------------------------------------------------------------------------
// idle system
@ -149,6 +151,7 @@ static wxString wxReplaceUnderscore( const wxString& title )
// activate message from GTK
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_menu_open_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -163,6 +166,7 @@ static void gtk_menu_open_callback( GtkWidget *widget, wxMenu *menu )
wxWindow *win = menu->GetInvokingWindow();
if (win) win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// wxMenuBar
@ -581,6 +585,7 @@ void wxMenuBar::SetLabelTop( size_t pos, const wxString& label )
// "activate"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle)
@ -651,11 +656,13 @@ static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
menu->SendEvent(id, item->IsCheckable() ? item->IsChecked() : -1);
}
}
}
//-----------------------------------------------------------------------------
// "select"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_menu_hilight_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -677,11 +684,13 @@ static void gtk_menu_hilight_callback( GtkWidget *widget, wxMenu *menu )
wxWindow *win = menu->GetInvokingWindow();
if (win) win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// "deselect"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_menu_nolight_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -704,6 +713,7 @@ static void gtk_menu_nolight_callback( GtkWidget *widget, wxMenu *menu )
if (win)
win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// wxMenuItem
@ -1525,7 +1535,7 @@ static void changed_have_pixmap_status (GtkPixmapMenuItem *menu_item);
static GtkMenuItemClass *parent_class = NULL;
}
} // extern "C"
#define BORDER_SPACING 3
#define PMAP_WIDTH 20
@ -1556,6 +1566,8 @@ gtk_pixmap_menu_item_get_type (void)
return pixmap_menu_item_type;
}
extern "C" {
/**
* gtk_pixmap_menu_item_new
*
@ -1834,5 +1846,7 @@ changed_have_pixmap_status (GtkPixmapMenuItem *menu_item)
gtk_widget_queue_resize(GTK_WIDGET(menu_item));
}
#endif
} // extern "C"
#endif // !__WXGTK20__

View File

@ -69,6 +69,7 @@ static void DrawFrame( GtkWidget *widget, int x, int y, int w, int h )
// "expose_event" of m_mainWidget
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -109,12 +110,14 @@ static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *g
dc.DrawText( win->GetTitle(), 6, 3 );
}
}
}
//-----------------------------------------------------------------------------
// "draw" of m_mainWidget
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
extern "C" {
static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -154,12 +157,14 @@ static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNU
dc.DrawText( win->GetTitle(), 6, 3 );
}
}
}
#endif
//-----------------------------------------------------------------------------
// "button_press_event" of m_mainWidget
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -203,11 +208,13 @@ static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "button_release_event" of m_mainWidget
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -236,11 +243,13 @@ static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButto
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "motion_notify_event" of m_mainWidget
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -269,17 +278,20 @@ static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "clicked" of X system button
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxMiniFrame *mf )
{
if (g_isIdle) wxapp_install_idle_handler();
mf->Close();
}
}
//-----------------------------------------------------------------------------
// wxMiniFrame

View File

@ -90,6 +90,7 @@ WX_DEFINE_LIST(wxGtkNotebookPagesList);
// "switch_page"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
GtkNotebookPage *WXUNUSED(page),
gint page,
@ -132,11 +133,13 @@ static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
notebook->m_inSwitchPage = FALSE;
}
}
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
{
if (g_isIdle)
@ -163,11 +166,13 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
gtk_widget_size_allocate( win->m_wxwindow, alloc );
}
}
}
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_notebook_realized_callback( GtkWidget * WXUNUSED(widget), wxWindow *win )
{
@ -180,11 +185,13 @@ gtk_notebook_realized_callback( GtkWidget * WXUNUSED(widget), wxWindow *win )
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_notebook_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxNotebook *notebook )
{
if (g_isIdle)
@ -250,6 +257,7 @@ static gint gtk_notebook_key_press_callback( GtkWidget *widget, GdkEventKey *gdk
return FALSE;
}
}
//-----------------------------------------------------------------------------
// InsertChild callback for wxNotebook

View File

@ -38,6 +38,7 @@ extern bool g_isIdle;
// "button_press"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_popup_button_press (GtkWidget *widget, GdkEvent *gdk_event, wxPopupWindow* win )
{
GtkWidget *child = gtk_get_event_widget (gdk_event);
@ -66,11 +67,13 @@ static gint gtk_popup_button_press (GtkWidget *widget, GdkEvent *gdk_event, wxPo
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "focus" from m_window
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_dialog_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUSED(d), wxWindow *WXUNUSED(win) )
{
if (g_isIdle)
@ -80,11 +83,13 @@ static gint gtk_dialog_focus_callback( GtkWidget *widget, GtkDirectionType WXUNU
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus" );
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "delete_event"
//-----------------------------------------------------------------------------
extern "C" {
bool gtk_dialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxPopupWindow *win )
{
if (g_isIdle)
@ -95,11 +100,13 @@ bool gtk_dialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxPopupWindow *win )
{
if (g_isIdle)
@ -114,6 +121,7 @@ static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation
win->GtkUpdateSize();
}
}
}
//-----------------------------------------------------------------------------
// "realize" from m_widget
@ -122,6 +130,7 @@ static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation
/* we cannot MWM hints and icons before the widget has been realized,
so we do this directly after realization */
extern "C" {
static gint
gtk_dialog_realized_callback( GtkWidget * WXUNUSED(widget), wxPopupWindow *win )
{
@ -140,6 +149,7 @@ gtk_dialog_realized_callback( GtkWidget * WXUNUSED(widget), wxPopupWindow *win )
return FALSE;
}
}
//-----------------------------------------------------------------------------
// InsertChild for wxPopupWindow

View File

@ -45,6 +45,7 @@ extern wxWindowGTK *g_delayedFocus;
// "clicked"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioBox *rb )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -60,11 +61,13 @@ static void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioBo
event.SetEventObject( rb );
rb->GetEventHandler()->ProcessEvent(event);
}
}
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_radiobox_keypress_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxRadioBox *rb )
{
if (g_isIdle)
@ -111,7 +114,9 @@ static gint gtk_radiobox_keypress_callback( GtkWidget *widget, GdkEventKey *gdk_
return TRUE;
}
}
extern "C" {
static gint gtk_radiobutton_focus_in( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxRadioBox *win )
@ -135,7 +140,9 @@ static gint gtk_radiobutton_focus_in( GtkWidget *widget,
return FALSE;
}
}
extern "C" {
static gint gtk_radiobutton_focus_out( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxRadioBox *win )
@ -152,6 +159,7 @@ static gint gtk_radiobutton_focus_out( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// wxRadioBox

View File

@ -40,6 +40,7 @@ extern wxWindowGTK *g_delayedFocus;
// "clicked"
//-----------------------------------------------------------------------------
extern "C" {
static
void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioButton *rb )
{
@ -58,6 +59,7 @@ void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioButton *r
event.SetEventObject( rb );
rb->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// wxRadioButton

View File

@ -46,6 +46,7 @@ static const float sensitivity = 0.02;
// FIXME: is GtkScrollType really passed to us as 2nd argument?
extern "C" {
static void gtk_scrollbar_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrollBar *win )
@ -86,10 +87,12 @@ static void gtk_scrollbar_callback( GtkAdjustment *adjust,
win->ProcessEvent( cevent );
*/
}
}
//-----------------------------------------------------------------------------
// "button_press_event" from slider
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxScrollBar *win )
@ -128,11 +131,13 @@ static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "button_release_event" from slider
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
GdkEventButton *WXUNUSED(gdk_event),
@ -159,6 +164,7 @@ gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
return FALSE;
}
}
//-----------------------------------------------------------------------------
// wxScrollBar

View File

@ -72,6 +72,7 @@ extern bool g_isIdle;
// "value_changed" from m_vAdjust
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_scrolled_window_vscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrolledWindow *win )
@ -86,11 +87,13 @@ static void gtk_scrolled_window_vscroll_callback( GtkAdjustment *adjust,
win->GtkVScroll( adjust->value,
GET_SCROLL_TYPE(GTK_SCROLLED_WINDOW(win->m_widget)->vscrollbar) );
}
}
//-----------------------------------------------------------------------------
// "value_changed" from m_hAdjust
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_scrolled_window_hscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrolledWindow *win )
@ -104,11 +107,13 @@ static void gtk_scrolled_window_hscroll_callback( GtkAdjustment *adjust,
win->GtkHScroll( adjust->value,
GET_SCROLL_TYPE(GTK_SCROLLED_WINDOW(win->m_widget)->hscrollbar) );
}
}
//-----------------------------------------------------------------------------
// "button_press_event" from scrollbar
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win)
@ -125,11 +130,13 @@ static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "button_release_event" from scrollbar
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
GdkEventButton *WXUNUSED(gdk_event),
wxWindowGTK *win)
@ -168,6 +175,7 @@ static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// InsertChild for wxScrolledWindow

View File

@ -41,6 +41,7 @@ static const float sensitivity = 0.02;
// "value_changed"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_slider_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxSlider *win )
@ -72,6 +73,7 @@ static void gtk_slider_callback( GtkAdjustment *adjust,
cevent.SetInt( value );
win->GetEventHandler()->ProcessEvent( cevent );
}
}
//-----------------------------------------------------------------------------
// wxSlider

View File

@ -43,6 +43,7 @@ static const float sensitivity = 0.02;
// "value_changed"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_spinbutt_callback( GtkWidget *WXUNUSED(widget), wxSpinButton *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -98,6 +99,7 @@ static void gtk_spinbutt_callback( GtkWidget *WXUNUSED(widget), wxSpinButton *wi
win->GetEventHandler()->ProcessEvent( event2 );
}
}
}
//-----------------------------------------------------------------------------
// wxSpinButton

View File

@ -44,6 +44,7 @@ extern bool g_blockEventsOnDrag;
// "value_changed"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win )
{
if (g_isIdle) wxapp_install_idle_handler();
@ -63,11 +64,13 @@ static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// "changed"
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_spinctrl_text_changed_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win )
{
@ -83,6 +86,7 @@ gtk_spinctrl_text_changed_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// wxSpinCtrl

View File

@ -164,6 +164,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxControl)
// "clicked" (internal from gtk_toolbar)
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget),
wxToolBarTool *tool )
{
@ -198,11 +199,13 @@ static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget),
tool->SetPixmap(tool->GetBitmap());
}
}
}
//-----------------------------------------------------------------------------
// "enter_notify_event" / "leave_notify_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_toolbar_tool_callback( GtkWidget *WXUNUSED(widget),
GdkEventCrossing *gdk_event,
wxToolBarTool *tool )
@ -221,6 +224,7 @@ static gint gtk_toolbar_tool_callback( GtkWidget *WXUNUSED(widget),
return FALSE;
}
}
//-----------------------------------------------------------------------------
// InsertChild callback for wxToolBar

View File

@ -144,6 +144,7 @@ static void wxGtkTextInsert(GtkWidget *text,
// "insert_text" for GtkEntry
// ----------------------------------------------------------------------------
extern "C" {
static void
gtk_insert_text_callback(GtkEditable *editable,
const gchar *new_text,
@ -179,10 +180,12 @@ gtk_insert_text_callback(GtkEditable *editable,
win->GetEventHandler()->ProcessEvent( event );
}
}
}
#ifdef __WXGTK20__
// Implementation of wxTE_AUTO_URL for wxGTK2 by Mart Raudsepp,
extern "C" {
static void
au_apply_tag_callback(GtkTextBuffer *buffer,
GtkTextTag *tag,
@ -193,34 +196,43 @@ au_apply_tag_callback(GtkTextBuffer *buffer,
if(tag == gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(buffer), "wxUrl"))
g_signal_stop_emission_by_name(buffer, "apply_tag");
}
}
//-----------------------------------------------------------------------------
// GtkTextCharPredicates for gtk_text_iter_*_find_char
//-----------------------------------------------------------------------------
extern "C" {
static gboolean
pred_whitespace (gunichar ch, gpointer user_data)
{
return g_unichar_isspace(ch);
}
}
extern "C" {
static gboolean
pred_non_whitespace (gunichar ch, gpointer user_data)
{
return !g_unichar_isspace(ch);
}
}
extern "C" {
static gboolean
pred_nonpunct (gunichar ch, gpointer user_data)
{
return !g_unichar_ispunct(ch);
}
}
extern "C" {
static gboolean
pred_nonpunct_or_slash (gunichar ch, gpointer user_data)
{
return !g_unichar_ispunct(ch) || ch == '/';
}
}
//-----------------------------------------------------------------------------
// Check for links between s and e and correct tags as necessary
@ -228,6 +240,7 @@ pred_nonpunct_or_slash (gunichar ch, gpointer user_data)
// This function should be made match better while being efficient at one point.
// Most probably with a row of regular expressions.
extern "C" {
static void
au_check_word( GtkTextIter *s, GtkTextIter *e )
{
@ -287,7 +300,9 @@ au_check_word( GtkTextIter *s, GtkTextIter *e )
g_signal_handler_unblock(buffer, signal_id);
}
}
}
extern "C" {
static void
au_check_range(GtkTextIter *s,
GtkTextIter *range_end)
@ -314,11 +329,13 @@ au_check_range(GtkTextIter *s,
gtk_text_iter_forward_find_char(&range_start, pred_non_whitespace, NULL, range_end);
}
}
}
//-----------------------------------------------------------------------------
// "insert-text" for GtkTextBuffer
//-----------------------------------------------------------------------------
extern "C" {
static void
au_insert_text_callback(GtkTextBuffer *buffer,
GtkTextIter *end,
@ -344,11 +361,13 @@ au_insert_text_callback(GtkTextBuffer *buffer,
au_check_range(&words_start, &words_end);
}
}
//-----------------------------------------------------------------------------
// "delete-range" for GtkTextBuffer
//-----------------------------------------------------------------------------
extern "C" {
static void
au_delete_range_callback(GtkTextBuffer *buffer,
GtkTextIter *start,
@ -367,6 +386,7 @@ au_delete_range_callback(GtkTextBuffer *buffer,
au_check_range(start, end);
}
}
#endif
@ -375,6 +395,7 @@ au_delete_range_callback(GtkTextBuffer *buffer,
// "changed"
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_text_changed_callback( GtkWidget *widget, wxTextCtrl *win )
{
@ -395,17 +416,20 @@ gtk_text_changed_callback( GtkWidget *widget, wxTextCtrl *win )
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// "expose_event" from scrolled window and textview
//-----------------------------------------------------------------------------
#ifdef __WXGTK20__
extern "C" {
static gboolean
gtk_text_exposed_callback( GtkWidget *widget, GdkEventExpose *event, wxTextCtrl *win )
{
return TRUE;
}
}
#endif
//-----------------------------------------------------------------------------
@ -413,6 +437,7 @@ gtk_text_exposed_callback( GtkWidget *widget, GdkEventExpose *event, wxTextCtrl
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
extern "C" {
static void
gtk_scrollbar_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win )
{
@ -423,6 +448,7 @@ gtk_scrollbar_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win )
win->CalculateScrollbar();
}
}
#endif
// ----------------------------------------------------------------------------
@ -444,8 +470,8 @@ extern "C" {
static GtkDrawCallback gs_gtk_text_draw = NULL;
extern "C"
void wxgtk_text_draw( GtkWidget *widget, GdkRectangle *rect)
extern "C" {
static void wxgtk_text_draw( GtkWidget *widget, GdkRectangle *rect)
{
if ( !wxIsInsideYield )
{
@ -455,6 +481,7 @@ void wxgtk_text_draw( GtkWidget *widget, GdkRectangle *rect)
gs_gtk_text_draw(widget, rect);
}
}
}
#endif // __WXGTK20__

View File

@ -26,6 +26,7 @@ extern bool g_blockEventsOnDrag;
extern wxCursor g_globalCursor;
extern wxWindowGTK *g_delayedFocus;
extern "C" {
static void gtk_togglebutton_clicked_callback(GtkWidget *WXUNUSED(widget), wxToggleButton *cb)
{
if (g_isIdle)
@ -42,6 +43,7 @@ static void gtk_togglebutton_clicked_callback(GtkWidget *WXUNUSED(widget), wxTog
event.SetEventObject(cb);
cb->GetEventHandler()->ProcessEvent(event);
}
}
DEFINE_EVENT_TYPE(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED)

View File

@ -27,7 +27,8 @@
IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxEvtHandler)
extern "C" gint timeout_callback( gpointer data )
extern "C" {
static gint timeout_callback( gpointer data )
{
wxTimer *timer = (wxTimer*)data;
@ -54,6 +55,7 @@ extern "C" gint timeout_callback( gpointer data )
return TRUE;
}
}
void wxTimer::Init()
{

View File

@ -82,6 +82,7 @@ static int g_sendActivateEvent = -1;
// "focus_in_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_frame_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxTopLevelWindowGTK *win )
@ -115,11 +116,13 @@ static gint gtk_frame_focus_in_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_frame_focus_out_callback( GtkWidget *widget,
GdkEventFocus *WXUNUSED(gdk_event),
wxTopLevelWindowGTK *win )
@ -148,11 +151,13 @@ static gint gtk_frame_focus_out_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "focus" from m_window
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_frame_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUSED(d), wxWindow *WXUNUSED(win) )
{
if (g_isIdle)
@ -162,11 +167,13 @@ static gint gtk_frame_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUS
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus" );
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxTopLevelWindowGTK *win )
{
if (g_isIdle)
@ -192,11 +199,13 @@ static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
win->GtkUpdateSize();
}
}
}
//-----------------------------------------------------------------------------
// "delete_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxTopLevelWindowGTK *win )
{
if (g_isIdle)
@ -209,12 +218,14 @@ static gint gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WX
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "configure_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint
gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxTopLevelWindowGTK *win )
{
@ -237,6 +248,7 @@ gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WX
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "realize" from m_widget
@ -245,6 +257,7 @@ gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WX
// we cannot MWM hints and icons before the widget has been realized,
// so we do this directly after realization
extern "C" {
static void
gtk_frame_realized_callback( GtkWidget * WXUNUSED(widget),
wxTopLevelWindowGTK *win )
@ -273,11 +286,13 @@ gtk_frame_realized_callback( GtkWidget * WXUNUSED(widget),
win->SetIcons( iconsOld );
}
}
}
//-----------------------------------------------------------------------------
// "map_event" from m_widget
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_frame_map_callback( GtkWidget * WXUNUSED(widget),
GdkEvent * WXUNUSED(event),
@ -285,11 +300,13 @@ gtk_frame_map_callback( GtkWidget * WXUNUSED(widget),
{
win->SetIconizeState(FALSE);
}
}
//-----------------------------------------------------------------------------
// "unmap_event" from m_widget
//-----------------------------------------------------------------------------
extern "C" {
static void
gtk_frame_unmap_callback( GtkWidget * WXUNUSED(widget),
GdkEvent * WXUNUSED(event),
@ -297,11 +314,13 @@ gtk_frame_unmap_callback( GtkWidget * WXUNUSED(widget),
{
win->SetIconizeState(TRUE);
}
}
//-----------------------------------------------------------------------------
// "expose_event" of m_client
//-----------------------------------------------------------------------------
extern "C" {
static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxWindow *win )
{
GtkPizza *pizza = GTK_PIZZA(widget);
@ -316,6 +335,7 @@ static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_ev
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "draw" of m_client
@ -323,6 +343,7 @@ static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_ev
#ifndef __WXGTK20__
extern "C" {
static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxWindow *win )
{
GtkPizza *pizza = GTK_PIZZA(widget);
@ -335,6 +356,7 @@ static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxW
(char *)"base",
0, 0, -1, -1);
}
}
#endif // GTK+ 1.x

View File

@ -194,7 +194,8 @@ wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
// subprocess routines
// ----------------------------------------------------------------------------
extern "C"
extern "C" {
static
void GTK_EndProcessDetector(gpointer data, gint source,
GdkInputCondition WXUNUSED(condition) )
{
@ -225,6 +226,7 @@ void GTK_EndProcessDetector(gpointer data, gint source,
wxHandleProcessTermination(proc_data);
}
}
int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
{

View File

@ -379,7 +379,7 @@ static void draw_frame( GtkWidget *widget, wxWindowGTK *win )
dh += hscroll_req.height;
dh += scroll_class->scrollbar_spacing;
}
}
}
int dx = 0;
int dy = 0;
@ -429,7 +429,8 @@ static void draw_frame( GtkWidget *widget, wxWindowGTK *win )
// "expose_event" of m_widget
//-----------------------------------------------------------------------------
gint gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxWindowGTK *win )
extern "C" {
static gint gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxWindowGTK *win )
{
if (gdk_event->count > 0) return FALSE;
@ -442,6 +443,7 @@ gint gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_even
#endif
return TRUE;
}
}
//-----------------------------------------------------------------------------
// "draw" of m_widget
@ -449,10 +451,12 @@ gint gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_even
#ifndef __WXGTK20__
extern "C" {
static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxWindowGTK *win )
{
draw_frame( widget, win );
}
}
#endif // GTK+ < 2.0
@ -460,8 +464,8 @@ static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNU
// "size_request" of m_widget
//-----------------------------------------------------------------------------
// make it extern because wxStatitText needs to disconnect this one
extern "C"
// make it extern because wxStaticText needs to disconnect this one
extern "C" {
void wxgtk_window_size_request_callback(GtkWidget *widget,
GtkRequisition *requisition,
wxWindow *win)
@ -476,9 +480,10 @@ void wxgtk_window_size_request_callback(GtkWidget *widget,
requisition->height = h;
requisition->width = w;
}
}
extern "C"
extern "C" {
static
void wxgtk_combo_size_request_callback(GtkWidget *widget,
GtkRequisition *requisition,
wxComboBox *win)
@ -504,11 +509,13 @@ void wxgtk_combo_size_request_callback(GtkWidget *widget,
requisition->width = w - entry_req.width;
requisition->height = entry_req.height+4; // TODO: why +4?
}
}
//-----------------------------------------------------------------------------
// "expose_event" of m_wxwindow
//-----------------------------------------------------------------------------
extern "C" {
static int gtk_window_expose_callback( GtkWidget *widget,
GdkEventExpose *gdk_event,
wxWindow *win )
@ -578,6 +585,7 @@ static int gtk_window_expose_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "event" of m_wxwindow
@ -589,6 +597,8 @@ static int gtk_window_expose_callback( GtkWidget *widget,
// There, we look for expose events ourselves whereas all other events are
// handled normally.
extern "C" {
static
gint gtk_window_event_event_callback( GtkWidget *widget,
GdkEventExpose *event,
wxWindow *win )
@ -601,6 +611,7 @@ gint gtk_window_event_event_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "draw" of m_wxwindow
@ -611,6 +622,7 @@ gint gtk_window_event_event_callback( GtkWidget *widget,
// This callback is a complete replacement of the gtk_pizza_draw() function,
// which is disabled.
extern "C" {
static void gtk_window_draw_callback( GtkWidget *widget,
GdkRectangle *rect,
wxWindow *win )
@ -686,6 +698,7 @@ static void gtk_window_draw_callback( GtkWidget *widget,
}
#endif
}
}
#endif
@ -1129,6 +1142,7 @@ struct wxGtkIMData
};
#endif
extern "C" {
static gint gtk_window_key_press_callback( GtkWidget *widget,
GdkEventKey *gdk_event,
wxWindow *win )
@ -1389,8 +1403,10 @@ static gint gtk_window_key_press_callback( GtkWidget *widget,
return FALSE;
}
}
#ifdef __WXGTK20__
extern "C" {
static void gtk_wxwindow_commit_cb (GtkIMContext *context,
const gchar *str,
wxWindow *window)
@ -1444,6 +1460,7 @@ static void gtk_wxwindow_commit_cb (GtkIMContext *context,
}
}
}
}
#endif
@ -1451,6 +1468,7 @@ static void gtk_wxwindow_commit_cb (GtkIMContext *context,
// "key_release_event" from any window
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_key_release_callback( GtkWidget *widget,
GdkEventKey *gdk_event,
wxWindowGTK *win )
@ -1479,6 +1497,7 @@ static gint gtk_window_key_release_callback( GtkWidget *widget,
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_release_event" );
return TRUE;
}
}
// ============================================================================
// the mouse events
@ -1622,6 +1641,7 @@ wxWindowGTK *FindWindowForMouseEvent(wxWindowGTK *win, wxCoord& x, wxCoord& y)
// "button_press_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_button_press_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win )
@ -1820,11 +1840,13 @@ static gint gtk_window_button_press_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "button_release_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_button_release_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win )
@ -1880,11 +1902,13 @@ static gint gtk_window_button_release_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "motion_notify_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_motion_notify_callback( GtkWidget *widget,
GdkEventMotion *gdk_event,
wxWindowGTK *win )
@ -1954,15 +1978,17 @@ static gint gtk_window_motion_notify_callback( GtkWidget *widget,
return FALSE;
}
}
#ifdef __WXGTK20__
//-----------------------------------------------------------------------------
// "mouse_wheel_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_wheel_callback (GtkWidget * widget,
GdkEventScroll * gdk_event,
wxWindowGTK * win)
GdkEventScroll * gdk_event,
wxWindowGTK * win)
{
DEBUG_MAIN_THREAD
@ -2010,10 +2036,12 @@ static gint gtk_window_wheel_callback (GtkWidget * widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "popup-menu"
//-----------------------------------------------------------------------------
extern "C" {
static gboolean wxgtk_window_popup_menu_callback(GtkWidget*, wxWindowGTK* win)
{
wxContextMenuEvent event(
@ -2023,6 +2051,7 @@ static gboolean wxgtk_window_popup_menu_callback(GtkWidget*, wxWindowGTK* win)
event.SetEventObject(win);
return win->GetEventHandler()->ProcessEvent(event);
}
}
#endif // __WXGTK20__
//-----------------------------------------------------------------------------
@ -2044,6 +2073,7 @@ static bool DoSendFocusEvents(wxWindow *win)
return win->GetEventHandler()->ProcessEvent(eventFocus);
}
extern "C" {
static gint gtk_window_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxWindow *win )
@ -2093,11 +2123,13 @@ static gint gtk_window_focus_in_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_focus_out_callback( GtkWidget *widget, GdkEventFocus *gdk_event, wxWindowGTK *win )
{
DEBUG_MAIN_THREAD
@ -2152,11 +2184,13 @@ static gint gtk_window_focus_out_callback( GtkWidget *widget, GdkEventFocus *gdk
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "enter_notify_event"
//-----------------------------------------------------------------------------
extern "C" {
static
gint gtk_window_enter_callback( GtkWidget *widget,
GdkEventCrossing *gdk_event,
@ -2195,11 +2229,13 @@ gint gtk_window_enter_callback( GtkWidget *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "leave_notify_event"
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_event, wxWindowGTK *win )
{
DEBUG_MAIN_THREAD
@ -2245,11 +2281,13 @@ static gint gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "value_changed" from m_vAdjust
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_window_vscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxWindowGTK *win )
@ -2279,11 +2317,13 @@ static void gtk_window_vscroll_callback( GtkAdjustment *adjust,
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// "value_changed" from m_hAdjust
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_window_hscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxWindowGTK *win )
@ -2312,11 +2352,13 @@ static void gtk_window_hscroll_callback( GtkAdjustment *adjust,
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
}
//-----------------------------------------------------------------------------
// "button_press_event" from scrollbar
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win)
@ -2336,11 +2378,13 @@ static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "button_release_event" from scrollbar
//-----------------------------------------------------------------------------
extern "C" {
static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
GdkEventButton *WXUNUSED(gdk_event),
wxWindowGTK *win)
@ -2381,6 +2425,7 @@ static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
return FALSE;
}
}
// ----------------------------------------------------------------------------
// this wxWindowBase function is implemented here (in platform-specific file)
@ -2393,7 +2438,6 @@ wxWindow *wxWindowBase::DoFindFocus()
return (wxWindow *)g_focusWindow;
}
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
@ -2401,6 +2445,7 @@ wxWindow *wxWindowBase::DoFindFocus()
/* We cannot set colours and fonts before the widget has
been realized, so we do this directly after realization. */
extern "C" {
static gint
gtk_window_realized_callback( GtkWidget *m_widget, wxWindow *win )
{
@ -2424,11 +2469,13 @@ gtk_window_realized_callback( GtkWidget *m_widget, wxWindow *win )
return FALSE;
}
}
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
extern "C" {
static
void gtk_window_size_callback( GtkWidget *WXUNUSED(widget),
GtkAllocation *WXUNUSED(alloc),
@ -2455,6 +2502,7 @@ void gtk_window_size_callback( GtkWidget *WXUNUSED(widget),
win->GetEventHandler()->ProcessEvent( event );
}
}
}
#ifdef HAVE_XIM
@ -2465,6 +2513,7 @@ void gtk_window_size_callback( GtkWidget *WXUNUSED(widget),
/* Resize XIM window */
extern "C" {
static
void gtk_wxwindow_size_callback( GtkWidget* WXUNUSED_UNLESS_XIM(widget),
GtkAllocation* WXUNUSED_UNLESS_XIM(alloc),
@ -2488,6 +2537,7 @@ void gtk_wxwindow_size_callback( GtkWidget* WXUNUSED_UNLESS_XIM(widget),
}
#endif // HAVE_XIM
}
}
//-----------------------------------------------------------------------------
// "realize" from m_wxwindow
@ -2495,6 +2545,7 @@ void gtk_wxwindow_size_callback( GtkWidget* WXUNUSED_UNLESS_XIM(widget),
/* Initialize XIM support */
extern "C" {
static gint
gtk_wxwindow_realized_callback( GtkWidget * WXUNUSED_UNLESS_XIM(widget),
wxWindowGTK * WXUNUSED_UNLESS_XIM(win) )
@ -2581,6 +2632,7 @@ gtk_wxwindow_realized_callback( GtkWidget * WXUNUSED_UNLESS_XIM(widget),
return FALSE;
}
}
//-----------------------------------------------------------------------------
// InsertChild for wxWindowGTK.

View File

@ -65,12 +65,15 @@ static bool IsMapped(Display *display, Window window)
// Suspends X11 errors. Used when we expect errors but they are not fatal
// for us.
extern "C" {
static int wxX11ErrorsSuspender_handler(Display*, XErrorEvent*) { return 0; }
}
class wxX11ErrorsSuspender
{
public:
wxX11ErrorsSuspender(Display *d) : m_display(d)
{
m_old = XSetErrorHandler(handler);
m_old = XSetErrorHandler(wxX11ErrorsSuspender_handler);
}
~wxX11ErrorsSuspender()
{
@ -81,7 +84,6 @@ public:
private:
Display *m_display;
int (*m_old)(Display*, XErrorEvent *);
static int handler(Display *, XErrorEvent *) { return 0; }
};

View File

@ -385,6 +385,7 @@ struct wxXmlParsingContext
wxString version;
};
extern "C" {
static void StartElementHnd(void *userData, const char *name, const char **atts)
{
wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData;
@ -402,7 +403,9 @@ static void StartElementHnd(void *userData, const char *name, const char **atts)
ctx->node = node;
ctx->lastAsText = NULL;
}
}
extern "C" {
static void EndElementHnd(void *userData, const char* WXUNUSED(name))
{
wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData;
@ -410,7 +413,9 @@ static void EndElementHnd(void *userData, const char* WXUNUSED(name))
ctx->node = ctx->node->GetParent();
ctx->lastAsText = NULL;
}
}
extern "C" {
static void TextHnd(void *userData, const char *s, int len)
{
wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData;
@ -443,7 +448,9 @@ static void TextHnd(void *userData, const char *s, int len)
delete[] buf;
}
}
extern "C" {
static void CommentHnd(void *userData, const char *data)
{
wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData;
@ -458,7 +465,9 @@ static void CommentHnd(void *userData, const char *data)
}
ctx->lastAsText = NULL;
}
}
extern "C" {
static void DefaultHnd(void *userData, const char *s, int len)
{
// XML header:
@ -476,7 +485,9 @@ static void DefaultHnd(void *userData, const char *s, int len)
ctx->version = buf.Mid(pos + 9).BeforeFirst(buf[(size_t)pos+8]);
}
}
}
extern "C" {
static int UnknownEncodingHnd(void * WXUNUSED(encodingHandlerData),
const XML_Char *name, XML_Encoding *info)
{
@ -508,6 +519,7 @@ static int UnknownEncodingHnd(void * WXUNUSED(encodingHandlerData),
return 1;
}
}
bool wxXmlDocument::Load(wxInputStream& stream, const wxString& encoding)
{