GtkWidget * get_notebook_page(GtkWidget * widget) { g_return_val_if_fail(GTK_IS_WIDGET(widget), NULL); while (widget && widget->parent && !gtk_type_is_a(GTK_WIDGET_TYPE(widget->parent), GTK_TYPE_NOTEBOOK)) widget = widget->parent; if (!(widget && widget->parent && gtk_type_is_a(GTK_WIDGET_TYPE(widget->parent), GTK_TYPE_NOTEBOOK))) return NULL; return widget; }
GtkTypeClass* gtk_type_check_class_cast (GtkTypeClass *klass, GtkType cast_type) { if (!klass) { g_warning ("invalid class cast from (NULL) pointer to `%s'", gtk_type_descriptive_name (cast_type)); return klass; } /* currently, GTK_TYPE_OBJECT is the lowest fundamental type * dominator for types that introduce classes. */ if (klass->type < GTK_TYPE_OBJECT) { g_warning ("invalid class type `%s' in class cast to `%s'", gtk_type_descriptive_name (klass->type), gtk_type_descriptive_name (cast_type)); return klass; } if (!gtk_type_is_a (klass->type, cast_type)) { g_warning ("invalid class cast from `%s' to `%s'", gtk_type_descriptive_name (klass->type), gtk_type_descriptive_name (cast_type)); return klass; } return klass; }
GtkTypeObject* gtk_type_check_object_cast (GtkTypeObject *type_object, GtkType cast_type) { if (!type_object) { g_warning ("invalid cast from (NULL) pointer to `%s'", gtk_type_descriptive_name (cast_type)); return type_object; } if (!type_object->klass) { g_warning ("invalid unclassed pointer in cast to `%s'", gtk_type_descriptive_name (cast_type)); return type_object; } /* currently, GTK_TYPE_OBJECT is the lowest fundamental type * dominator for types that introduce classes. */ if (type_object->klass->type < GTK_TYPE_OBJECT) { g_warning ("invalid class type `%s' in cast to `%s'", gtk_type_descriptive_name (type_object->klass->type), gtk_type_descriptive_name (cast_type)); return type_object; } if (!gtk_type_is_a (type_object->klass->type, cast_type)) { g_warning ("invalid cast from `%s' to `%s'", gtk_type_descriptive_name (type_object->klass->type), gtk_type_descriptive_name (cast_type)); return type_object; } return type_object; }