24#include <wx/nonownedwnd.h>
25#include <wx/settings.h>
33 wxColour bg = wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW );
36 double brightness = ( bg.Red() / 255.0 ) * 0.299 +
37 ( bg.Green() / 255.0 ) * 0.587 +
38 ( bg.Blue() / 255.0 ) * 0.117;
40 return brightness < 0.5;
55 GtkWindow* window = GTK_WINDOW( aWindow->GetHandle() );
58 return gtk_window_is_active( window );
81 case wxCURSOR_BULLSEYE:
103 GtkMenuItem* pMenuItem = GTK_MENU_ITEM( pItem );
104 GtkWidget* child = gtk_bin_get_child( GTK_BIN( pMenuItem ) );
105 GtkCellView* pCellView = GTK_CELL_VIEW( child );
106 GtkCellLayout* pCellLayout = GTK_CELL_LAYOUT( pCellView );
107 GtkCellArea* pCellArea = gtk_cell_layout_get_area( pCellLayout );
109 g_signal_handlers_block_matched( pCellArea, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, userdata );
115 AtkObject* atkObj = gtk_combo_box_get_popup_accessible( GTK_COMBO_BOX( aChoice->m_widget ) );
117 if( !atkObj || !GTK_IS_ACCESSIBLE( atkObj ) )
120 GtkWidget* widget = gtk_accessible_get_widget( GTK_ACCESSIBLE( atkObj ) );
122 if( !widget || !GTK_IS_MENU( widget ) )
125 GtkMenu* menu = GTK_MENU( widget );
135 GList* cells = gtk_cell_layout_get_cells( GTK_CELL_LAYOUT( aChoice->m_widget ) );
140 GtkCellRenderer* cell = (GtkCellRenderer*) cells->data;
145 g_object_set( G_OBJECT( cell ),
"ellipsize", PANGO_ELLIPSIZE_END,
nullptr );
148 g_list_free( cells );
156 GtkWidget* widget =
static_cast<GtkWidget*
>( aWindow->GetHandle() );
158 if( widget && gtk_check_version( 3, 10, 0 ) == nullptr )
159 val = gtk_widget_get_scale_factor( widget );
174 return wxSize( aWindow->GetSize().GetX() - wxSystemSettings::GetMetric( wxSYS_VSCROLL_X ),
175 aWindow->GetSize().GetY() - wxSystemSettings::GetMetric( wxSYS_HSCROLL_Y ) );
181 gtk_scrolled_window_set_overlay_scrolling( GTK_SCROLLED_WINDOW( aWindow->GetHandle() ),
188 gboolean allowed = 1;
190 g_object_get( gtk_settings_get_default(),
"gtk-menu-images", &allowed, NULL );
198 if( !wxGetEnv( wxT(
"WAYLAND_DISPLAY" ),
nullptr ) )
200 aWindow->WarpPointer( aX, aY );
204 GdkDisplay* disp = gtk_widget_get_display(
static_cast<GtkWidget*
>( aWindow->GetHandle() ) );
205 GdkSeat* seat = gdk_display_get_default_seat( disp );
206 GdkDevice* dev = gdk_seat_get_pointer( seat );
207 GdkWindow* win = gdk_device_get_window_at_position( dev,
nullptr,
nullptr );
208 GdkCursor* blank_cursor = gdk_cursor_new_for_display( disp, GDK_BLANK_CURSOR );
209 GdkCursor* cur_cursor = gdk_window_get_cursor( win );
212 g_object_ref( cur_cursor );
214 gdk_window_set_cursor( win, blank_cursor );
215 aWindow->WarpPointer( aX, aY );
216 gdk_window_set_cursor( win, cur_cursor );
static void disable_area_apply_attributes_cb(GtkWidget *pItem, gpointer userdata)
The following two functions are based on the "hack" contained in the attached patch at https://gitlab...
std::shared_ptr< PNS_LOG_VIEWER_OVERLAY > overlay