Many changes:
- Introduced GTKGetWindow() which returns all GdkWindows associated with the given wxWindow - Renamed IsOwnGtkWindow() to GTKIsOwnWindow() to avoid confusion with the old virtual function (the new one is non-virtual and is implemented in terms of GTKGetWindow()) - Refactored/simplified event handlers code in gtk/window.cpp - Fixed some header guards names (__GTKFOO__ -> _WX_GTK_FOO_H_) - Added GTKUpdateCursor() which sets the current cursor for all windows returned by GTKGetWindow() - Factored out code from many different classes in wxControl::OnInternalIdle() which now updates the cursor, checks for internal focus and sends update UI events git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40815 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -30,7 +30,6 @@
|
||||
#include "wx/gtk/private.h"
|
||||
|
||||
extern bool g_blockEventsOnDrag;
|
||||
extern wxCursor g_globalCursor;
|
||||
|
||||
extern "C" {
|
||||
static void gtk_togglebutton_clicked_callback(GtkWidget *WXUNUSED(widget), wxToggleButton *cb)
|
||||
@@ -174,37 +173,12 @@ void wxToggleBitmapButton::DoApplyWidgetStyle(GtkRcStyle *style)
|
||||
gtk_widget_modify_style(GTK_BIN(m_widget)->child, style);
|
||||
}
|
||||
|
||||
bool wxToggleBitmapButton::IsOwnGtkWindow(GdkWindow *window)
|
||||
GdkWindow *
|
||||
wxToggleBitmapButton::GTKGetWindow(wxArrayGdkWindows& WXUNUSED(windows)) const
|
||||
{
|
||||
return window == GTK_BUTTON(m_widget)->event_window;
|
||||
return GTK_BUTTON(m_widget)->event_window;
|
||||
}
|
||||
|
||||
void wxToggleBitmapButton::OnInternalIdle()
|
||||
{
|
||||
// Check if we have to show window now
|
||||
if (GtkShowFromOnIdle()) return;
|
||||
|
||||
wxCursor cursor = m_cursor;
|
||||
|
||||
if (g_globalCursor.Ok())
|
||||
cursor = g_globalCursor;
|
||||
|
||||
GdkWindow *win = GTK_BUTTON(m_widget)->event_window;
|
||||
if ( win && cursor.Ok() )
|
||||
{
|
||||
/* I now set the cursor the anew in every OnInternalIdle call
|
||||
as setting the cursor in a parent window also effects the
|
||||
windows above so that checking for the current cursor is
|
||||
not possible. */
|
||||
|
||||
gdk_window_set_cursor(win, cursor.GetCursor());
|
||||
}
|
||||
|
||||
if (wxUpdateUIEvent::CanUpdate(this))
|
||||
UpdateWindowUI(wxUPDATE_UI_FROMIDLE);
|
||||
}
|
||||
|
||||
|
||||
// Get the "best" size for this control.
|
||||
wxSize wxToggleBitmapButton::DoGetBestSize() const
|
||||
{
|
||||
@@ -318,34 +292,12 @@ void wxToggleButton::DoApplyWidgetStyle(GtkRcStyle *style)
|
||||
gtk_widget_modify_style(GTK_BIN(m_widget)->child, style);
|
||||
}
|
||||
|
||||
bool wxToggleButton::IsOwnGtkWindow(GdkWindow *window)
|
||||
GdkWindow *
|
||||
wxToggleButton::GTKGetWindow(wxArrayGdkWindows& WXUNUSED(windows)) const
|
||||
{
|
||||
return window == GTK_BUTTON(m_widget)->event_window;
|
||||
return GTK_BUTTON(m_widget)->event_window;
|
||||
}
|
||||
|
||||
void wxToggleButton::OnInternalIdle()
|
||||
{
|
||||
wxCursor cursor = m_cursor;
|
||||
|
||||
if (g_globalCursor.Ok())
|
||||
cursor = g_globalCursor;
|
||||
|
||||
GdkWindow *win = GTK_BUTTON(m_widget)->event_window;
|
||||
if ( win && cursor.Ok() )
|
||||
{
|
||||
/* I now set the cursor the anew in every OnInternalIdle call
|
||||
as setting the cursor in a parent window also effects the
|
||||
windows above so that checking for the current cursor is
|
||||
not possible. */
|
||||
|
||||
gdk_window_set_cursor(win, cursor.GetCursor());
|
||||
}
|
||||
|
||||
if (wxUpdateUIEvent::CanUpdate(this))
|
||||
UpdateWindowUI(wxUPDATE_UI_FROMIDLE);
|
||||
}
|
||||
|
||||
|
||||
// Get the "best" size for this control.
|
||||
wxSize wxToggleButton::DoGetBestSize() const
|
||||
{
|
||||
|
Reference in New Issue
Block a user