#endif
#include "wx/window.h"
-#include "wx/dcclient.h"
-#include "wx/frame.h"
-#include "wx/app.h"
+
+#ifndef WX_PRECOMP
+ #include "wx/intl.h"
+ #include "wx/log.h"
+ #include "wx/app.h"
+ #include "wx/utils.h"
+ #include "wx/frame.h"
+ #include "wx/dcclient.h"
+#endif
+
#include "wx/layout.h"
-#include "wx/utils.h"
#include "wx/dialog.h"
#include "wx/msgdlg.h"
#include "wx/module.h"
#include "wx/menu.h"
#include "wx/statusbr.h"
-#include "wx/intl.h"
#include "wx/settings.h"
-#include "wx/log.h"
#include "wx/fontutil.h"
#ifdef __WXDEBUG__
if ( !g_captureWindow )
win = FindWindowForMouseEvent(win, event.m_x, event.m_y);
+ // reset the event object and id in case win changed.
+ event.SetEventObject( win );
+ event.SetId( win->GetId() );
+
if (win->GetEventHandler()->ProcessEvent( event ))
{
g_signal_stop_emission_by_name (widget, "button_press_event");
if ( !g_captureWindow )
win = FindWindowForMouseEvent(win, event.m_x, event.m_y);
+ // reset the event object and id in case win changed.
+ event.SetEventObject( win );
+ event.SetId( win->GetId() );
+
if (win->GetEventHandler()->ProcessEvent( event ))
{
g_signal_stop_emission_by_name (widget, "button_release_event");
else // no capture
{
win = FindWindowForMouseEvent(win, event.m_x, event.m_y);
+
+ // reset the event object and id in case win changed.
+ event.SetEventObject( win );
+ event.SetId( win->GetId() );
}
if ( !g_captureWindow )
}
//-----------------------------------------------------------------------------
-// "mouse_wheel_event"
+// "scroll_event", (mouse wheel event)
//-----------------------------------------------------------------------------
extern "C" {
static gboolean
-gtk_window_wheel_callback (GtkWidget * widget,
- GdkEventScroll * gdk_event,
- wxWindowGTK * win)
+window_scroll_event(GtkWidget*, GdkEventScroll* gdk_event, wxWindow* win)
{
DEBUG_MAIN_THREAD
if (g_isIdle)
wxapp_install_idle_handler();
- wxEventType event_type = wxEVT_NULL;
- if (gdk_event->direction == GDK_SCROLL_UP)
- event_type = wxEVT_MOUSEWHEEL;
- else if (gdk_event->direction == GDK_SCROLL_DOWN)
- event_type = wxEVT_MOUSEWHEEL;
- else
- return FALSE;
+ if (gdk_event->direction != GDK_SCROLL_UP &&
+ gdk_event->direction != GDK_SCROLL_DOWN)
+ {
+ return false;
+ }
- wxMouseEvent event( event_type );
+ wxMouseEvent event(wxEVT_MOUSEWHEEL);
// Can't use InitMouse macro because scroll events don't have button
event.SetTimestamp( gdk_event->time );
event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK);
event.SetId( win->GetId() );
event.SetTimestamp( gdk_event->time );
- if (win->GetEventHandler()->ProcessEvent( event ))
- {
- g_signal_stop_emission_by_name (widget, "scroll_event");
- return TRUE;
- }
-
- return FALSE;
+ return win->GetEventHandler()->ProcessEvent(event);
}
}
if (g_isIdle)
wxapp_install_idle_handler();
- if (!win->m_hasScrolling) return;
-
int client_width = 0;
int client_height = 0;
win->GetClientSize( &client_width, &client_height );
g_signal_connect (widget, "motion_notify_event",
G_CALLBACK (gtk_window_motion_notify_callback), this);
g_signal_connect (widget, "scroll_event",
- G_CALLBACK (gtk_window_wheel_callback), this);
+ G_CALLBACK (window_scroll_event), this);
g_signal_connect (widget, "popup_menu",
G_CALLBACK (wxgtk_window_popup_menu_callback), this);
g_signal_connect (widget, "enter_notify_event",
void wxWindowGTK::GtkScrolledWindowSetBorder(GtkWidget* w, int wxstyle)
{
//RN: Note that static controls usually have no border on gtk, so maybe
- //it makes sense to treat that as simply no border at the wx level
+ //it makes sense to treat that as simply no border at the wx level
//as well...
if (!(wxstyle & wxNO_BORDER) && !(wxstyle & wxBORDER_STATIC))
{
GtkShadowType gtkstyle;
-
+
if(wxstyle & wxBORDER_RAISED)
gtkstyle = GTK_SHADOW_OUT;
else if (wxstyle & wxBORDER_SUNKEN)
else //default
gtkstyle = GTK_SHADOW_IN;
- gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW(w),
+ gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW(w),
gtkstyle );
}
}