inspector: Clean up GtkInspectorLogs

Drop the Private struct, dispose properly,
and don't derive from GtkBox.
This commit is contained in:
Matthias Clasen 2020-07-17 23:24:14 -04:00
parent facf78a5b6
commit 1bff328895
3 changed files with 82 additions and 84 deletions

View File

@ -40,10 +40,13 @@
#include "gtknative.h"
#include "gskdebugprivate.h"
#include "gskrendererprivate.h"
#include "gtkboxlayout.h"
struct _GtkInspectorLogsPrivate
struct _GtkInspectorLogs
{
GtkWidget parent;
GtkWidget *events;
GtkWidget *misc;
GtkWidget *dnd;
@ -77,21 +80,28 @@ struct _GtkInspectorLogsPrivate
GdkDisplay *display;
};
G_DEFINE_TYPE_WITH_PRIVATE (GtkInspectorLogs, gtk_inspector_logs, GTK_TYPE_BOX)
typedef struct _GtkInspectorLogsClass
{
GtkWidgetClass parent;
} GtkInspectorLogsClass;
G_DEFINE_TYPE (GtkInspectorLogs, gtk_inspector_logs, GTK_TYPE_WIDGET)
static void
gtk_inspector_logs_init (GtkInspectorLogs *logs)
{
logs->priv = gtk_inspector_logs_get_instance_private (logs);
gtk_widget_init_template (GTK_WIDGET (logs));
}
static void
finalize (GObject *object)
dispose (GObject *object)
{
//GtkInspectorLogs *logs = GTK_INSPECTOR_LOGS (object);
GtkWidget *child;
G_OBJECT_CLASS (gtk_inspector_logs_parent_class)->finalize (object);
while ((child = gtk_widget_get_first_child (GTK_WIDGET (object))))
gtk_widget_unparent (child);
G_OBJECT_CLASS (gtk_inspector_logs_parent_class)->dispose (object);
}
static void
@ -112,28 +122,28 @@ flag_toggled (GtkWidget *button,
guint flags;
GList *toplevels, *l;
flags = gdk_display_get_debug_flags (logs->priv->display);
update_flag (logs->priv->events, &flags, GDK_DEBUG_EVENTS);
update_flag (logs->priv->misc, &flags, GDK_DEBUG_MISC);
update_flag (logs->priv->dnd, &flags, GDK_DEBUG_DND);
update_flag (logs->priv->input, &flags, GDK_DEBUG_INPUT);
update_flag (logs->priv->eventloop, &flags, GDK_DEBUG_EVENTLOOP);
update_flag (logs->priv->frames, &flags, GDK_DEBUG_FRAMES);
update_flag (logs->priv->settings, &flags, GDK_DEBUG_SETTINGS);
update_flag (logs->priv->opengl, &flags, GDK_DEBUG_OPENGL);
update_flag (logs->priv->vulkan, &flags, GDK_DEBUG_VULKAN);
update_flag (logs->priv->selection, &flags, GDK_DEBUG_SELECTION);
update_flag (logs->priv->clipboard, &flags, GDK_DEBUG_CLIPBOARD);
gdk_display_set_debug_flags (logs->priv->display, flags);
flags = gdk_display_get_debug_flags (logs->display);
update_flag (logs->events, &flags, GDK_DEBUG_EVENTS);
update_flag (logs->misc, &flags, GDK_DEBUG_MISC);
update_flag (logs->dnd, &flags, GDK_DEBUG_DND);
update_flag (logs->input, &flags, GDK_DEBUG_INPUT);
update_flag (logs->eventloop, &flags, GDK_DEBUG_EVENTLOOP);
update_flag (logs->frames, &flags, GDK_DEBUG_FRAMES);
update_flag (logs->settings, &flags, GDK_DEBUG_SETTINGS);
update_flag (logs->opengl, &flags, GDK_DEBUG_OPENGL);
update_flag (logs->vulkan, &flags, GDK_DEBUG_VULKAN);
update_flag (logs->selection, &flags, GDK_DEBUG_SELECTION);
update_flag (logs->clipboard, &flags, GDK_DEBUG_CLIPBOARD);
gdk_display_set_debug_flags (logs->display, flags);
flags = gsk_get_debug_flags ();
update_flag (logs->priv->renderer, &flags, GSK_DEBUG_RENDERER);
update_flag (logs->priv->cairo, &flags, GSK_DEBUG_CAIRO);
update_flag (logs->priv->opengl_gsk, &flags, GSK_DEBUG_OPENGL);
update_flag (logs->priv->vulkan_gsk, &flags, GSK_DEBUG_VULKAN);
update_flag (logs->priv->shaders, &flags, GSK_DEBUG_SHADERS);
update_flag (logs->priv->surface, &flags, GSK_DEBUG_SURFACE);
update_flag (logs->priv->glyphcache, &flags, GSK_DEBUG_GLYPH_CACHE);
update_flag (logs->renderer, &flags, GSK_DEBUG_RENDERER);
update_flag (logs->cairo, &flags, GSK_DEBUG_CAIRO);
update_flag (logs->opengl_gsk, &flags, GSK_DEBUG_OPENGL);
update_flag (logs->vulkan_gsk, &flags, GSK_DEBUG_VULKAN);
update_flag (logs->shaders, &flags, GSK_DEBUG_SHADERS);
update_flag (logs->surface, &flags, GSK_DEBUG_SURFACE);
update_flag (logs->glyphcache, &flags, GSK_DEBUG_GLYPH_CACHE);
gsk_set_debug_flags (flags);
toplevels = gtk_window_list_toplevels ();
@ -141,7 +151,7 @@ flag_toggled (GtkWidget *button,
{
GtkWidget *toplevel = l->data;
if (gtk_root_get_display (GTK_ROOT (toplevel)) == logs->priv->display)
if (gtk_root_get_display (GTK_ROOT (toplevel)) == logs->display)
{
GskRenderer *renderer = gtk_native_get_renderer (GTK_NATIVE (toplevel));
if (renderer)
@ -150,17 +160,17 @@ flag_toggled (GtkWidget *button,
}
g_list_free (toplevels);
flags = gtk_get_display_debug_flags (logs->priv->display);
update_flag (logs->priv->actions, &flags, GTK_DEBUG_ACTIONS);
update_flag (logs->priv->builder, &flags, GTK_DEBUG_BUILDER);
update_flag (logs->priv->sizes, &flags, GTK_DEBUG_SIZE_REQUEST);
update_flag (logs->priv->icons, &flags, GTK_DEBUG_ICONTHEME);
update_flag (logs->priv->keybindings, &flags, GTK_DEBUG_KEYBINDINGS);
update_flag (logs->priv->modules, &flags, GTK_DEBUG_MODULES);
update_flag (logs->priv->printing, &flags, GTK_DEBUG_PRINTING);
update_flag (logs->priv->tree, &flags, GTK_DEBUG_TREE);
update_flag (logs->priv->text, &flags, GTK_DEBUG_TEXT);
gtk_set_display_debug_flags (logs->priv->display, flags);
flags = gtk_get_display_debug_flags (logs->display);
update_flag (logs->actions, &flags, GTK_DEBUG_ACTIONS);
update_flag (logs->builder, &flags, GTK_DEBUG_BUILDER);
update_flag (logs->sizes, &flags, GTK_DEBUG_SIZE_REQUEST);
update_flag (logs->icons, &flags, GTK_DEBUG_ICONTHEME);
update_flag (logs->keybindings, &flags, GTK_DEBUG_KEYBINDINGS);
update_flag (logs->modules, &flags, GTK_DEBUG_MODULES);
update_flag (logs->printing, &flags, GTK_DEBUG_PRINTING);
update_flag (logs->tree, &flags, GTK_DEBUG_TREE);
update_flag (logs->text, &flags, GTK_DEBUG_TEXT);
gtk_set_display_debug_flags (logs->display, flags);
}
static void
@ -169,46 +179,48 @@ gtk_inspector_logs_class_init (GtkInspectorLogsClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
object_class->finalize = finalize;
object_class->dispose = dispose;
gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/libgtk/inspector/logs.ui");
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, events);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, misc);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, dnd);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, input);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, eventloop);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, frames);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, settings);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, opengl);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, vulkan);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, selection);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, clipboard);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, events);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, misc);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, dnd);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, input);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, eventloop);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, frames);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, settings);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, opengl);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, vulkan);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, selection);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, clipboard);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, renderer);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, cairo);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, opengl_gsk);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, vulkan_gsk);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, shaders);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, surface);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, glyphcache);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, renderer);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, cairo);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, opengl_gsk);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, vulkan_gsk);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, shaders);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, surface);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, glyphcache);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, actions);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, builder);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, sizes);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, icons);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, keybindings);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, modules);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, printing);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, tree);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorLogs, text);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, actions);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, builder);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, sizes);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, icons);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, keybindings);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, modules);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, printing);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, tree);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorLogs, text);
gtk_widget_class_bind_template_callback (widget_class, flag_toggled);
gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BOX_LAYOUT);
}
void
gtk_inspector_logs_set_display (GtkInspectorLogs *logs,
GdkDisplay *display)
{
logs->priv->display = display;
logs->display = display;
}
// vim: set et sw=2 ts=2:

View File

@ -23,28 +23,14 @@
#ifndef _GTK_INSPECTOR_LOGS_H_
#define _GTK_INSPECTOR_LOGS_H_
#include <gtk/gtkbox.h>
#include <gtk/gtkwidget.h>
#define GTK_TYPE_INSPECTOR_LOGS (gtk_inspector_logs_get_type())
#define GTK_INSPECTOR_LOGS(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_INSPECTOR_LOGS, GtkInspectorLogs))
#define GTK_INSPECTOR_LOGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GTK_TYPE_INSPECTOR_LOGS, GtkInspectorLogsClass))
#define GTK_INSPECTOR_IS_LOGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_INSPECTOR_LOGS))
#define GTK_INSPECTOR_IS_LOGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GTK_TYPE_INSPECTOR_LOGS))
#define GTK_INSPECTOR_LOGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GTK_TYPE_INSPECTOR_LOGS, GtkInspectorLogsClass))
typedef struct _GtkInspectorLogsPrivate GtkInspectorLogsPrivate;
typedef struct _GtkInspectorLogs
{
GtkBox parent;
GtkInspectorLogsPrivate *priv;
} GtkInspectorLogs;
typedef struct _GtkInspectorLogsClass
{
GtkBoxClass parent;
} GtkInspectorLogsClass;
typedef struct _GtkInspectorLogs GtkInspectorLogs;
G_BEGIN_DECLS

View File

@ -1,5 +1,5 @@
<interface domain="gtk40">
<template class="GtkInspectorLogs" parent="GtkBox">
<template class="GtkInspectorLogs" parent="GtkWidget">
<child>
<object class="GtkBox">
<property name="margin-start">20</property>