git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32974
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
70 files changed:
// 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:
class wxControl : public wxControlBase
{
public:
bool useBase = false,
int state = -1);
static wxVisualAttributes
bool useBase = false,
int state = -1);
static wxVisualAttributes
- GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(void),
+ GetDefaultAttributesFromGTKWidget(wxGtkWidgetNew_t,
bool useBase = false,
int state = -1);
static wxVisualAttributes
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
bool useBase = false,
int state = -1);
static wxVisualAttributes
- GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(GtkAdjustment*),
+ GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromAdj_t,
bool useBase = false,
int state = -1);
bool useBase = false,
int state = -1);
// 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:
class wxControl : public wxControlBase
{
public:
bool useBase = false,
int state = -1);
static wxVisualAttributes
bool useBase = false,
int state = -1);
static wxVisualAttributes
- GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(void),
+ GetDefaultAttributesFromGTKWidget(wxGtkWidgetNew_t,
bool useBase = false,
int state = -1);
static wxVisualAttributes
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
bool useBase = false,
int state = -1);
static wxVisualAttributes
- GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(GtkAdjustment*),
+ GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromAdj_t,
bool useBase = false,
int state = -1);
bool useBase = false,
int state = -1);
// "clicked"
//-----------------------------------------------------------------------------
// "clicked"
//-----------------------------------------------------------------------------
static void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (g_isIdle)
static void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (g_isIdle)
event.SetEventObject(button);
button->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject(button);
button->GetEventHandler()->ProcessEvent(event);
}
//-----------------------------------------------------------------------------
// "enter"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "enter"
//-----------------------------------------------------------------------------
static void gtk_bmpbutton_enter_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
static void gtk_bmpbutton_enter_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
//-----------------------------------------------------------------------------
// "leave"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "leave"
//-----------------------------------------------------------------------------
static void gtk_bmpbutton_leave_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
static void gtk_bmpbutton_leave_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
//-----------------------------------------------------------------------------
// "pressed"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "pressed"
//-----------------------------------------------------------------------------
static void gtk_bmpbutton_press_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
static void gtk_bmpbutton_press_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
//-----------------------------------------------------------------------------
// "released"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "released"
//-----------------------------------------------------------------------------
static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
//-----------------------------------------------------------------------------
// wxBitmapButton
//-----------------------------------------------------------------------------
// wxBitmapButton
// "clicked"
//-----------------------------------------------------------------------------
// "clicked"
//-----------------------------------------------------------------------------
static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *button )
{
if (g_isIdle)
static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *button )
{
if (g_isIdle)
event.SetEventObject(button);
button->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject(button);
button->GetEventHandler()->ProcessEvent(event);
}
//-----------------------------------------------------------------------------
// "style_set" from m_widget
//-----------------------------------------------------------------------------
// "style_set" from m_widget
// "clicked"
//-----------------------------------------------------------------------------
// "clicked"
//-----------------------------------------------------------------------------
static void gtk_checkbox_toggled_callback(GtkWidget *widget, wxCheckBox *cb)
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_checkbox_toggled_callback(GtkWidget *widget, wxCheckBox *cb)
{
if (g_isIdle) wxapp_install_idle_handler();
event.SetEventObject(cb);
cb->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject(cb);
cb->GetEventHandler()->ProcessEvent(event);
}
//-----------------------------------------------------------------------------
// wxCheckBox
//-----------------------------------------------------------------------------
// wxCheckBox
// "activate"
//-----------------------------------------------------------------------------
// "activate"
//-----------------------------------------------------------------------------
static void gtk_choice_clicked_callback( GtkWidget *WXUNUSED(widget), wxChoice *choice )
{
if (g_isIdle)
static void gtk_choice_clicked_callback( GtkWidget *WXUNUSED(widget), wxChoice *choice )
{
if (g_isIdle)
choice->GetEventHandler()->ProcessEvent(event);
}
choice->GetEventHandler()->ProcessEvent(event);
}
//-----------------------------------------------------------------------------
// wxChoice
//-----------------------------------------------------------------------------
// wxChoice
// "selection_received" for targets
//-----------------------------------------------------------------------------
// "selection_received" for targets
//-----------------------------------------------------------------------------
static void
targets_selection_received( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
static void
targets_selection_received( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
clipboard->m_waiting = FALSE;
}
clipboard->m_waiting = FALSE;
}
//-----------------------------------------------------------------------------
// "selection_received" for the actual data
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "selection_received" for the actual data
//-----------------------------------------------------------------------------
static void
selection_received( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
static void
selection_received( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
wxTheClipboard->m_formatSupported = TRUE;
clipboard->m_waiting = FALSE;
}
wxTheClipboard->m_formatSupported = TRUE;
clipboard->m_waiting = FALSE;
}
//-----------------------------------------------------------------------------
// "selection_clear"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "selection_clear"
//-----------------------------------------------------------------------------
static gint
selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event )
{
static gint
selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event )
{
wxTheClipboard->m_waiting = FALSE;
return TRUE;
}
wxTheClipboard->m_waiting = FALSE;
return TRUE;
}
//-----------------------------------------------------------------------------
// selection handler for supplying data
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// selection handler for supplying data
//-----------------------------------------------------------------------------
static void
selection_handler( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
static void
selection_handler( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
//-----------------------------------------------------------------------------
// wxClipboard
//-----------------------------------------------------------------------------
// wxClipboard
// if it doesn't match an item then just get a single changed
//-----------------------------------------------------------------------------
// if it doesn't match an item then just get a single changed
//-----------------------------------------------------------------------------
static void
gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo )
{
static void
gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo )
{
event.SetEventObject( combo );
combo->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( combo );
combo->GetEventHandler()->ProcessEvent( event );
}
static void
gtk_dummy_callback(GtkEntry *WXUNUSED(entry), GtkCombo *WXUNUSED(combo))
{
}
static void
gtk_dummy_callback(GtkEntry *WXUNUSED(entry), GtkCombo *WXUNUSED(combo))
{
}
static void
gtk_popup_hide_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
{
static void
gtk_popup_hide_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
{
// reset the selection flag to an identifiable value (-2 = hidden)
g_SelectionBeforePopup = -2;
}
// reset the selection flag to an identifiable value (-2 = hidden)
g_SelectionBeforePopup = -2;
}
static void
gtk_popup_show_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
{
static void
gtk_popup_show_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
{
// if there is no selection, combo->GetSelection() returns -1
g_SelectionBeforePopup = combo->GetSelection();
}
// if there is no selection, combo->GetSelection() returns -1
g_SelectionBeforePopup = combo->GetSelection();
}
//-----------------------------------------------------------------------------
// "select-child" - click/cursor get select-child, changed, select-child
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "select-child" - click/cursor get select-child, changed, select-child
//-----------------------------------------------------------------------------
static void
gtk_combo_select_child_callback( GtkList *WXUNUSED(list), GtkWidget *WXUNUSED(widget), wxComboBox *combo )
{
static void
gtk_combo_select_child_callback( GtkList *WXUNUSED(list), GtkWidget *WXUNUSED(widget), wxComboBox *combo )
{
event2.SetEventObject( combo );
combo->GetEventHandler()->ProcessEvent( event2 );
}
event2.SetEventObject( combo );
combo->GetEventHandler()->ProcessEvent( event2 );
}
//-----------------------------------------------------------------------------
// wxComboBox
//-----------------------------------------------------------------------------
// wxComboBox
//static
wxVisualAttributes
//static
wxVisualAttributes
-wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(void),
+wxControl::GetDefaultAttributesFromGTKWidget(wxGtkWidgetNew_t widget_new,
bool useBase,
int state)
{
bool useBase,
int state)
{
//static
wxVisualAttributes
//static
wxVisualAttributes
-wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(const gchar*),
+wxControl::GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromStr_t widget_new,
bool useBase,
int state)
{
bool useBase,
int state)
{
//static
wxVisualAttributes
//static
wxVisualAttributes
-wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(GtkAdjustment*),
+wxControl::GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromAdj_t widget_new,
bool useBase,
int state)
{
bool useBase,
int state)
{
// "drag_leave"
// ----------------------------------------------------------------------------
// "drag_leave"
// ----------------------------------------------------------------------------
static void target_drag_leave( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
guint WXUNUSED(time),
static void target_drag_leave( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
guint WXUNUSED(time),
/* after this, invalidate the drop_target's GdkDragContext */
drop_target->SetDragContext( (GdkDragContext*) NULL );
}
/* after this, invalidate the drop_target's GdkDragContext */
drop_target->SetDragContext( (GdkDragContext*) NULL );
}
// ----------------------------------------------------------------------------
// "drag_motion"
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// "drag_motion"
// ----------------------------------------------------------------------------
static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
gint x,
static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
gint x,
// ----------------------------------------------------------------------------
// "drag_drop"
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// "drag_drop"
// ----------------------------------------------------------------------------
static gboolean target_drag_drop( GtkWidget *widget,
GdkDragContext *context,
gint x,
static gboolean target_drag_drop( GtkWidget *widget,
GdkDragContext *context,
gint x,
// ----------------------------------------------------------------------------
// "drag_data_received"
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// "drag_data_received"
// ----------------------------------------------------------------------------
static void target_drag_data_received( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
gint x,
static void target_drag_data_received( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
gint x,
/* after this, invalidate the drop_target's drag data */
drop_target->SetDragData( (GtkSelectionData*) NULL );
}
/* after this, invalidate the drop_target's drag data */
drop_target->SetDragData( (GtkSelectionData*) NULL );
}
//----------------------------------------------------------------------------
// wxDropTarget
//----------------------------------------------------------------------------
// wxDropTarget
// "drag_data_get"
//----------------------------------------------------------------------------
// "drag_data_get"
//----------------------------------------------------------------------------
static void
source_drag_data_get (GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
static void
source_drag_data_get (GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
//----------------------------------------------------------------------------
// "drag_data_delete"
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// "drag_data_delete"
//----------------------------------------------------------------------------
static void source_drag_data_delete( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
wxDropSource *WXUNUSED(drop_source) )
static void source_drag_data_delete( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
wxDropSource *WXUNUSED(drop_source) )
// printf( "Drag source: drag_data_delete\n" );
}
// printf( "Drag source: drag_data_delete\n" );
}
//----------------------------------------------------------------------------
// "drag_begin"
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// "drag_begin"
//----------------------------------------------------------------------------
static void source_drag_begin( GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
wxDropSource *WXUNUSED(drop_source) )
static void source_drag_begin( GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
wxDropSource *WXUNUSED(drop_source) )
// printf( "Drag source: drag_begin.\n" );
}
// printf( "Drag source: drag_begin.\n" );
}
//----------------------------------------------------------------------------
// "drag_end"
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// "drag_end"
//----------------------------------------------------------------------------
static void source_drag_end( GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
wxDropSource *drop_source )
static void source_drag_end( GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
wxDropSource *drop_source )
drop_source->m_waiting = FALSE;
}
drop_source->m_waiting = FALSE;
}
//-----------------------------------------------------------------------------
// "configure_event" from m_iconWindow
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "configure_event" from m_iconWindow
//-----------------------------------------------------------------------------
static gint
gtk_dnd_window_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxDropSource *source )
{
static gint
gtk_dnd_window_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxDropSource *source )
{
//---------------------------------------------------------------------------
// wxDropSource
//---------------------------------------------------------------------------
// wxDropSource
// "clicked" for OK-button
//-----------------------------------------------------------------------------
// "clicked" for OK-button
//-----------------------------------------------------------------------------
static void gtk_filedialog_ok_callback(GtkWidget *widget, wxFileDialog *dialog)
{
int style = dialog->GetStyle();
static void gtk_filedialog_ok_callback(GtkWidget *widget, wxFileDialog *dialog)
{
int style = dialog->GetStyle();
event.SetEventObject(dialog);
dialog->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject(dialog);
dialog->GetEventHandler()->ProcessEvent(event);
}
//-----------------------------------------------------------------------------
// "clicked" for Cancel-button
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "clicked" for Cancel-button
//-----------------------------------------------------------------------------
static void gtk_filedialog_cancel_callback(GtkWidget *WXUNUSED(w),
wxFileDialog *dialog)
{
static void gtk_filedialog_cancel_callback(GtkWidget *WXUNUSED(w),
wxFileDialog *dialog)
{
event.SetEventObject(dialog);
dialog->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject(dialog);
dialog->GetEventHandler()->ProcessEvent(event);
}
static void gtk_filedialog_response_callback(GtkWidget *w,
int response,
wxFileDialog *dialog)
static void gtk_filedialog_response_callback(GtkWidget *w,
int response,
wxFileDialog *dialog)
dialog->m_destroyed_by_delete = true;
}
}
dialog->m_destroyed_by_delete = true;
}
}
+}
+
+#endif // __WXGTK24__
//-----------------------------------------------------------------------------
// wxFileDialog
//-----------------------------------------------------------------------------
// wxFileDialog
// "delete_event"
//-----------------------------------------------------------------------------
// "delete_event"
//-----------------------------------------------------------------------------
static
bool gtk_fontdialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxDialog *win )
{
static
bool gtk_fontdialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxDialog *win )
{
//-----------------------------------------------------------------------------
// "clicked" for OK-button
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "clicked" for OK-button
//-----------------------------------------------------------------------------
static
void gtk_fontdialog_ok_callback( GtkWidget *WXUNUSED(widget), wxFontDialog *dialog )
{
static
void gtk_fontdialog_ok_callback( GtkWidget *WXUNUSED(widget), wxFontDialog *dialog )
{
event.SetEventObject( dialog );
dialog->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( dialog );
dialog->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// "clicked" for Cancel-button
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "clicked" for Cancel-button
//-----------------------------------------------------------------------------
static
void gtk_fontdialog_cancel_callback( GtkWidget *WXUNUSED(w), wxFontDialog *dialog )
{
static
void gtk_fontdialog_cancel_callback( GtkWidget *WXUNUSED(w), wxFontDialog *dialog )
{
event.SetEventObject( dialog );
dialog->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( dialog );
dialog->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// wxFontDialog
//-----------------------------------------------------------------------------
// wxFontDialog
// "child_attached" of menu bar
//-----------------------------------------------------------------------------
// "child_attached" of menu bar
//-----------------------------------------------------------------------------
static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
win->m_menuBarDetached = FALSE;
win->GtkUpdateSize();
}
win->m_menuBarDetached = FALSE;
win->GtkUpdateSize();
}
//-----------------------------------------------------------------------------
// "child_detached" of menu bar
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "child_detached" of menu bar
//-----------------------------------------------------------------------------
static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (g_isIdle)
static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (g_isIdle)
win->m_menuBarDetached = TRUE;
win->GtkUpdateSize();
}
win->m_menuBarDetached = TRUE;
win->GtkUpdateSize();
}
#endif // wxUSE_MENUS_NATIVE
#endif // wxUSE_MENUS_NATIVE
// "child_attached" of tool bar
//-----------------------------------------------------------------------------
// "child_attached" of tool bar
//-----------------------------------------------------------------------------
static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
win->m_toolBarDetached = FALSE;
win->GtkUpdateSize();
}
win->m_toolBarDetached = FALSE;
win->GtkUpdateSize();
}
//-----------------------------------------------------------------------------
// "child_detached" of tool bar
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "child_detached" of tool bar
//-----------------------------------------------------------------------------
static void gtk_toolbar_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (g_isIdle)
static void gtk_toolbar_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (g_isIdle)
win->m_toolBarDetached = TRUE;
win->GtkUpdateSize();
}
win->m_toolBarDetached = TRUE;
win->GtkUpdateSize();
}
// "realize" from m_wxwindow
//-----------------------------------------------------------------------------
// "realize" from m_wxwindow
//-----------------------------------------------------------------------------
static gint
gtk_glwindow_realized_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
{
static gint
gtk_glwindow_realized_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
{
//-----------------------------------------------------------------------------
// "map" from m_wxwindow
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "map" from m_wxwindow
//-----------------------------------------------------------------------------
static gint
gtk_glwindow_map_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
{
static gint
gtk_glwindow_map_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
{
//-----------------------------------------------------------------------------
// "expose_event" of m_wxwindow
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "expose_event" of m_wxwindow
//-----------------------------------------------------------------------------
static void
gtk_glwindow_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_event, wxGLCanvas *win )
{
static void
gtk_glwindow_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_event, wxGLCanvas *win )
{
gdk_event->area.width,
gdk_event->area.height );
}
gdk_event->area.width,
gdk_event->area.height );
}
//-----------------------------------------------------------------------------
// "draw" of m_wxwindow
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
//-----------------------------------------------------------------------------
// "draw" of m_wxwindow
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
static void
gtk_glwindow_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxGLCanvas *win )
{
static void
gtk_glwindow_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxGLCanvas *win )
{
win->GetUpdateRegion().Union( rect->x, rect->y,
rect->width, rect->height );
}
win->GetUpdateRegion().Union( rect->x, rect->y,
rect->width, rect->height );
}
#endif
//-----------------------------------------------------------------------------
// "size_allocate" of m_wxwindow
//-----------------------------------------------------------------------------
#endif
//-----------------------------------------------------------------------------
// "size_allocate" of m_wxwindow
//-----------------------------------------------------------------------------
static void
gtk_glcanvas_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxGLCanvas *win )
{
static void
gtk_glcanvas_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxGLCanvas *win )
{
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
//---------------------------------------------------------------------------
// wxGlCanvas
//---------------------------------------------------------------------------
// wxGlCanvas
#include "wx/unix/gsockunx.h"
#include "wx/unix/gsockunx.h"
void _GSocket_GDK_Input(gpointer data,
gint source,
GdkInputCondition condition)
void _GSocket_GDK_Input(gpointer data,
gint source,
GdkInputCondition condition)
if (condition & GDK_INPUT_WRITE)
socket->Detected_Write();
}
if (condition & GDK_INPUT_WRITE)
socket->Detected_Write();
}
bool GSocketGUIFunctionsTableConcrete::CanUseEventLoop()
{ return true; }
bool GSocketGUIFunctionsTableConcrete::CanUseEventLoop()
{ return true; }
-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();
{
wxlistbox_idle_struct* data = (wxlistbox_idle_struct*) gdata;
gdk_threads_enter();
//-----------------------------------------------------------------------------
// "focus_in_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "focus_in_event"
//-----------------------------------------------------------------------------
static gint gtk_listitem_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxWindow *win )
static gint gtk_listitem_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxWindow *win )
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
static gint gtk_listitem_focus_out_callback( GtkWidget *widget, GdkEventFocus *gdk_event, wxWindowGTK *win )
{
if (g_isIdle)
static gint gtk_listitem_focus_out_callback( GtkWidget *widget, GdkEventFocus *gdk_event, wxWindowGTK *win )
{
if (g_isIdle)
//-----------------------------------------------------------------------------
// "button_release_event"
//-----------------------------------------------------------------------------
// "button_release_event"
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 */
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 */
static gint
gtk_listbox_button_release_callback( GtkWidget * WXUNUSED(widget),
GdkEventButton * WXUNUSED(gdk_event),
static gint
gtk_listbox_button_release_callback( GtkWidget * WXUNUSED(widget),
GdkEventButton * WXUNUSED(gdk_event),
//-----------------------------------------------------------------------------
// "button_press_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_press_event"
//-----------------------------------------------------------------------------
static gint
gtk_listbox_button_press_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
static gint
gtk_listbox_button_press_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
static gint
gtk_listbox_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxListBox *listbox )
{
static gint
gtk_listbox_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxListBox *listbox )
{
//-----------------------------------------------------------------------------
// "select" and "deselect"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "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 )
static void gtk_listitem_select_cb( GtkWidget *widget,
wxListBox *listbox,
bool is_selection )
listbox->GetEventHandler()->ProcessEvent( event );
}
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
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// wxListBox
//-----------------------------------------------------------------------------
static gint
gtk_listbox_realized_callback( GtkWidget *m_widget, wxListBox *win )
{
static gint
gtk_listbox_realized_callback( GtkWidget *m_widget, wxListBox *win )
{
//-----------------------------------------------------------------------------
// wxListBox
//-----------------------------------------------------------------------------
// wxListBox
// "switch_page"
//-----------------------------------------------------------------------------
// "switch_page"
//-----------------------------------------------------------------------------
static void
gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget),
GtkNotebookPage *page,
static void
gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget),
GtkNotebookPage *page,
event2.SetEventObject( child);
child->GetEventHandler()->ProcessEvent( event2 );
}
event2.SetEventObject( child);
child->GetEventHandler()->ProcessEvent( event2 );
}
//-----------------------------------------------------------------------------
// wxMDIParentFrame
//-----------------------------------------------------------------------------
// wxMDIParentFrame
// "size_allocate"
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
{
if (g_isIdle) wxapp_install_idle_handler();
win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
}
win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
}
//-----------------------------------------------------------------------------
// InsertChild callback for wxMDIClientWindow
//-----------------------------------------------------------------------------
// InsertChild callback for wxMDIClientWindow
guint have_pixmap_count;
};
guint have_pixmap_count;
};
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,
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
//-----------------------------------------------------------------------------
// idle system
// activate message from GTK
//-----------------------------------------------------------------------------
// activate message from GTK
//-----------------------------------------------------------------------------
static void gtk_menu_open_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_menu_open_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
wxWindow *win = menu->GetInvokingWindow();
if (win) win->GetEventHandler()->ProcessEvent( event );
}
wxWindow *win = menu->GetInvokingWindow();
if (win) win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// wxMenuBar
//-----------------------------------------------------------------------------
// wxMenuBar
// "activate"
//-----------------------------------------------------------------------------
// "activate"
//-----------------------------------------------------------------------------
static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle)
static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle)
menu->SendEvent(id, item->IsCheckable() ? item->IsChecked() : -1);
}
}
menu->SendEvent(id, item->IsCheckable() ? item->IsChecked() : -1);
}
}
//-----------------------------------------------------------------------------
// "select"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "select"
//-----------------------------------------------------------------------------
static void gtk_menu_hilight_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_menu_hilight_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
wxWindow *win = menu->GetInvokingWindow();
if (win) win->GetEventHandler()->ProcessEvent( event );
}
wxWindow *win = menu->GetInvokingWindow();
if (win) win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// "deselect"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "deselect"
//-----------------------------------------------------------------------------
static void gtk_menu_nolight_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_menu_nolight_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
if (win)
win->GetEventHandler()->ProcessEvent( event );
}
if (win)
win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// wxMenuItem
//-----------------------------------------------------------------------------
// wxMenuItem
static GtkMenuItemClass *parent_class = NULL;
static GtkMenuItemClass *parent_class = NULL;
#define BORDER_SPACING 3
#define PMAP_WIDTH 20
#define BORDER_SPACING 3
#define PMAP_WIDTH 20
return pixmap_menu_item_type;
}
return pixmap_menu_item_type;
}
/**
* gtk_pixmap_menu_item_new
*
/**
* gtk_pixmap_menu_item_new
*
gtk_widget_queue_resize(GTK_WIDGET(menu_item));
}
gtk_widget_queue_resize(GTK_WIDGET(menu_item));
}
+} // extern "C"
+
+#endif // !__WXGTK20__
// "expose_event" of m_mainWidget
//-----------------------------------------------------------------------------
// "expose_event" of m_mainWidget
//-----------------------------------------------------------------------------
static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
dc.DrawText( win->GetTitle(), 6, 3 );
}
}
dc.DrawText( win->GetTitle(), 6, 3 );
}
}
//-----------------------------------------------------------------------------
// "draw" of m_mainWidget
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
//-----------------------------------------------------------------------------
// "draw" of m_mainWidget
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
dc.DrawText( win->GetTitle(), 6, 3 );
}
}
dc.DrawText( win->GetTitle(), 6, 3 );
}
}
#endif
//-----------------------------------------------------------------------------
// "button_press_event" of m_mainWidget
//-----------------------------------------------------------------------------
#endif
//-----------------------------------------------------------------------------
// "button_press_event" of m_mainWidget
//-----------------------------------------------------------------------------
static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
//-----------------------------------------------------------------------------
// "button_release_event" of m_mainWidget
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_release_event" of m_mainWidget
//-----------------------------------------------------------------------------
static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
//-----------------------------------------------------------------------------
// "motion_notify_event" of m_mainWidget
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "motion_notify_event" of m_mainWidget
//-----------------------------------------------------------------------------
static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
//-----------------------------------------------------------------------------
// "clicked" of X system button
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "clicked" of X system button
//-----------------------------------------------------------------------------
static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxMiniFrame *mf )
{
if (g_isIdle) wxapp_install_idle_handler();
mf->Close();
}
static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxMiniFrame *mf )
{
if (g_isIdle) wxapp_install_idle_handler();
mf->Close();
}
//-----------------------------------------------------------------------------
// wxMiniFrame
//-----------------------------------------------------------------------------
// wxMiniFrame
// "switch_page"
//-----------------------------------------------------------------------------
// "switch_page"
//-----------------------------------------------------------------------------
static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
GtkNotebookPage *WXUNUSED(page),
gint page,
static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
GtkNotebookPage *WXUNUSED(page),
gint page,
notebook->m_inSwitchPage = FALSE;
}
notebook->m_inSwitchPage = FALSE;
}
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
{
if (g_isIdle)
static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
{
if (g_isIdle)
gtk_widget_size_allocate( win->m_wxwindow, alloc );
}
}
gtk_widget_size_allocate( win->m_wxwindow, alloc );
}
}
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
static gint
gtk_notebook_realized_callback( GtkWidget * WXUNUSED(widget), wxWindow *win )
{
static gint
gtk_notebook_realized_callback( GtkWidget * WXUNUSED(widget), wxWindow *win )
{
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
static gint gtk_notebook_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxNotebook *notebook )
{
if (g_isIdle)
static gint gtk_notebook_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxNotebook *notebook )
{
if (g_isIdle)
//-----------------------------------------------------------------------------
// InsertChild callback for wxNotebook
//-----------------------------------------------------------------------------
// InsertChild callback for wxNotebook
// "button_press"
//-----------------------------------------------------------------------------
// "button_press"
//-----------------------------------------------------------------------------
static gint gtk_popup_button_press (GtkWidget *widget, GdkEvent *gdk_event, wxPopupWindow* win )
{
GtkWidget *child = gtk_get_event_widget (gdk_event);
static gint gtk_popup_button_press (GtkWidget *widget, GdkEvent *gdk_event, wxPopupWindow* win )
{
GtkWidget *child = gtk_get_event_widget (gdk_event);
//-----------------------------------------------------------------------------
// "focus" from m_window
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "focus" from m_window
//-----------------------------------------------------------------------------
static gint gtk_dialog_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUSED(d), wxWindow *WXUNUSED(win) )
{
if (g_isIdle)
static gint gtk_dialog_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUSED(d), wxWindow *WXUNUSED(win) )
{
if (g_isIdle)
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus" );
return TRUE;
}
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus" );
return TRUE;
}
//-----------------------------------------------------------------------------
// "delete_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "delete_event"
//-----------------------------------------------------------------------------
bool gtk_dialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxPopupWindow *win )
{
if (g_isIdle)
bool gtk_dialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxPopupWindow *win )
{
if (g_isIdle)
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxPopupWindow *win )
{
if (g_isIdle)
static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxPopupWindow *win )
{
if (g_isIdle)
win->GtkUpdateSize();
}
}
win->GtkUpdateSize();
}
}
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
// "realize" from m_widget
/* we cannot MWM hints and icons before the widget has been realized,
so we do this directly after realization */
/* we cannot MWM hints and icons before the widget has been realized,
so we do this directly after realization */
static gint
gtk_dialog_realized_callback( GtkWidget * WXUNUSED(widget), wxPopupWindow *win )
{
static gint
gtk_dialog_realized_callback( GtkWidget * WXUNUSED(widget), wxPopupWindow *win )
{
//-----------------------------------------------------------------------------
// InsertChild for wxPopupWindow
//-----------------------------------------------------------------------------
// InsertChild for wxPopupWindow
// "clicked"
//-----------------------------------------------------------------------------
// "clicked"
//-----------------------------------------------------------------------------
static void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioBox *rb )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioBox *rb )
{
if (g_isIdle) wxapp_install_idle_handler();
event.SetEventObject( rb );
rb->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject( rb );
rb->GetEventHandler()->ProcessEvent(event);
}
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
static gint gtk_radiobox_keypress_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxRadioBox *rb )
{
if (g_isIdle)
static gint gtk_radiobox_keypress_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxRadioBox *rb )
{
if (g_isIdle)
static gint gtk_radiobutton_focus_in( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxRadioBox *win )
static gint gtk_radiobutton_focus_in( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxRadioBox *win )
static gint gtk_radiobutton_focus_out( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxRadioBox *win )
static gint gtk_radiobutton_focus_out( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxRadioBox *win )
//-----------------------------------------------------------------------------
// wxRadioBox
//-----------------------------------------------------------------------------
// wxRadioBox
// "clicked"
//-----------------------------------------------------------------------------
// "clicked"
//-----------------------------------------------------------------------------
static
void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioButton *rb )
{
static
void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioButton *rb )
{
event.SetEventObject( rb );
rb->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( rb );
rb->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// wxRadioButton
//-----------------------------------------------------------------------------
// wxRadioButton
// FIXME: is GtkScrollType really passed to us as 2nd argument?
// FIXME: is GtkScrollType really passed to us as 2nd argument?
static void gtk_scrollbar_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrollBar *win )
static void gtk_scrollbar_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrollBar *win )
win->ProcessEvent( cevent );
*/
}
win->ProcessEvent( cevent );
*/
}
//-----------------------------------------------------------------------------
// "button_press_event" from slider
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_press_event" from slider
//-----------------------------------------------------------------------------
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxScrollBar *win )
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxScrollBar *win )
//-----------------------------------------------------------------------------
// "button_release_event" from slider
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_release_event" from slider
//-----------------------------------------------------------------------------
static gint
gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
GdkEventButton *WXUNUSED(gdk_event),
static gint
gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
GdkEventButton *WXUNUSED(gdk_event),
//-----------------------------------------------------------------------------
// wxScrollBar
//-----------------------------------------------------------------------------
// wxScrollBar
// "value_changed" from m_vAdjust
//-----------------------------------------------------------------------------
// "value_changed" from m_vAdjust
//-----------------------------------------------------------------------------
static void gtk_scrolled_window_vscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrolledWindow *win )
static void gtk_scrolled_window_vscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrolledWindow *win )
win->GtkVScroll( adjust->value,
GET_SCROLL_TYPE(GTK_SCROLLED_WINDOW(win->m_widget)->vscrollbar) );
}
win->GtkVScroll( adjust->value,
GET_SCROLL_TYPE(GTK_SCROLLED_WINDOW(win->m_widget)->vscrollbar) );
}
//-----------------------------------------------------------------------------
// "value_changed" from m_hAdjust
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "value_changed" from m_hAdjust
//-----------------------------------------------------------------------------
static void gtk_scrolled_window_hscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrolledWindow *win )
static void gtk_scrolled_window_hscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrolledWindow *win )
win->GtkHScroll( adjust->value,
GET_SCROLL_TYPE(GTK_SCROLLED_WINDOW(win->m_widget)->hscrollbar) );
}
win->GtkHScroll( adjust->value,
GET_SCROLL_TYPE(GTK_SCROLLED_WINDOW(win->m_widget)->hscrollbar) );
}
//-----------------------------------------------------------------------------
// "button_press_event" from scrollbar
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_press_event" from scrollbar
//-----------------------------------------------------------------------------
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win)
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win)
//-----------------------------------------------------------------------------
// "button_release_event" from scrollbar
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_release_event" from scrollbar
//-----------------------------------------------------------------------------
static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
GdkEventButton *WXUNUSED(gdk_event),
wxWindowGTK *win)
static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
GdkEventButton *WXUNUSED(gdk_event),
wxWindowGTK *win)
//-----------------------------------------------------------------------------
// InsertChild for wxScrolledWindow
//-----------------------------------------------------------------------------
// InsertChild for wxScrolledWindow
// "value_changed"
//-----------------------------------------------------------------------------
// "value_changed"
//-----------------------------------------------------------------------------
static void gtk_slider_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxSlider *win )
static void gtk_slider_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxSlider *win )
cevent.SetInt( value );
win->GetEventHandler()->ProcessEvent( cevent );
}
cevent.SetInt( value );
win->GetEventHandler()->ProcessEvent( cevent );
}
//-----------------------------------------------------------------------------
// wxSlider
//-----------------------------------------------------------------------------
// wxSlider
// "value_changed"
//-----------------------------------------------------------------------------
// "value_changed"
//-----------------------------------------------------------------------------
static void gtk_spinbutt_callback( GtkWidget *WXUNUSED(widget), wxSpinButton *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_spinbutt_callback( GtkWidget *WXUNUSED(widget), wxSpinButton *win )
{
if (g_isIdle) wxapp_install_idle_handler();
win->GetEventHandler()->ProcessEvent( event2 );
}
}
win->GetEventHandler()->ProcessEvent( event2 );
}
}
//-----------------------------------------------------------------------------
// wxSpinButton
//-----------------------------------------------------------------------------
// wxSpinButton
// "value_changed"
//-----------------------------------------------------------------------------
// "value_changed"
//-----------------------------------------------------------------------------
static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win )
{
if (g_isIdle) wxapp_install_idle_handler();
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
}
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// "changed"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "changed"
//-----------------------------------------------------------------------------
static void
gtk_spinctrl_text_changed_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win )
{
static void
gtk_spinctrl_text_changed_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win )
{
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
}
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// wxSpinCtrl
//-----------------------------------------------------------------------------
// wxSpinCtrl
// "clicked" (internal from gtk_toolbar)
//-----------------------------------------------------------------------------
// "clicked" (internal from gtk_toolbar)
//-----------------------------------------------------------------------------
static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget),
wxToolBarTool *tool )
{
static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget),
wxToolBarTool *tool )
{
tool->SetPixmap(tool->GetBitmap());
}
}
tool->SetPixmap(tool->GetBitmap());
}
}
//-----------------------------------------------------------------------------
// "enter_notify_event" / "leave_notify_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "enter_notify_event" / "leave_notify_event"
//-----------------------------------------------------------------------------
static gint gtk_toolbar_tool_callback( GtkWidget *WXUNUSED(widget),
GdkEventCrossing *gdk_event,
wxToolBarTool *tool )
static gint gtk_toolbar_tool_callback( GtkWidget *WXUNUSED(widget),
GdkEventCrossing *gdk_event,
wxToolBarTool *tool )
//-----------------------------------------------------------------------------
// InsertChild callback for wxToolBar
//-----------------------------------------------------------------------------
// InsertChild callback for wxToolBar
// "insert_text" for GtkEntry
// ----------------------------------------------------------------------------
// "insert_text" for GtkEntry
// ----------------------------------------------------------------------------
static void
gtk_insert_text_callback(GtkEditable *editable,
const gchar *new_text,
static void
gtk_insert_text_callback(GtkEditable *editable,
const gchar *new_text,
win->GetEventHandler()->ProcessEvent( event );
}
}
win->GetEventHandler()->ProcessEvent( event );
}
}
#ifdef __WXGTK20__
// Implementation of wxTE_AUTO_URL for wxGTK2 by Mart Raudsepp,
#ifdef __WXGTK20__
// Implementation of wxTE_AUTO_URL for wxGTK2 by Mart Raudsepp,
static void
au_apply_tag_callback(GtkTextBuffer *buffer,
GtkTextTag *tag,
static void
au_apply_tag_callback(GtkTextBuffer *buffer,
GtkTextTag *tag,
if(tag == gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(buffer), "wxUrl"))
g_signal_stop_emission_by_name(buffer, "apply_tag");
}
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
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// GtkTextCharPredicates for gtk_text_iter_*_find_char
//-----------------------------------------------------------------------------
static gboolean
pred_whitespace (gunichar ch, gpointer user_data)
{
return g_unichar_isspace(ch);
}
static gboolean
pred_whitespace (gunichar ch, gpointer user_data)
{
return g_unichar_isspace(ch);
}
static gboolean
pred_non_whitespace (gunichar ch, gpointer user_data)
{
return !g_unichar_isspace(ch);
}
static gboolean
pred_non_whitespace (gunichar ch, gpointer user_data)
{
return !g_unichar_isspace(ch);
}
static gboolean
pred_nonpunct (gunichar ch, gpointer user_data)
{
return !g_unichar_ispunct(ch);
}
static gboolean
pred_nonpunct (gunichar ch, gpointer user_data)
{
return !g_unichar_ispunct(ch);
}
static gboolean
pred_nonpunct_or_slash (gunichar ch, gpointer user_data)
{
return !g_unichar_ispunct(ch) || ch == '/';
}
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
//-----------------------------------------------------------------------------
// Check for links between s and e and correct tags as necessary
// This function should be made match better while being efficient at one point.
// Most probably with a row of regular expressions.
// This function should be made match better while being efficient at one point.
// Most probably with a row of regular expressions.
static void
au_check_word( GtkTextIter *s, GtkTextIter *e )
{
static void
au_check_word( GtkTextIter *s, GtkTextIter *e )
{
g_signal_handler_unblock(buffer, signal_id);
}
}
g_signal_handler_unblock(buffer, signal_id);
}
}
static void
au_check_range(GtkTextIter *s,
GtkTextIter *range_end)
static void
au_check_range(GtkTextIter *s,
GtkTextIter *range_end)
gtk_text_iter_forward_find_char(&range_start, pred_non_whitespace, NULL, range_end);
}
}
gtk_text_iter_forward_find_char(&range_start, pred_non_whitespace, NULL, range_end);
}
}
//-----------------------------------------------------------------------------
// "insert-text" for GtkTextBuffer
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "insert-text" for GtkTextBuffer
//-----------------------------------------------------------------------------
static void
au_insert_text_callback(GtkTextBuffer *buffer,
GtkTextIter *end,
static void
au_insert_text_callback(GtkTextBuffer *buffer,
GtkTextIter *end,
au_check_range(&words_start, &words_end);
}
au_check_range(&words_start, &words_end);
}
//-----------------------------------------------------------------------------
// "delete-range" for GtkTextBuffer
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "delete-range" for GtkTextBuffer
//-----------------------------------------------------------------------------
static void
au_delete_range_callback(GtkTextBuffer *buffer,
GtkTextIter *start,
static void
au_delete_range_callback(GtkTextBuffer *buffer,
GtkTextIter *start,
au_check_range(start, end);
}
au_check_range(start, end);
}
// "changed"
//-----------------------------------------------------------------------------
// "changed"
//-----------------------------------------------------------------------------
static void
gtk_text_changed_callback( GtkWidget *widget, wxTextCtrl *win )
{
static void
gtk_text_changed_callback( GtkWidget *widget, wxTextCtrl *win )
{
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// "expose_event" from scrolled window and textview
//-----------------------------------------------------------------------------
#ifdef __WXGTK20__
//-----------------------------------------------------------------------------
// "expose_event" from scrolled window and textview
//-----------------------------------------------------------------------------
#ifdef __WXGTK20__
static gboolean
gtk_text_exposed_callback( GtkWidget *widget, GdkEventExpose *event, wxTextCtrl *win )
{
return TRUE;
}
static gboolean
gtk_text_exposed_callback( GtkWidget *widget, GdkEventExpose *event, wxTextCtrl *win )
{
return TRUE;
}
#endif
//-----------------------------------------------------------------------------
#endif
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
static void
gtk_scrollbar_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win )
{
static void
gtk_scrollbar_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win )
{
win->CalculateScrollbar();
}
win->CalculateScrollbar();
}
#endif
// ----------------------------------------------------------------------------
#endif
// ----------------------------------------------------------------------------
static GtkDrawCallback gs_gtk_text_draw = NULL;
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 )
{
{
if ( !wxIsInsideYield )
{
gs_gtk_text_draw(widget, rect);
}
}
gs_gtk_text_draw(widget, rect);
}
}
extern wxCursor g_globalCursor;
extern wxWindowGTK *g_delayedFocus;
extern wxCursor g_globalCursor;
extern wxWindowGTK *g_delayedFocus;
static void gtk_togglebutton_clicked_callback(GtkWidget *WXUNUSED(widget), wxToggleButton *cb)
{
if (g_isIdle)
static void gtk_togglebutton_clicked_callback(GtkWidget *WXUNUSED(widget), wxToggleButton *cb)
{
if (g_isIdle)
event.SetEventObject(cb);
cb->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject(cb);
cb->GetEventHandler()->ProcessEvent(event);
}
DEFINE_EVENT_TYPE(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED)
IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxEvtHandler)
IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxEvtHandler)
-extern "C" gint timeout_callback( gpointer data )
+extern "C" {
+static gint timeout_callback( gpointer data )
{
wxTimer *timer = (wxTimer*)data;
{
wxTimer *timer = (wxTimer*)data;
// "focus_in_event"
//-----------------------------------------------------------------------------
// "focus_in_event"
//-----------------------------------------------------------------------------
static gint gtk_frame_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxTopLevelWindowGTK *win )
static gint gtk_frame_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxTopLevelWindowGTK *win )
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
static gint gtk_frame_focus_out_callback( GtkWidget *widget,
GdkEventFocus *WXUNUSED(gdk_event),
wxTopLevelWindowGTK *win )
static gint gtk_frame_focus_out_callback( GtkWidget *widget,
GdkEventFocus *WXUNUSED(gdk_event),
wxTopLevelWindowGTK *win )
//-----------------------------------------------------------------------------
// "focus" from m_window
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "focus" from m_window
//-----------------------------------------------------------------------------
static gint gtk_frame_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUSED(d), wxWindow *WXUNUSED(win) )
{
if (g_isIdle)
static gint gtk_frame_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUSED(d), wxWindow *WXUNUSED(win) )
{
if (g_isIdle)
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus" );
return TRUE;
}
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus" );
return TRUE;
}
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxTopLevelWindowGTK *win )
{
if (g_isIdle)
static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxTopLevelWindowGTK *win )
{
if (g_isIdle)
win->GtkUpdateSize();
}
}
win->GtkUpdateSize();
}
}
//-----------------------------------------------------------------------------
// "delete_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "delete_event"
//-----------------------------------------------------------------------------
static gint gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxTopLevelWindowGTK *win )
{
if (g_isIdle)
static gint gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxTopLevelWindowGTK *win )
{
if (g_isIdle)
//-----------------------------------------------------------------------------
// "configure_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "configure_event"
//-----------------------------------------------------------------------------
static gint
gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxTopLevelWindowGTK *win )
{
static gint
gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxTopLevelWindowGTK *win )
{
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
// "realize" from m_widget
// we cannot MWM hints and icons before the widget has been realized,
// so we do this directly after realization
// we cannot MWM hints and icons before the widget has been realized,
// so we do this directly after realization
static void
gtk_frame_realized_callback( GtkWidget * WXUNUSED(widget),
wxTopLevelWindowGTK *win )
static void
gtk_frame_realized_callback( GtkWidget * WXUNUSED(widget),
wxTopLevelWindowGTK *win )
win->SetIcons( iconsOld );
}
}
win->SetIcons( iconsOld );
}
}
//-----------------------------------------------------------------------------
// "map_event" from m_widget
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "map_event" from m_widget
//-----------------------------------------------------------------------------
static void
gtk_frame_map_callback( GtkWidget * WXUNUSED(widget),
GdkEvent * WXUNUSED(event),
static void
gtk_frame_map_callback( GtkWidget * WXUNUSED(widget),
GdkEvent * WXUNUSED(event),
{
win->SetIconizeState(FALSE);
}
{
win->SetIconizeState(FALSE);
}
//-----------------------------------------------------------------------------
// "unmap_event" from m_widget
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "unmap_event" from m_widget
//-----------------------------------------------------------------------------
static void
gtk_frame_unmap_callback( GtkWidget * WXUNUSED(widget),
GdkEvent * WXUNUSED(event),
static void
gtk_frame_unmap_callback( GtkWidget * WXUNUSED(widget),
GdkEvent * WXUNUSED(event),
{
win->SetIconizeState(TRUE);
}
{
win->SetIconizeState(TRUE);
}
//-----------------------------------------------------------------------------
// "expose_event" of m_client
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "expose_event" of m_client
//-----------------------------------------------------------------------------
static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxWindow *win )
{
GtkPizza *pizza = GTK_PIZZA(widget);
static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxWindow *win )
{
GtkPizza *pizza = GTK_PIZZA(widget);
//-----------------------------------------------------------------------------
// "draw" of m_client
//-----------------------------------------------------------------------------
// "draw" of m_client
static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxWindow *win )
{
GtkPizza *pizza = GTK_PIZZA(widget);
static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxWindow *win )
{
GtkPizza *pizza = GTK_PIZZA(widget);
(char *)"base",
0, 0, -1, -1);
}
(char *)"base",
0, 0, -1, -1);
}
// subprocess routines
// ----------------------------------------------------------------------------
// subprocess routines
// ----------------------------------------------------------------------------
void GTK_EndProcessDetector(gpointer data, gint source,
GdkInputCondition WXUNUSED(condition) )
{
void GTK_EndProcessDetector(gpointer data, gint source,
GdkInputCondition WXUNUSED(condition) )
{
wxHandleProcessTermination(proc_data);
}
wxHandleProcessTermination(proc_data);
}
int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
{
int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
{
dh += hscroll_req.height;
dh += scroll_class->scrollbar_spacing;
}
dh += hscroll_req.height;
dh += scroll_class->scrollbar_spacing;
}
// "expose_event" of m_widget
//-----------------------------------------------------------------------------
// "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;
{
if (gdk_event->count > 0) return FALSE;
//-----------------------------------------------------------------------------
// "draw" of m_widget
//-----------------------------------------------------------------------------
// "draw" of m_widget
static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxWindowGTK *win )
{
draw_frame( widget, win );
}
static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxWindowGTK *win )
{
draw_frame( widget, win );
}
// "size_request" of m_widget
//-----------------------------------------------------------------------------
// "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)
void wxgtk_window_size_request_callback(GtkWidget *widget,
GtkRequisition *requisition,
wxWindow *win)
requisition->height = h;
requisition->width = w;
}
requisition->height = h;
requisition->width = w;
}
void wxgtk_combo_size_request_callback(GtkWidget *widget,
GtkRequisition *requisition,
wxComboBox *win)
void wxgtk_combo_size_request_callback(GtkWidget *widget,
GtkRequisition *requisition,
wxComboBox *win)
requisition->width = w - entry_req.width;
requisition->height = entry_req.height+4; // TODO: why +4?
}
requisition->width = w - entry_req.width;
requisition->height = entry_req.height+4; // TODO: why +4?
}
//-----------------------------------------------------------------------------
// "expose_event" of m_wxwindow
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "expose_event" of m_wxwindow
//-----------------------------------------------------------------------------
static int gtk_window_expose_callback( GtkWidget *widget,
GdkEventExpose *gdk_event,
wxWindow *win )
static int gtk_window_expose_callback( GtkWidget *widget,
GdkEventExpose *gdk_event,
wxWindow *win )
//-----------------------------------------------------------------------------
// "event" of m_wxwindow
//-----------------------------------------------------------------------------
// "event" of m_wxwindow
// There, we look for expose events ourselves whereas all other events are
// handled normally.
// There, we look for expose events ourselves whereas all other events are
// handled normally.
gint gtk_window_event_event_callback( GtkWidget *widget,
GdkEventExpose *event,
wxWindow *win )
gint gtk_window_event_event_callback( GtkWidget *widget,
GdkEventExpose *event,
wxWindow *win )
//-----------------------------------------------------------------------------
// "draw" of m_wxwindow
//-----------------------------------------------------------------------------
// "draw" of m_wxwindow
// This callback is a complete replacement of the gtk_pizza_draw() function,
// which is disabled.
// This callback is a complete replacement of the gtk_pizza_draw() function,
// which is disabled.
static void gtk_window_draw_callback( GtkWidget *widget,
GdkRectangle *rect,
wxWindow *win )
static void gtk_window_draw_callback( GtkWidget *widget,
GdkRectangle *rect,
wxWindow *win )
static gint gtk_window_key_press_callback( GtkWidget *widget,
GdkEventKey *gdk_event,
wxWindow *win )
static gint gtk_window_key_press_callback( GtkWidget *widget,
GdkEventKey *gdk_event,
wxWindow *win )
static void gtk_wxwindow_commit_cb (GtkIMContext *context,
const gchar *str,
wxWindow *window)
static void gtk_wxwindow_commit_cb (GtkIMContext *context,
const gchar *str,
wxWindow *window)
// "key_release_event" from any window
//-----------------------------------------------------------------------------
// "key_release_event" from any window
//-----------------------------------------------------------------------------
static gint gtk_window_key_release_callback( GtkWidget *widget,
GdkEventKey *gdk_event,
wxWindowGTK *win )
static gint gtk_window_key_release_callback( GtkWidget *widget,
GdkEventKey *gdk_event,
wxWindowGTK *win )
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_release_event" );
return TRUE;
}
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_release_event" );
return TRUE;
}
// ============================================================================
// the mouse events
// ============================================================================
// the mouse events
// "button_press_event"
//-----------------------------------------------------------------------------
// "button_press_event"
//-----------------------------------------------------------------------------
static gint gtk_window_button_press_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win )
static gint gtk_window_button_press_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win )
//-----------------------------------------------------------------------------
// "button_release_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_release_event"
//-----------------------------------------------------------------------------
static gint gtk_window_button_release_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win )
static gint gtk_window_button_release_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win )
//-----------------------------------------------------------------------------
// "motion_notify_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "motion_notify_event"
//-----------------------------------------------------------------------------
static gint gtk_window_motion_notify_callback( GtkWidget *widget,
GdkEventMotion *gdk_event,
wxWindowGTK *win )
static gint gtk_window_motion_notify_callback( GtkWidget *widget,
GdkEventMotion *gdk_event,
wxWindowGTK *win )
#ifdef __WXGTK20__
//-----------------------------------------------------------------------------
// "mouse_wheel_event"
//-----------------------------------------------------------------------------
#ifdef __WXGTK20__
//-----------------------------------------------------------------------------
// "mouse_wheel_event"
//-----------------------------------------------------------------------------
static gint gtk_window_wheel_callback (GtkWidget * widget,
static gint gtk_window_wheel_callback (GtkWidget * widget,
- GdkEventScroll * gdk_event,
- wxWindowGTK * win)
+ GdkEventScroll * gdk_event,
+ wxWindowGTK * win)
//-----------------------------------------------------------------------------
// "popup-menu"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "popup-menu"
//-----------------------------------------------------------------------------
static gboolean wxgtk_window_popup_menu_callback(GtkWidget*, wxWindowGTK* win)
{
wxContextMenuEvent event(
static gboolean wxgtk_window_popup_menu_callback(GtkWidget*, wxWindowGTK* win)
{
wxContextMenuEvent event(
event.SetEventObject(win);
return win->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject(win);
return win->GetEventHandler()->ProcessEvent(event);
}
#endif // __WXGTK20__
//-----------------------------------------------------------------------------
#endif // __WXGTK20__
//-----------------------------------------------------------------------------
return win->GetEventHandler()->ProcessEvent(eventFocus);
}
return win->GetEventHandler()->ProcessEvent(eventFocus);
}
static gint gtk_window_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxWindow *win )
static gint gtk_window_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxWindow *win )
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
static gint gtk_window_focus_out_callback( GtkWidget *widget, GdkEventFocus *gdk_event, wxWindowGTK *win )
{
DEBUG_MAIN_THREAD
static gint gtk_window_focus_out_callback( GtkWidget *widget, GdkEventFocus *gdk_event, wxWindowGTK *win )
{
DEBUG_MAIN_THREAD
//-----------------------------------------------------------------------------
// "enter_notify_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "enter_notify_event"
//-----------------------------------------------------------------------------
static
gint gtk_window_enter_callback( GtkWidget *widget,
GdkEventCrossing *gdk_event,
static
gint gtk_window_enter_callback( GtkWidget *widget,
GdkEventCrossing *gdk_event,
//-----------------------------------------------------------------------------
// "leave_notify_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "leave_notify_event"
//-----------------------------------------------------------------------------
static gint gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_event, wxWindowGTK *win )
{
DEBUG_MAIN_THREAD
static gint gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_event, wxWindowGTK *win )
{
DEBUG_MAIN_THREAD
//-----------------------------------------------------------------------------
// "value_changed" from m_vAdjust
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "value_changed" from m_vAdjust
//-----------------------------------------------------------------------------
static void gtk_window_vscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxWindowGTK *win )
static void gtk_window_vscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxWindowGTK *win )
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// "value_changed" from m_hAdjust
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "value_changed" from m_hAdjust
//-----------------------------------------------------------------------------
static void gtk_window_hscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxWindowGTK *win )
static void gtk_window_hscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxWindowGTK *win )
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// "button_press_event" from scrollbar
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_press_event" from scrollbar
//-----------------------------------------------------------------------------
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win)
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win)
//-----------------------------------------------------------------------------
// "button_release_event" from scrollbar
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_release_event" from scrollbar
//-----------------------------------------------------------------------------
static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
GdkEventButton *WXUNUSED(gdk_event),
wxWindowGTK *win)
static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
GdkEventButton *WXUNUSED(gdk_event),
wxWindowGTK *win)
// ----------------------------------------------------------------------------
// this wxWindowBase function is implemented here (in platform-specific file)
// ----------------------------------------------------------------------------
// this wxWindowBase function is implemented here (in platform-specific file)
return (wxWindow *)g_focusWindow;
}
return (wxWindow *)g_focusWindow;
}
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
/* We cannot set colours and fonts before the widget has
been realized, so we do this directly after realization. */
/* We cannot set colours and fonts before the widget has
been realized, so we do this directly after realization. */
static gint
gtk_window_realized_callback( GtkWidget *m_widget, wxWindow *win )
{
static gint
gtk_window_realized_callback( GtkWidget *m_widget, wxWindow *win )
{
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
static
void gtk_window_size_callback( GtkWidget *WXUNUSED(widget),
GtkAllocation *WXUNUSED(alloc),
static
void gtk_window_size_callback( GtkWidget *WXUNUSED(widget),
GtkAllocation *WXUNUSED(alloc),
win->GetEventHandler()->ProcessEvent( event );
}
}
win->GetEventHandler()->ProcessEvent( event );
}
}
static
void gtk_wxwindow_size_callback( GtkWidget* WXUNUSED_UNLESS_XIM(widget),
GtkAllocation* WXUNUSED_UNLESS_XIM(alloc),
static
void gtk_wxwindow_size_callback( GtkWidget* WXUNUSED_UNLESS_XIM(widget),
GtkAllocation* WXUNUSED_UNLESS_XIM(alloc),
//-----------------------------------------------------------------------------
// "realize" from m_wxwindow
//-----------------------------------------------------------------------------
// "realize" from m_wxwindow
/* Initialize XIM support */
/* Initialize XIM support */
static gint
gtk_wxwindow_realized_callback( GtkWidget * WXUNUSED_UNLESS_XIM(widget),
wxWindowGTK * WXUNUSED_UNLESS_XIM(win) )
static gint
gtk_wxwindow_realized_callback( GtkWidget * WXUNUSED_UNLESS_XIM(widget),
wxWindowGTK * WXUNUSED_UNLESS_XIM(win) )
//-----------------------------------------------------------------------------
// InsertChild for wxWindowGTK.
//-----------------------------------------------------------------------------
// InsertChild for wxWindowGTK.
// "clicked"
//-----------------------------------------------------------------------------
// "clicked"
//-----------------------------------------------------------------------------
static void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (g_isIdle)
static void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (g_isIdle)
event.SetEventObject(button);
button->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject(button);
button->GetEventHandler()->ProcessEvent(event);
}
//-----------------------------------------------------------------------------
// "enter"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "enter"
//-----------------------------------------------------------------------------
static void gtk_bmpbutton_enter_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
static void gtk_bmpbutton_enter_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
//-----------------------------------------------------------------------------
// "leave"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "leave"
//-----------------------------------------------------------------------------
static void gtk_bmpbutton_leave_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
static void gtk_bmpbutton_leave_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
//-----------------------------------------------------------------------------
// "pressed"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "pressed"
//-----------------------------------------------------------------------------
static void gtk_bmpbutton_press_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
static void gtk_bmpbutton_press_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
//-----------------------------------------------------------------------------
// "released"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "released"
//-----------------------------------------------------------------------------
static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
{
if (!button->m_hasVMT) return;
//-----------------------------------------------------------------------------
// wxBitmapButton
//-----------------------------------------------------------------------------
// wxBitmapButton
// "clicked"
//-----------------------------------------------------------------------------
// "clicked"
//-----------------------------------------------------------------------------
static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *button )
{
if (g_isIdle)
static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *button )
{
if (g_isIdle)
event.SetEventObject(button);
button->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject(button);
button->GetEventHandler()->ProcessEvent(event);
}
//-----------------------------------------------------------------------------
// "style_set" from m_widget
//-----------------------------------------------------------------------------
// "style_set" from m_widget
// "clicked"
//-----------------------------------------------------------------------------
// "clicked"
//-----------------------------------------------------------------------------
static void gtk_checkbox_toggled_callback(GtkWidget *widget, wxCheckBox *cb)
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_checkbox_toggled_callback(GtkWidget *widget, wxCheckBox *cb)
{
if (g_isIdle) wxapp_install_idle_handler();
event.SetEventObject(cb);
cb->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject(cb);
cb->GetEventHandler()->ProcessEvent(event);
}
//-----------------------------------------------------------------------------
// wxCheckBox
//-----------------------------------------------------------------------------
// wxCheckBox
// "activate"
//-----------------------------------------------------------------------------
// "activate"
//-----------------------------------------------------------------------------
static void gtk_choice_clicked_callback( GtkWidget *WXUNUSED(widget), wxChoice *choice )
{
if (g_isIdle)
static void gtk_choice_clicked_callback( GtkWidget *WXUNUSED(widget), wxChoice *choice )
{
if (g_isIdle)
choice->GetEventHandler()->ProcessEvent(event);
}
choice->GetEventHandler()->ProcessEvent(event);
}
//-----------------------------------------------------------------------------
// wxChoice
//-----------------------------------------------------------------------------
// wxChoice
// "selection_received" for targets
//-----------------------------------------------------------------------------
// "selection_received" for targets
//-----------------------------------------------------------------------------
static void
targets_selection_received( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
static void
targets_selection_received( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
clipboard->m_waiting = FALSE;
}
clipboard->m_waiting = FALSE;
}
//-----------------------------------------------------------------------------
// "selection_received" for the actual data
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "selection_received" for the actual data
//-----------------------------------------------------------------------------
static void
selection_received( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
static void
selection_received( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
wxTheClipboard->m_formatSupported = TRUE;
clipboard->m_waiting = FALSE;
}
wxTheClipboard->m_formatSupported = TRUE;
clipboard->m_waiting = FALSE;
}
//-----------------------------------------------------------------------------
// "selection_clear"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "selection_clear"
//-----------------------------------------------------------------------------
static gint
selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event )
{
static gint
selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event )
{
wxTheClipboard->m_waiting = FALSE;
return TRUE;
}
wxTheClipboard->m_waiting = FALSE;
return TRUE;
}
//-----------------------------------------------------------------------------
// selection handler for supplying data
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// selection handler for supplying data
//-----------------------------------------------------------------------------
static void
selection_handler( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
static void
selection_handler( GtkWidget *WXUNUSED(widget),
GtkSelectionData *selection_data,
//-----------------------------------------------------------------------------
// wxClipboard
//-----------------------------------------------------------------------------
// wxClipboard
// if it doesn't match an item then just get a single changed
//-----------------------------------------------------------------------------
// if it doesn't match an item then just get a single changed
//-----------------------------------------------------------------------------
static void
gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo )
{
static void
gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo )
{
event.SetEventObject( combo );
combo->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( combo );
combo->GetEventHandler()->ProcessEvent( event );
}
static void
gtk_dummy_callback(GtkEntry *WXUNUSED(entry), GtkCombo *WXUNUSED(combo))
{
}
static void
gtk_dummy_callback(GtkEntry *WXUNUSED(entry), GtkCombo *WXUNUSED(combo))
{
}
static void
gtk_popup_hide_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
{
static void
gtk_popup_hide_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
{
// reset the selection flag to an identifiable value (-2 = hidden)
g_SelectionBeforePopup = -2;
}
// reset the selection flag to an identifiable value (-2 = hidden)
g_SelectionBeforePopup = -2;
}
static void
gtk_popup_show_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
{
static void
gtk_popup_show_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
{
// if there is no selection, combo->GetSelection() returns -1
g_SelectionBeforePopup = combo->GetSelection();
}
// if there is no selection, combo->GetSelection() returns -1
g_SelectionBeforePopup = combo->GetSelection();
}
//-----------------------------------------------------------------------------
// "select-child" - click/cursor get select-child, changed, select-child
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "select-child" - click/cursor get select-child, changed, select-child
//-----------------------------------------------------------------------------
static void
gtk_combo_select_child_callback( GtkList *WXUNUSED(list), GtkWidget *WXUNUSED(widget), wxComboBox *combo )
{
static void
gtk_combo_select_child_callback( GtkList *WXUNUSED(list), GtkWidget *WXUNUSED(widget), wxComboBox *combo )
{
event2.SetEventObject( combo );
combo->GetEventHandler()->ProcessEvent( event2 );
}
event2.SetEventObject( combo );
combo->GetEventHandler()->ProcessEvent( event2 );
}
//-----------------------------------------------------------------------------
// wxComboBox
//-----------------------------------------------------------------------------
// wxComboBox
//static
wxVisualAttributes
//static
wxVisualAttributes
-wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(void),
+wxControl::GetDefaultAttributesFromGTKWidget(wxGtkWidgetNew_t widget_new,
bool useBase,
int state)
{
bool useBase,
int state)
{
//static
wxVisualAttributes
//static
wxVisualAttributes
-wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(const gchar*),
+wxControl::GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromStr_t widget_new,
bool useBase,
int state)
{
bool useBase,
int state)
{
//static
wxVisualAttributes
//static
wxVisualAttributes
-wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* (*widget_new)(GtkAdjustment*),
+wxControl::GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromAdj_t widget_new,
bool useBase,
int state)
{
bool useBase,
int state)
{
// "drag_leave"
// ----------------------------------------------------------------------------
// "drag_leave"
// ----------------------------------------------------------------------------
static void target_drag_leave( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
guint WXUNUSED(time),
static void target_drag_leave( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
guint WXUNUSED(time),
/* after this, invalidate the drop_target's GdkDragContext */
drop_target->SetDragContext( (GdkDragContext*) NULL );
}
/* after this, invalidate the drop_target's GdkDragContext */
drop_target->SetDragContext( (GdkDragContext*) NULL );
}
// ----------------------------------------------------------------------------
// "drag_motion"
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// "drag_motion"
// ----------------------------------------------------------------------------
static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
gint x,
static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
gint x,
// ----------------------------------------------------------------------------
// "drag_drop"
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// "drag_drop"
// ----------------------------------------------------------------------------
static gboolean target_drag_drop( GtkWidget *widget,
GdkDragContext *context,
gint x,
static gboolean target_drag_drop( GtkWidget *widget,
GdkDragContext *context,
gint x,
// ----------------------------------------------------------------------------
// "drag_data_received"
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// "drag_data_received"
// ----------------------------------------------------------------------------
static void target_drag_data_received( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
gint x,
static void target_drag_data_received( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
gint x,
/* after this, invalidate the drop_target's drag data */
drop_target->SetDragData( (GtkSelectionData*) NULL );
}
/* after this, invalidate the drop_target's drag data */
drop_target->SetDragData( (GtkSelectionData*) NULL );
}
//----------------------------------------------------------------------------
// wxDropTarget
//----------------------------------------------------------------------------
// wxDropTarget
// "drag_data_get"
//----------------------------------------------------------------------------
// "drag_data_get"
//----------------------------------------------------------------------------
static void
source_drag_data_get (GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
static void
source_drag_data_get (GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
//----------------------------------------------------------------------------
// "drag_data_delete"
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// "drag_data_delete"
//----------------------------------------------------------------------------
static void source_drag_data_delete( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
wxDropSource *WXUNUSED(drop_source) )
static void source_drag_data_delete( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
wxDropSource *WXUNUSED(drop_source) )
// printf( "Drag source: drag_data_delete\n" );
}
// printf( "Drag source: drag_data_delete\n" );
}
//----------------------------------------------------------------------------
// "drag_begin"
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// "drag_begin"
//----------------------------------------------------------------------------
static void source_drag_begin( GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
wxDropSource *WXUNUSED(drop_source) )
static void source_drag_begin( GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
wxDropSource *WXUNUSED(drop_source) )
// printf( "Drag source: drag_begin.\n" );
}
// printf( "Drag source: drag_begin.\n" );
}
//----------------------------------------------------------------------------
// "drag_end"
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// "drag_end"
//----------------------------------------------------------------------------
static void source_drag_end( GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
wxDropSource *drop_source )
static void source_drag_end( GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
wxDropSource *drop_source )
drop_source->m_waiting = FALSE;
}
drop_source->m_waiting = FALSE;
}
//-----------------------------------------------------------------------------
// "configure_event" from m_iconWindow
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "configure_event" from m_iconWindow
//-----------------------------------------------------------------------------
static gint
gtk_dnd_window_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxDropSource *source )
{
static gint
gtk_dnd_window_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxDropSource *source )
{
//---------------------------------------------------------------------------
// wxDropSource
//---------------------------------------------------------------------------
// wxDropSource
// "clicked" for OK-button
//-----------------------------------------------------------------------------
// "clicked" for OK-button
//-----------------------------------------------------------------------------
static void gtk_filedialog_ok_callback(GtkWidget *widget, wxFileDialog *dialog)
{
int style = dialog->GetStyle();
static void gtk_filedialog_ok_callback(GtkWidget *widget, wxFileDialog *dialog)
{
int style = dialog->GetStyle();
event.SetEventObject(dialog);
dialog->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject(dialog);
dialog->GetEventHandler()->ProcessEvent(event);
}
//-----------------------------------------------------------------------------
// "clicked" for Cancel-button
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "clicked" for Cancel-button
//-----------------------------------------------------------------------------
static void gtk_filedialog_cancel_callback(GtkWidget *WXUNUSED(w),
wxFileDialog *dialog)
{
static void gtk_filedialog_cancel_callback(GtkWidget *WXUNUSED(w),
wxFileDialog *dialog)
{
event.SetEventObject(dialog);
dialog->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject(dialog);
dialog->GetEventHandler()->ProcessEvent(event);
}
static void gtk_filedialog_response_callback(GtkWidget *w,
int response,
wxFileDialog *dialog)
static void gtk_filedialog_response_callback(GtkWidget *w,
int response,
wxFileDialog *dialog)
dialog->m_destroyed_by_delete = true;
}
}
dialog->m_destroyed_by_delete = true;
}
}
+}
+
+#endif // __WXGTK24__
//-----------------------------------------------------------------------------
// wxFileDialog
//-----------------------------------------------------------------------------
// wxFileDialog
// "delete_event"
//-----------------------------------------------------------------------------
// "delete_event"
//-----------------------------------------------------------------------------
static
bool gtk_fontdialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxDialog *win )
{
static
bool gtk_fontdialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxDialog *win )
{
//-----------------------------------------------------------------------------
// "clicked" for OK-button
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "clicked" for OK-button
//-----------------------------------------------------------------------------
static
void gtk_fontdialog_ok_callback( GtkWidget *WXUNUSED(widget), wxFontDialog *dialog )
{
static
void gtk_fontdialog_ok_callback( GtkWidget *WXUNUSED(widget), wxFontDialog *dialog )
{
event.SetEventObject( dialog );
dialog->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( dialog );
dialog->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// "clicked" for Cancel-button
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "clicked" for Cancel-button
//-----------------------------------------------------------------------------
static
void gtk_fontdialog_cancel_callback( GtkWidget *WXUNUSED(w), wxFontDialog *dialog )
{
static
void gtk_fontdialog_cancel_callback( GtkWidget *WXUNUSED(w), wxFontDialog *dialog )
{
event.SetEventObject( dialog );
dialog->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( dialog );
dialog->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// wxFontDialog
//-----------------------------------------------------------------------------
// wxFontDialog
// "child_attached" of menu bar
//-----------------------------------------------------------------------------
// "child_attached" of menu bar
//-----------------------------------------------------------------------------
static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
win->m_menuBarDetached = FALSE;
win->GtkUpdateSize();
}
win->m_menuBarDetached = FALSE;
win->GtkUpdateSize();
}
//-----------------------------------------------------------------------------
// "child_detached" of menu bar
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "child_detached" of menu bar
//-----------------------------------------------------------------------------
static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (g_isIdle)
static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (g_isIdle)
win->m_menuBarDetached = TRUE;
win->GtkUpdateSize();
}
win->m_menuBarDetached = TRUE;
win->GtkUpdateSize();
}
#endif // wxUSE_MENUS_NATIVE
#endif // wxUSE_MENUS_NATIVE
// "child_attached" of tool bar
//-----------------------------------------------------------------------------
// "child_attached" of tool bar
//-----------------------------------------------------------------------------
static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (!win->m_hasVMT) return;
win->m_toolBarDetached = FALSE;
win->GtkUpdateSize();
}
win->m_toolBarDetached = FALSE;
win->GtkUpdateSize();
}
//-----------------------------------------------------------------------------
// "child_detached" of tool bar
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "child_detached" of tool bar
//-----------------------------------------------------------------------------
static void gtk_toolbar_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (g_isIdle)
static void gtk_toolbar_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
{
if (g_isIdle)
win->m_toolBarDetached = TRUE;
win->GtkUpdateSize();
}
win->m_toolBarDetached = TRUE;
win->GtkUpdateSize();
}
// "realize" from m_wxwindow
//-----------------------------------------------------------------------------
// "realize" from m_wxwindow
//-----------------------------------------------------------------------------
static gint
gtk_glwindow_realized_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
{
static gint
gtk_glwindow_realized_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
{
//-----------------------------------------------------------------------------
// "map" from m_wxwindow
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "map" from m_wxwindow
//-----------------------------------------------------------------------------
static gint
gtk_glwindow_map_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
{
static gint
gtk_glwindow_map_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
{
//-----------------------------------------------------------------------------
// "expose_event" of m_wxwindow
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "expose_event" of m_wxwindow
//-----------------------------------------------------------------------------
static void
gtk_glwindow_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_event, wxGLCanvas *win )
{
static void
gtk_glwindow_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_event, wxGLCanvas *win )
{
gdk_event->area.width,
gdk_event->area.height );
}
gdk_event->area.width,
gdk_event->area.height );
}
//-----------------------------------------------------------------------------
// "draw" of m_wxwindow
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
//-----------------------------------------------------------------------------
// "draw" of m_wxwindow
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
static void
gtk_glwindow_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxGLCanvas *win )
{
static void
gtk_glwindow_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxGLCanvas *win )
{
win->GetUpdateRegion().Union( rect->x, rect->y,
rect->width, rect->height );
}
win->GetUpdateRegion().Union( rect->x, rect->y,
rect->width, rect->height );
}
#endif
//-----------------------------------------------------------------------------
// "size_allocate" of m_wxwindow
//-----------------------------------------------------------------------------
#endif
//-----------------------------------------------------------------------------
// "size_allocate" of m_wxwindow
//-----------------------------------------------------------------------------
static void
gtk_glcanvas_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxGLCanvas *win )
{
static void
gtk_glcanvas_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxGLCanvas *win )
{
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
//---------------------------------------------------------------------------
// wxGlCanvas
//---------------------------------------------------------------------------
// wxGlCanvas
#include "wx/unix/gsockunx.h"
#include "wx/unix/gsockunx.h"
void _GSocket_GDK_Input(gpointer data,
gint source,
GdkInputCondition condition)
void _GSocket_GDK_Input(gpointer data,
gint source,
GdkInputCondition condition)
if (condition & GDK_INPUT_WRITE)
socket->Detected_Write();
}
if (condition & GDK_INPUT_WRITE)
socket->Detected_Write();
}
bool GSocketGUIFunctionsTableConcrete::CanUseEventLoop()
{ return true; }
bool GSocketGUIFunctionsTableConcrete::CanUseEventLoop()
{ return true; }
-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();
{
wxlistbox_idle_struct* data = (wxlistbox_idle_struct*) gdata;
gdk_threads_enter();
//-----------------------------------------------------------------------------
// "focus_in_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "focus_in_event"
//-----------------------------------------------------------------------------
static gint gtk_listitem_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxWindow *win )
static gint gtk_listitem_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxWindow *win )
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
static gint gtk_listitem_focus_out_callback( GtkWidget *widget, GdkEventFocus *gdk_event, wxWindowGTK *win )
{
if (g_isIdle)
static gint gtk_listitem_focus_out_callback( GtkWidget *widget, GdkEventFocus *gdk_event, wxWindowGTK *win )
{
if (g_isIdle)
//-----------------------------------------------------------------------------
// "button_release_event"
//-----------------------------------------------------------------------------
// "button_release_event"
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 */
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 */
static gint
gtk_listbox_button_release_callback( GtkWidget * WXUNUSED(widget),
GdkEventButton * WXUNUSED(gdk_event),
static gint
gtk_listbox_button_release_callback( GtkWidget * WXUNUSED(widget),
GdkEventButton * WXUNUSED(gdk_event),
//-----------------------------------------------------------------------------
// "button_press_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_press_event"
//-----------------------------------------------------------------------------
static gint
gtk_listbox_button_press_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
static gint
gtk_listbox_button_press_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
static gint
gtk_listbox_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxListBox *listbox )
{
static gint
gtk_listbox_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxListBox *listbox )
{
//-----------------------------------------------------------------------------
// "select" and "deselect"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "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 )
static void gtk_listitem_select_cb( GtkWidget *widget,
wxListBox *listbox,
bool is_selection )
listbox->GetEventHandler()->ProcessEvent( event );
}
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
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// wxListBox
//-----------------------------------------------------------------------------
static gint
gtk_listbox_realized_callback( GtkWidget *m_widget, wxListBox *win )
{
static gint
gtk_listbox_realized_callback( GtkWidget *m_widget, wxListBox *win )
{
//-----------------------------------------------------------------------------
// wxListBox
//-----------------------------------------------------------------------------
// wxListBox
// "switch_page"
//-----------------------------------------------------------------------------
// "switch_page"
//-----------------------------------------------------------------------------
static void
gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget),
GtkNotebookPage *page,
static void
gtk_mdi_page_change_callback( GtkNotebook *WXUNUSED(widget),
GtkNotebookPage *page,
event2.SetEventObject( child);
child->GetEventHandler()->ProcessEvent( event2 );
}
event2.SetEventObject( child);
child->GetEventHandler()->ProcessEvent( event2 );
}
//-----------------------------------------------------------------------------
// wxMDIParentFrame
//-----------------------------------------------------------------------------
// wxMDIParentFrame
// "size_allocate"
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
{
if (g_isIdle) wxapp_install_idle_handler();
win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
}
win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
}
//-----------------------------------------------------------------------------
// InsertChild callback for wxMDIClientWindow
//-----------------------------------------------------------------------------
// InsertChild callback for wxMDIClientWindow
guint have_pixmap_count;
};
guint have_pixmap_count;
};
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,
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
//-----------------------------------------------------------------------------
// idle system
// activate message from GTK
//-----------------------------------------------------------------------------
// activate message from GTK
//-----------------------------------------------------------------------------
static void gtk_menu_open_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_menu_open_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
wxWindow *win = menu->GetInvokingWindow();
if (win) win->GetEventHandler()->ProcessEvent( event );
}
wxWindow *win = menu->GetInvokingWindow();
if (win) win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// wxMenuBar
//-----------------------------------------------------------------------------
// wxMenuBar
// "activate"
//-----------------------------------------------------------------------------
// "activate"
//-----------------------------------------------------------------------------
static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle)
static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle)
menu->SendEvent(id, item->IsCheckable() ? item->IsChecked() : -1);
}
}
menu->SendEvent(id, item->IsCheckable() ? item->IsChecked() : -1);
}
}
//-----------------------------------------------------------------------------
// "select"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "select"
//-----------------------------------------------------------------------------
static void gtk_menu_hilight_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_menu_hilight_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
wxWindow *win = menu->GetInvokingWindow();
if (win) win->GetEventHandler()->ProcessEvent( event );
}
wxWindow *win = menu->GetInvokingWindow();
if (win) win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// "deselect"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "deselect"
//-----------------------------------------------------------------------------
static void gtk_menu_nolight_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_menu_nolight_callback( GtkWidget *widget, wxMenu *menu )
{
if (g_isIdle) wxapp_install_idle_handler();
if (win)
win->GetEventHandler()->ProcessEvent( event );
}
if (win)
win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// wxMenuItem
//-----------------------------------------------------------------------------
// wxMenuItem
static GtkMenuItemClass *parent_class = NULL;
static GtkMenuItemClass *parent_class = NULL;
#define BORDER_SPACING 3
#define PMAP_WIDTH 20
#define BORDER_SPACING 3
#define PMAP_WIDTH 20
return pixmap_menu_item_type;
}
return pixmap_menu_item_type;
}
/**
* gtk_pixmap_menu_item_new
*
/**
* gtk_pixmap_menu_item_new
*
gtk_widget_queue_resize(GTK_WIDGET(menu_item));
}
gtk_widget_queue_resize(GTK_WIDGET(menu_item));
}
+} // extern "C"
+
+#endif // !__WXGTK20__
// "expose_event" of m_mainWidget
//-----------------------------------------------------------------------------
// "expose_event" of m_mainWidget
//-----------------------------------------------------------------------------
static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
dc.DrawText( win->GetTitle(), 6, 3 );
}
}
dc.DrawText( win->GetTitle(), 6, 3 );
}
}
//-----------------------------------------------------------------------------
// "draw" of m_mainWidget
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
//-----------------------------------------------------------------------------
// "draw" of m_mainWidget
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
dc.DrawText( win->GetTitle(), 6, 3 );
}
}
dc.DrawText( win->GetTitle(), 6, 3 );
}
}
#endif
//-----------------------------------------------------------------------------
// "button_press_event" of m_mainWidget
//-----------------------------------------------------------------------------
#endif
//-----------------------------------------------------------------------------
// "button_press_event" of m_mainWidget
//-----------------------------------------------------------------------------
static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
//-----------------------------------------------------------------------------
// "button_release_event" of m_mainWidget
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_release_event" of m_mainWidget
//-----------------------------------------------------------------------------
static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
//-----------------------------------------------------------------------------
// "motion_notify_event" of m_mainWidget
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "motion_notify_event" of m_mainWidget
//-----------------------------------------------------------------------------
static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion *gdk_event, wxMiniFrame *win )
{
if (g_isIdle) wxapp_install_idle_handler();
//-----------------------------------------------------------------------------
// "clicked" of X system button
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "clicked" of X system button
//-----------------------------------------------------------------------------
static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxMiniFrame *mf )
{
if (g_isIdle) wxapp_install_idle_handler();
mf->Close();
}
static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxMiniFrame *mf )
{
if (g_isIdle) wxapp_install_idle_handler();
mf->Close();
}
//-----------------------------------------------------------------------------
// wxMiniFrame
//-----------------------------------------------------------------------------
// wxMiniFrame
// "switch_page"
//-----------------------------------------------------------------------------
// "switch_page"
//-----------------------------------------------------------------------------
static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
GtkNotebookPage *WXUNUSED(page),
gint page,
static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
GtkNotebookPage *WXUNUSED(page),
gint page,
notebook->m_inSwitchPage = FALSE;
}
notebook->m_inSwitchPage = FALSE;
}
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
{
if (g_isIdle)
static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
{
if (g_isIdle)
gtk_widget_size_allocate( win->m_wxwindow, alloc );
}
}
gtk_widget_size_allocate( win->m_wxwindow, alloc );
}
}
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
static gint
gtk_notebook_realized_callback( GtkWidget * WXUNUSED(widget), wxWindow *win )
{
static gint
gtk_notebook_realized_callback( GtkWidget * WXUNUSED(widget), wxWindow *win )
{
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
static gint gtk_notebook_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxNotebook *notebook )
{
if (g_isIdle)
static gint gtk_notebook_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxNotebook *notebook )
{
if (g_isIdle)
//-----------------------------------------------------------------------------
// InsertChild callback for wxNotebook
//-----------------------------------------------------------------------------
// InsertChild callback for wxNotebook
// "button_press"
//-----------------------------------------------------------------------------
// "button_press"
//-----------------------------------------------------------------------------
static gint gtk_popup_button_press (GtkWidget *widget, GdkEvent *gdk_event, wxPopupWindow* win )
{
GtkWidget *child = gtk_get_event_widget (gdk_event);
static gint gtk_popup_button_press (GtkWidget *widget, GdkEvent *gdk_event, wxPopupWindow* win )
{
GtkWidget *child = gtk_get_event_widget (gdk_event);
//-----------------------------------------------------------------------------
// "focus" from m_window
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "focus" from m_window
//-----------------------------------------------------------------------------
static gint gtk_dialog_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUSED(d), wxWindow *WXUNUSED(win) )
{
if (g_isIdle)
static gint gtk_dialog_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUSED(d), wxWindow *WXUNUSED(win) )
{
if (g_isIdle)
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus" );
return TRUE;
}
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus" );
return TRUE;
}
//-----------------------------------------------------------------------------
// "delete_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "delete_event"
//-----------------------------------------------------------------------------
bool gtk_dialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxPopupWindow *win )
{
if (g_isIdle)
bool gtk_dialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxPopupWindow *win )
{
if (g_isIdle)
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxPopupWindow *win )
{
if (g_isIdle)
static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxPopupWindow *win )
{
if (g_isIdle)
win->GtkUpdateSize();
}
}
win->GtkUpdateSize();
}
}
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
// "realize" from m_widget
/* we cannot MWM hints and icons before the widget has been realized,
so we do this directly after realization */
/* we cannot MWM hints and icons before the widget has been realized,
so we do this directly after realization */
static gint
gtk_dialog_realized_callback( GtkWidget * WXUNUSED(widget), wxPopupWindow *win )
{
static gint
gtk_dialog_realized_callback( GtkWidget * WXUNUSED(widget), wxPopupWindow *win )
{
//-----------------------------------------------------------------------------
// InsertChild for wxPopupWindow
//-----------------------------------------------------------------------------
// InsertChild for wxPopupWindow
// "clicked"
//-----------------------------------------------------------------------------
// "clicked"
//-----------------------------------------------------------------------------
static void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioBox *rb )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioBox *rb )
{
if (g_isIdle) wxapp_install_idle_handler();
event.SetEventObject( rb );
rb->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject( rb );
rb->GetEventHandler()->ProcessEvent(event);
}
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "key_press_event"
//-----------------------------------------------------------------------------
static gint gtk_radiobox_keypress_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxRadioBox *rb )
{
if (g_isIdle)
static gint gtk_radiobox_keypress_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxRadioBox *rb )
{
if (g_isIdle)
static gint gtk_radiobutton_focus_in( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxRadioBox *win )
static gint gtk_radiobutton_focus_in( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxRadioBox *win )
static gint gtk_radiobutton_focus_out( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxRadioBox *win )
static gint gtk_radiobutton_focus_out( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxRadioBox *win )
//-----------------------------------------------------------------------------
// wxRadioBox
//-----------------------------------------------------------------------------
// wxRadioBox
// "clicked"
//-----------------------------------------------------------------------------
// "clicked"
//-----------------------------------------------------------------------------
static
void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioButton *rb )
{
static
void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioButton *rb )
{
event.SetEventObject( rb );
rb->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( rb );
rb->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// wxRadioButton
//-----------------------------------------------------------------------------
// wxRadioButton
// FIXME: is GtkScrollType really passed to us as 2nd argument?
// FIXME: is GtkScrollType really passed to us as 2nd argument?
static void gtk_scrollbar_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrollBar *win )
static void gtk_scrollbar_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrollBar *win )
win->ProcessEvent( cevent );
*/
}
win->ProcessEvent( cevent );
*/
}
//-----------------------------------------------------------------------------
// "button_press_event" from slider
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_press_event" from slider
//-----------------------------------------------------------------------------
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxScrollBar *win )
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxScrollBar *win )
//-----------------------------------------------------------------------------
// "button_release_event" from slider
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_release_event" from slider
//-----------------------------------------------------------------------------
static gint
gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
GdkEventButton *WXUNUSED(gdk_event),
static gint
gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
GdkEventButton *WXUNUSED(gdk_event),
//-----------------------------------------------------------------------------
// wxScrollBar
//-----------------------------------------------------------------------------
// wxScrollBar
// "value_changed" from m_vAdjust
//-----------------------------------------------------------------------------
// "value_changed" from m_vAdjust
//-----------------------------------------------------------------------------
static void gtk_scrolled_window_vscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrolledWindow *win )
static void gtk_scrolled_window_vscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrolledWindow *win )
win->GtkVScroll( adjust->value,
GET_SCROLL_TYPE(GTK_SCROLLED_WINDOW(win->m_widget)->vscrollbar) );
}
win->GtkVScroll( adjust->value,
GET_SCROLL_TYPE(GTK_SCROLLED_WINDOW(win->m_widget)->vscrollbar) );
}
//-----------------------------------------------------------------------------
// "value_changed" from m_hAdjust
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "value_changed" from m_hAdjust
//-----------------------------------------------------------------------------
static void gtk_scrolled_window_hscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrolledWindow *win )
static void gtk_scrolled_window_hscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxScrolledWindow *win )
win->GtkHScroll( adjust->value,
GET_SCROLL_TYPE(GTK_SCROLLED_WINDOW(win->m_widget)->hscrollbar) );
}
win->GtkHScroll( adjust->value,
GET_SCROLL_TYPE(GTK_SCROLLED_WINDOW(win->m_widget)->hscrollbar) );
}
//-----------------------------------------------------------------------------
// "button_press_event" from scrollbar
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_press_event" from scrollbar
//-----------------------------------------------------------------------------
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win)
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win)
//-----------------------------------------------------------------------------
// "button_release_event" from scrollbar
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_release_event" from scrollbar
//-----------------------------------------------------------------------------
static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
GdkEventButton *WXUNUSED(gdk_event),
wxWindowGTK *win)
static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
GdkEventButton *WXUNUSED(gdk_event),
wxWindowGTK *win)
//-----------------------------------------------------------------------------
// InsertChild for wxScrolledWindow
//-----------------------------------------------------------------------------
// InsertChild for wxScrolledWindow
// "value_changed"
//-----------------------------------------------------------------------------
// "value_changed"
//-----------------------------------------------------------------------------
static void gtk_slider_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxSlider *win )
static void gtk_slider_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxSlider *win )
cevent.SetInt( value );
win->GetEventHandler()->ProcessEvent( cevent );
}
cevent.SetInt( value );
win->GetEventHandler()->ProcessEvent( cevent );
}
//-----------------------------------------------------------------------------
// wxSlider
//-----------------------------------------------------------------------------
// wxSlider
// "value_changed"
//-----------------------------------------------------------------------------
// "value_changed"
//-----------------------------------------------------------------------------
static void gtk_spinbutt_callback( GtkWidget *WXUNUSED(widget), wxSpinButton *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_spinbutt_callback( GtkWidget *WXUNUSED(widget), wxSpinButton *win )
{
if (g_isIdle) wxapp_install_idle_handler();
win->GetEventHandler()->ProcessEvent( event2 );
}
}
win->GetEventHandler()->ProcessEvent( event2 );
}
}
//-----------------------------------------------------------------------------
// wxSpinButton
//-----------------------------------------------------------------------------
// wxSpinButton
// "value_changed"
//-----------------------------------------------------------------------------
// "value_changed"
//-----------------------------------------------------------------------------
static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win )
{
if (g_isIdle) wxapp_install_idle_handler();
static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win )
{
if (g_isIdle) wxapp_install_idle_handler();
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
}
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// "changed"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "changed"
//-----------------------------------------------------------------------------
static void
gtk_spinctrl_text_changed_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win )
{
static void
gtk_spinctrl_text_changed_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win )
{
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
}
event.SetInt( (int)ceil(win->m_adjust->value) );
win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// wxSpinCtrl
//-----------------------------------------------------------------------------
// wxSpinCtrl
// "clicked" (internal from gtk_toolbar)
//-----------------------------------------------------------------------------
// "clicked" (internal from gtk_toolbar)
//-----------------------------------------------------------------------------
static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget),
wxToolBarTool *tool )
{
static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget),
wxToolBarTool *tool )
{
tool->SetPixmap(tool->GetBitmap());
}
}
tool->SetPixmap(tool->GetBitmap());
}
}
//-----------------------------------------------------------------------------
// "enter_notify_event" / "leave_notify_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "enter_notify_event" / "leave_notify_event"
//-----------------------------------------------------------------------------
static gint gtk_toolbar_tool_callback( GtkWidget *WXUNUSED(widget),
GdkEventCrossing *gdk_event,
wxToolBarTool *tool )
static gint gtk_toolbar_tool_callback( GtkWidget *WXUNUSED(widget),
GdkEventCrossing *gdk_event,
wxToolBarTool *tool )
//-----------------------------------------------------------------------------
// InsertChild callback for wxToolBar
//-----------------------------------------------------------------------------
// InsertChild callback for wxToolBar
// "insert_text" for GtkEntry
// ----------------------------------------------------------------------------
// "insert_text" for GtkEntry
// ----------------------------------------------------------------------------
static void
gtk_insert_text_callback(GtkEditable *editable,
const gchar *new_text,
static void
gtk_insert_text_callback(GtkEditable *editable,
const gchar *new_text,
win->GetEventHandler()->ProcessEvent( event );
}
}
win->GetEventHandler()->ProcessEvent( event );
}
}
#ifdef __WXGTK20__
// Implementation of wxTE_AUTO_URL for wxGTK2 by Mart Raudsepp,
#ifdef __WXGTK20__
// Implementation of wxTE_AUTO_URL for wxGTK2 by Mart Raudsepp,
static void
au_apply_tag_callback(GtkTextBuffer *buffer,
GtkTextTag *tag,
static void
au_apply_tag_callback(GtkTextBuffer *buffer,
GtkTextTag *tag,
if(tag == gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(buffer), "wxUrl"))
g_signal_stop_emission_by_name(buffer, "apply_tag");
}
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
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// GtkTextCharPredicates for gtk_text_iter_*_find_char
//-----------------------------------------------------------------------------
static gboolean
pred_whitespace (gunichar ch, gpointer user_data)
{
return g_unichar_isspace(ch);
}
static gboolean
pred_whitespace (gunichar ch, gpointer user_data)
{
return g_unichar_isspace(ch);
}
static gboolean
pred_non_whitespace (gunichar ch, gpointer user_data)
{
return !g_unichar_isspace(ch);
}
static gboolean
pred_non_whitespace (gunichar ch, gpointer user_data)
{
return !g_unichar_isspace(ch);
}
static gboolean
pred_nonpunct (gunichar ch, gpointer user_data)
{
return !g_unichar_ispunct(ch);
}
static gboolean
pred_nonpunct (gunichar ch, gpointer user_data)
{
return !g_unichar_ispunct(ch);
}
static gboolean
pred_nonpunct_or_slash (gunichar ch, gpointer user_data)
{
return !g_unichar_ispunct(ch) || ch == '/';
}
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
//-----------------------------------------------------------------------------
// Check for links between s and e and correct tags as necessary
// This function should be made match better while being efficient at one point.
// Most probably with a row of regular expressions.
// This function should be made match better while being efficient at one point.
// Most probably with a row of regular expressions.
static void
au_check_word( GtkTextIter *s, GtkTextIter *e )
{
static void
au_check_word( GtkTextIter *s, GtkTextIter *e )
{
g_signal_handler_unblock(buffer, signal_id);
}
}
g_signal_handler_unblock(buffer, signal_id);
}
}
static void
au_check_range(GtkTextIter *s,
GtkTextIter *range_end)
static void
au_check_range(GtkTextIter *s,
GtkTextIter *range_end)
gtk_text_iter_forward_find_char(&range_start, pred_non_whitespace, NULL, range_end);
}
}
gtk_text_iter_forward_find_char(&range_start, pred_non_whitespace, NULL, range_end);
}
}
//-----------------------------------------------------------------------------
// "insert-text" for GtkTextBuffer
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "insert-text" for GtkTextBuffer
//-----------------------------------------------------------------------------
static void
au_insert_text_callback(GtkTextBuffer *buffer,
GtkTextIter *end,
static void
au_insert_text_callback(GtkTextBuffer *buffer,
GtkTextIter *end,
au_check_range(&words_start, &words_end);
}
au_check_range(&words_start, &words_end);
}
//-----------------------------------------------------------------------------
// "delete-range" for GtkTextBuffer
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "delete-range" for GtkTextBuffer
//-----------------------------------------------------------------------------
static void
au_delete_range_callback(GtkTextBuffer *buffer,
GtkTextIter *start,
static void
au_delete_range_callback(GtkTextBuffer *buffer,
GtkTextIter *start,
au_check_range(start, end);
}
au_check_range(start, end);
}
// "changed"
//-----------------------------------------------------------------------------
// "changed"
//-----------------------------------------------------------------------------
static void
gtk_text_changed_callback( GtkWidget *widget, wxTextCtrl *win )
{
static void
gtk_text_changed_callback( GtkWidget *widget, wxTextCtrl *win )
{
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// "expose_event" from scrolled window and textview
//-----------------------------------------------------------------------------
#ifdef __WXGTK20__
//-----------------------------------------------------------------------------
// "expose_event" from scrolled window and textview
//-----------------------------------------------------------------------------
#ifdef __WXGTK20__
static gboolean
gtk_text_exposed_callback( GtkWidget *widget, GdkEventExpose *event, wxTextCtrl *win )
{
return TRUE;
}
static gboolean
gtk_text_exposed_callback( GtkWidget *widget, GdkEventExpose *event, wxTextCtrl *win )
{
return TRUE;
}
#endif
//-----------------------------------------------------------------------------
#endif
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
//-----------------------------------------------------------------------------
#ifndef __WXGTK20__
static void
gtk_scrollbar_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win )
{
static void
gtk_scrollbar_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win )
{
win->CalculateScrollbar();
}
win->CalculateScrollbar();
}
#endif
// ----------------------------------------------------------------------------
#endif
// ----------------------------------------------------------------------------
static GtkDrawCallback gs_gtk_text_draw = NULL;
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 )
{
{
if ( !wxIsInsideYield )
{
gs_gtk_text_draw(widget, rect);
}
}
gs_gtk_text_draw(widget, rect);
}
}
extern wxCursor g_globalCursor;
extern wxWindowGTK *g_delayedFocus;
extern wxCursor g_globalCursor;
extern wxWindowGTK *g_delayedFocus;
static void gtk_togglebutton_clicked_callback(GtkWidget *WXUNUSED(widget), wxToggleButton *cb)
{
if (g_isIdle)
static void gtk_togglebutton_clicked_callback(GtkWidget *WXUNUSED(widget), wxToggleButton *cb)
{
if (g_isIdle)
event.SetEventObject(cb);
cb->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject(cb);
cb->GetEventHandler()->ProcessEvent(event);
}
DEFINE_EVENT_TYPE(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED)
IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxEvtHandler)
IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxEvtHandler)
-extern "C" gint timeout_callback( gpointer data )
+extern "C" {
+static gint timeout_callback( gpointer data )
{
wxTimer *timer = (wxTimer*)data;
{
wxTimer *timer = (wxTimer*)data;
// "focus_in_event"
//-----------------------------------------------------------------------------
// "focus_in_event"
//-----------------------------------------------------------------------------
static gint gtk_frame_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxTopLevelWindowGTK *win )
static gint gtk_frame_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxTopLevelWindowGTK *win )
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
static gint gtk_frame_focus_out_callback( GtkWidget *widget,
GdkEventFocus *WXUNUSED(gdk_event),
wxTopLevelWindowGTK *win )
static gint gtk_frame_focus_out_callback( GtkWidget *widget,
GdkEventFocus *WXUNUSED(gdk_event),
wxTopLevelWindowGTK *win )
//-----------------------------------------------------------------------------
// "focus" from m_window
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "focus" from m_window
//-----------------------------------------------------------------------------
static gint gtk_frame_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUSED(d), wxWindow *WXUNUSED(win) )
{
if (g_isIdle)
static gint gtk_frame_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUSED(d), wxWindow *WXUNUSED(win) )
{
if (g_isIdle)
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus" );
return TRUE;
}
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus" );
return TRUE;
}
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxTopLevelWindowGTK *win )
{
if (g_isIdle)
static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxTopLevelWindowGTK *win )
{
if (g_isIdle)
win->GtkUpdateSize();
}
}
win->GtkUpdateSize();
}
}
//-----------------------------------------------------------------------------
// "delete_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "delete_event"
//-----------------------------------------------------------------------------
static gint gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxTopLevelWindowGTK *win )
{
if (g_isIdle)
static gint gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxTopLevelWindowGTK *win )
{
if (g_isIdle)
//-----------------------------------------------------------------------------
// "configure_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "configure_event"
//-----------------------------------------------------------------------------
static gint
gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxTopLevelWindowGTK *win )
{
static gint
gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxTopLevelWindowGTK *win )
{
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
// "realize" from m_widget
// we cannot MWM hints and icons before the widget has been realized,
// so we do this directly after realization
// we cannot MWM hints and icons before the widget has been realized,
// so we do this directly after realization
static void
gtk_frame_realized_callback( GtkWidget * WXUNUSED(widget),
wxTopLevelWindowGTK *win )
static void
gtk_frame_realized_callback( GtkWidget * WXUNUSED(widget),
wxTopLevelWindowGTK *win )
win->SetIcons( iconsOld );
}
}
win->SetIcons( iconsOld );
}
}
//-----------------------------------------------------------------------------
// "map_event" from m_widget
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "map_event" from m_widget
//-----------------------------------------------------------------------------
static void
gtk_frame_map_callback( GtkWidget * WXUNUSED(widget),
GdkEvent * WXUNUSED(event),
static void
gtk_frame_map_callback( GtkWidget * WXUNUSED(widget),
GdkEvent * WXUNUSED(event),
{
win->SetIconizeState(FALSE);
}
{
win->SetIconizeState(FALSE);
}
//-----------------------------------------------------------------------------
// "unmap_event" from m_widget
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "unmap_event" from m_widget
//-----------------------------------------------------------------------------
static void
gtk_frame_unmap_callback( GtkWidget * WXUNUSED(widget),
GdkEvent * WXUNUSED(event),
static void
gtk_frame_unmap_callback( GtkWidget * WXUNUSED(widget),
GdkEvent * WXUNUSED(event),
{
win->SetIconizeState(TRUE);
}
{
win->SetIconizeState(TRUE);
}
//-----------------------------------------------------------------------------
// "expose_event" of m_client
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "expose_event" of m_client
//-----------------------------------------------------------------------------
static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxWindow *win )
{
GtkPizza *pizza = GTK_PIZZA(widget);
static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxWindow *win )
{
GtkPizza *pizza = GTK_PIZZA(widget);
//-----------------------------------------------------------------------------
// "draw" of m_client
//-----------------------------------------------------------------------------
// "draw" of m_client
static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxWindow *win )
{
GtkPizza *pizza = GTK_PIZZA(widget);
static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxWindow *win )
{
GtkPizza *pizza = GTK_PIZZA(widget);
(char *)"base",
0, 0, -1, -1);
}
(char *)"base",
0, 0, -1, -1);
}
// subprocess routines
// ----------------------------------------------------------------------------
// subprocess routines
// ----------------------------------------------------------------------------
void GTK_EndProcessDetector(gpointer data, gint source,
GdkInputCondition WXUNUSED(condition) )
{
void GTK_EndProcessDetector(gpointer data, gint source,
GdkInputCondition WXUNUSED(condition) )
{
wxHandleProcessTermination(proc_data);
}
wxHandleProcessTermination(proc_data);
}
int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
{
int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
{
dh += hscroll_req.height;
dh += scroll_class->scrollbar_spacing;
}
dh += hscroll_req.height;
dh += scroll_class->scrollbar_spacing;
}
// "expose_event" of m_widget
//-----------------------------------------------------------------------------
// "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;
{
if (gdk_event->count > 0) return FALSE;
//-----------------------------------------------------------------------------
// "draw" of m_widget
//-----------------------------------------------------------------------------
// "draw" of m_widget
static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxWindowGTK *win )
{
draw_frame( widget, win );
}
static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxWindowGTK *win )
{
draw_frame( widget, win );
}
// "size_request" of m_widget
//-----------------------------------------------------------------------------
// "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)
void wxgtk_window_size_request_callback(GtkWidget *widget,
GtkRequisition *requisition,
wxWindow *win)
requisition->height = h;
requisition->width = w;
}
requisition->height = h;
requisition->width = w;
}
void wxgtk_combo_size_request_callback(GtkWidget *widget,
GtkRequisition *requisition,
wxComboBox *win)
void wxgtk_combo_size_request_callback(GtkWidget *widget,
GtkRequisition *requisition,
wxComboBox *win)
requisition->width = w - entry_req.width;
requisition->height = entry_req.height+4; // TODO: why +4?
}
requisition->width = w - entry_req.width;
requisition->height = entry_req.height+4; // TODO: why +4?
}
//-----------------------------------------------------------------------------
// "expose_event" of m_wxwindow
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "expose_event" of m_wxwindow
//-----------------------------------------------------------------------------
static int gtk_window_expose_callback( GtkWidget *widget,
GdkEventExpose *gdk_event,
wxWindow *win )
static int gtk_window_expose_callback( GtkWidget *widget,
GdkEventExpose *gdk_event,
wxWindow *win )
//-----------------------------------------------------------------------------
// "event" of m_wxwindow
//-----------------------------------------------------------------------------
// "event" of m_wxwindow
// There, we look for expose events ourselves whereas all other events are
// handled normally.
// There, we look for expose events ourselves whereas all other events are
// handled normally.
gint gtk_window_event_event_callback( GtkWidget *widget,
GdkEventExpose *event,
wxWindow *win )
gint gtk_window_event_event_callback( GtkWidget *widget,
GdkEventExpose *event,
wxWindow *win )
//-----------------------------------------------------------------------------
// "draw" of m_wxwindow
//-----------------------------------------------------------------------------
// "draw" of m_wxwindow
// This callback is a complete replacement of the gtk_pizza_draw() function,
// which is disabled.
// This callback is a complete replacement of the gtk_pizza_draw() function,
// which is disabled.
static void gtk_window_draw_callback( GtkWidget *widget,
GdkRectangle *rect,
wxWindow *win )
static void gtk_window_draw_callback( GtkWidget *widget,
GdkRectangle *rect,
wxWindow *win )
static gint gtk_window_key_press_callback( GtkWidget *widget,
GdkEventKey *gdk_event,
wxWindow *win )
static gint gtk_window_key_press_callback( GtkWidget *widget,
GdkEventKey *gdk_event,
wxWindow *win )
static void gtk_wxwindow_commit_cb (GtkIMContext *context,
const gchar *str,
wxWindow *window)
static void gtk_wxwindow_commit_cb (GtkIMContext *context,
const gchar *str,
wxWindow *window)
// "key_release_event" from any window
//-----------------------------------------------------------------------------
// "key_release_event" from any window
//-----------------------------------------------------------------------------
static gint gtk_window_key_release_callback( GtkWidget *widget,
GdkEventKey *gdk_event,
wxWindowGTK *win )
static gint gtk_window_key_release_callback( GtkWidget *widget,
GdkEventKey *gdk_event,
wxWindowGTK *win )
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_release_event" );
return TRUE;
}
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_release_event" );
return TRUE;
}
// ============================================================================
// the mouse events
// ============================================================================
// the mouse events
// "button_press_event"
//-----------------------------------------------------------------------------
// "button_press_event"
//-----------------------------------------------------------------------------
static gint gtk_window_button_press_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win )
static gint gtk_window_button_press_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win )
//-----------------------------------------------------------------------------
// "button_release_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_release_event"
//-----------------------------------------------------------------------------
static gint gtk_window_button_release_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win )
static gint gtk_window_button_release_callback( GtkWidget *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win )
//-----------------------------------------------------------------------------
// "motion_notify_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "motion_notify_event"
//-----------------------------------------------------------------------------
static gint gtk_window_motion_notify_callback( GtkWidget *widget,
GdkEventMotion *gdk_event,
wxWindowGTK *win )
static gint gtk_window_motion_notify_callback( GtkWidget *widget,
GdkEventMotion *gdk_event,
wxWindowGTK *win )
#ifdef __WXGTK20__
//-----------------------------------------------------------------------------
// "mouse_wheel_event"
//-----------------------------------------------------------------------------
#ifdef __WXGTK20__
//-----------------------------------------------------------------------------
// "mouse_wheel_event"
//-----------------------------------------------------------------------------
static gint gtk_window_wheel_callback (GtkWidget * widget,
static gint gtk_window_wheel_callback (GtkWidget * widget,
- GdkEventScroll * gdk_event,
- wxWindowGTK * win)
+ GdkEventScroll * gdk_event,
+ wxWindowGTK * win)
//-----------------------------------------------------------------------------
// "popup-menu"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "popup-menu"
//-----------------------------------------------------------------------------
static gboolean wxgtk_window_popup_menu_callback(GtkWidget*, wxWindowGTK* win)
{
wxContextMenuEvent event(
static gboolean wxgtk_window_popup_menu_callback(GtkWidget*, wxWindowGTK* win)
{
wxContextMenuEvent event(
event.SetEventObject(win);
return win->GetEventHandler()->ProcessEvent(event);
}
event.SetEventObject(win);
return win->GetEventHandler()->ProcessEvent(event);
}
#endif // __WXGTK20__
//-----------------------------------------------------------------------------
#endif // __WXGTK20__
//-----------------------------------------------------------------------------
return win->GetEventHandler()->ProcessEvent(eventFocus);
}
return win->GetEventHandler()->ProcessEvent(eventFocus);
}
static gint gtk_window_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxWindow *win )
static gint gtk_window_focus_in_callback( GtkWidget *widget,
GdkEvent *WXUNUSED(event),
wxWindow *win )
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "focus_out_event"
//-----------------------------------------------------------------------------
static gint gtk_window_focus_out_callback( GtkWidget *widget, GdkEventFocus *gdk_event, wxWindowGTK *win )
{
DEBUG_MAIN_THREAD
static gint gtk_window_focus_out_callback( GtkWidget *widget, GdkEventFocus *gdk_event, wxWindowGTK *win )
{
DEBUG_MAIN_THREAD
//-----------------------------------------------------------------------------
// "enter_notify_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "enter_notify_event"
//-----------------------------------------------------------------------------
static
gint gtk_window_enter_callback( GtkWidget *widget,
GdkEventCrossing *gdk_event,
static
gint gtk_window_enter_callback( GtkWidget *widget,
GdkEventCrossing *gdk_event,
//-----------------------------------------------------------------------------
// "leave_notify_event"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "leave_notify_event"
//-----------------------------------------------------------------------------
static gint gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_event, wxWindowGTK *win )
{
DEBUG_MAIN_THREAD
static gint gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_event, wxWindowGTK *win )
{
DEBUG_MAIN_THREAD
//-----------------------------------------------------------------------------
// "value_changed" from m_vAdjust
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "value_changed" from m_vAdjust
//-----------------------------------------------------------------------------
static void gtk_window_vscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxWindowGTK *win )
static void gtk_window_vscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxWindowGTK *win )
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// "value_changed" from m_hAdjust
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "value_changed" from m_hAdjust
//-----------------------------------------------------------------------------
static void gtk_window_hscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxWindowGTK *win )
static void gtk_window_hscroll_callback( GtkAdjustment *adjust,
SCROLLBAR_CBACK_ARG
wxWindowGTK *win )
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
//-----------------------------------------------------------------------------
// "button_press_event" from scrollbar
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_press_event" from scrollbar
//-----------------------------------------------------------------------------
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win)
static gint gtk_scrollbar_button_press_callback( GtkRange *widget,
GdkEventButton *gdk_event,
wxWindowGTK *win)
//-----------------------------------------------------------------------------
// "button_release_event" from scrollbar
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "button_release_event" from scrollbar
//-----------------------------------------------------------------------------
static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
GdkEventButton *WXUNUSED(gdk_event),
wxWindowGTK *win)
static gint gtk_scrollbar_button_release_callback( GtkRange *widget,
GdkEventButton *WXUNUSED(gdk_event),
wxWindowGTK *win)
// ----------------------------------------------------------------------------
// this wxWindowBase function is implemented here (in platform-specific file)
// ----------------------------------------------------------------------------
// this wxWindowBase function is implemented here (in platform-specific file)
return (wxWindow *)g_focusWindow;
}
return (wxWindow *)g_focusWindow;
}
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "realize" from m_widget
//-----------------------------------------------------------------------------
/* We cannot set colours and fonts before the widget has
been realized, so we do this directly after realization. */
/* We cannot set colours and fonts before the widget has
been realized, so we do this directly after realization. */
static gint
gtk_window_realized_callback( GtkWidget *m_widget, wxWindow *win )
{
static gint
gtk_window_realized_callback( GtkWidget *m_widget, wxWindow *win )
{
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "size_allocate"
//-----------------------------------------------------------------------------
static
void gtk_window_size_callback( GtkWidget *WXUNUSED(widget),
GtkAllocation *WXUNUSED(alloc),
static
void gtk_window_size_callback( GtkWidget *WXUNUSED(widget),
GtkAllocation *WXUNUSED(alloc),
win->GetEventHandler()->ProcessEvent( event );
}
}
win->GetEventHandler()->ProcessEvent( event );
}
}
static
void gtk_wxwindow_size_callback( GtkWidget* WXUNUSED_UNLESS_XIM(widget),
GtkAllocation* WXUNUSED_UNLESS_XIM(alloc),
static
void gtk_wxwindow_size_callback( GtkWidget* WXUNUSED_UNLESS_XIM(widget),
GtkAllocation* WXUNUSED_UNLESS_XIM(alloc),
//-----------------------------------------------------------------------------
// "realize" from m_wxwindow
//-----------------------------------------------------------------------------
// "realize" from m_wxwindow
/* Initialize XIM support */
/* Initialize XIM support */
static gint
gtk_wxwindow_realized_callback( GtkWidget * WXUNUSED_UNLESS_XIM(widget),
wxWindowGTK * WXUNUSED_UNLESS_XIM(win) )
static gint
gtk_wxwindow_realized_callback( GtkWidget * WXUNUSED_UNLESS_XIM(widget),
wxWindowGTK * WXUNUSED_UNLESS_XIM(win) )
//-----------------------------------------------------------------------------
// InsertChild for wxWindowGTK.
//-----------------------------------------------------------------------------
// InsertChild for wxWindowGTK.
// Suspends X11 errors. Used when we expect errors but they are not fatal
// for us.
// 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)
{
class wxX11ErrorsSuspender
{
public:
wxX11ErrorsSuspender(Display *d) : m_display(d)
{
- m_old = XSetErrorHandler(handler);
+ m_old = XSetErrorHandler(wxX11ErrorsSuspender_handler);
}
~wxX11ErrorsSuspender()
{
}
~wxX11ErrorsSuspender()
{
private:
Display *m_display;
int (*m_old)(Display*, XErrorEvent *);
private:
Display *m_display;
int (*m_old)(Display*, XErrorEvent *);
- static int handler(Display *, XErrorEvent *) { return 0; }
static void StartElementHnd(void *userData, const char *name, const char **atts)
{
wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData;
static void StartElementHnd(void *userData, const char *name, const char **atts)
{
wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData;
ctx->node = node;
ctx->lastAsText = NULL;
}
ctx->node = node;
ctx->lastAsText = NULL;
}
static void EndElementHnd(void *userData, const char* WXUNUSED(name))
{
wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData;
static void EndElementHnd(void *userData, const char* WXUNUSED(name))
{
wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData;
ctx->node = ctx->node->GetParent();
ctx->lastAsText = NULL;
}
ctx->node = ctx->node->GetParent();
ctx->lastAsText = NULL;
}
static void TextHnd(void *userData, const char *s, int len)
{
wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData;
static void TextHnd(void *userData, const char *s, int len)
{
wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData;
static void CommentHnd(void *userData, const char *data)
{
wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData;
static void CommentHnd(void *userData, const char *data)
{
wxXmlParsingContext *ctx = (wxXmlParsingContext*)userData;
}
ctx->lastAsText = NULL;
}
}
ctx->lastAsText = NULL;
}
static void DefaultHnd(void *userData, const char *s, int len)
{
// XML header:
static void DefaultHnd(void *userData, const char *s, int len)
{
// XML header:
ctx->version = buf.Mid(pos + 9).BeforeFirst(buf[(size_t)pos+8]);
}
}
ctx->version = buf.Mid(pos + 9).BeforeFirst(buf[(size_t)pos+8]);
}
}
static int UnknownEncodingHnd(void * WXUNUSED(encodingHandlerData),
const XML_Char *name, XML_Encoding *info)
{
static int UnknownEncodingHnd(void * WXUNUSED(encodingHandlerData),
const XML_Char *name, XML_Encoding *info)
{
bool wxXmlDocument::Load(wxInputStream& stream, const wxString& encoding)
{
bool wxXmlDocument::Load(wxInputStream& stream, const wxString& encoding)
{