#include "support.h"
ui::Widget
-lookup_widget( GtkWidget *widget,
- const gchar *widget_name ){
- GtkWidget *parent, *found_widget;
+lookup_widget(ui::Widget widget,
+ const gchar *widget_name)
+{
+ ui::Widget parent{ui::null};
- for (;; )
- {
- if ( GTK_IS_MENU( widget ) ) {
- parent = gtk_menu_get_attach_widget( GTK_MENU( widget ) );
- }
- else{
- parent = gtk_widget_get_parent(widget);
- }
- if ( !parent ) {
- parent = (GtkWidget*) g_object_get_data( G_OBJECT( widget ), "GladeParentKey" );
- }
- if ( parent == NULL ) {
- break;
- }
- widget = parent;
- }
+ for (;;) {
+ if (GTK_IS_MENU(widget)) {
+ parent = ui::Widget::from(gtk_menu_get_attach_widget(GTK_MENU(widget)));
+ } else {
+ parent = ui::Widget::from(gtk_widget_get_parent(widget));
+ }
+ if (!parent) {
+ parent = ui::Widget::from(g_object_get_data(G_OBJECT(widget), "GladeParentKey"));
+ }
+ if (parent == NULL) {
+ break;
+ }
+ widget = parent;
+ }
- found_widget = (GtkWidget*) g_object_get_data( G_OBJECT( widget ),
- widget_name );
- if ( !found_widget ) {
- g_warning( "Widget not found: %s", widget_name );
- }
- return ui::Widget(found_widget);
+ auto found_widget = ui::Widget::from(g_object_get_data(G_OBJECT(widget), widget_name));
+ if (!found_widget) {
+ g_warning("Widget not found: %s", widget_name);
+ }
+ return found_widget;
}