inspector: Show resources
Show a list of all registered resources. If a resource looks like text or an image, we show its content.
This commit is contained in:
		@ -40,6 +40,8 @@ libgtkinspector_la_SOURCES = 		\
 | 
				
			|||||||
	python-hooks.c			\
 | 
						python-hooks.c			\
 | 
				
			||||||
	python-shell.h			\
 | 
						python-shell.h			\
 | 
				
			||||||
	python-shell.c			\
 | 
						python-shell.c			\
 | 
				
			||||||
 | 
						resource-list.h			\
 | 
				
			||||||
 | 
						resource-list.c			\
 | 
				
			||||||
	resources.h			\
 | 
						resources.h			\
 | 
				
			||||||
	resources.c			\
 | 
						resources.c			\
 | 
				
			||||||
	signals-list.h			\
 | 
						signals-list.h			\
 | 
				
			||||||
@ -84,6 +86,7 @@ templates = 				\
 | 
				
			|||||||
	general.ui 			\
 | 
						general.ui 			\
 | 
				
			||||||
	object-hierarchy.ui 		\
 | 
						object-hierarchy.ui 		\
 | 
				
			||||||
	prop-list.ui 			\
 | 
						prop-list.ui 			\
 | 
				
			||||||
 | 
						resource-list.ui		\
 | 
				
			||||||
	signals-list.ui			\
 | 
						signals-list.ui			\
 | 
				
			||||||
	visual.ui			\
 | 
						visual.ui			\
 | 
				
			||||||
	widget-tree.ui 			\
 | 
						widget-tree.ui 			\
 | 
				
			||||||
 | 
				
			|||||||
@ -33,6 +33,7 @@
 | 
				
			|||||||
#include "prop-list.h"
 | 
					#include "prop-list.h"
 | 
				
			||||||
#include "python-hooks.h"
 | 
					#include "python-hooks.h"
 | 
				
			||||||
#include "python-shell.h"
 | 
					#include "python-shell.h"
 | 
				
			||||||
 | 
					#include "resource-list.h"
 | 
				
			||||||
#include "resources.h"
 | 
					#include "resources.h"
 | 
				
			||||||
#include "signals-list.h"
 | 
					#include "signals-list.h"
 | 
				
			||||||
#include "visual.h"
 | 
					#include "visual.h"
 | 
				
			||||||
@ -58,6 +59,7 @@ gtk_inspector_init (void)
 | 
				
			|||||||
  g_type_ensure (GTK_TYPE_INSPECTOR_PROPERTY_CELL_RENDERER);
 | 
					  g_type_ensure (GTK_TYPE_INSPECTOR_PROPERTY_CELL_RENDERER);
 | 
				
			||||||
  g_type_ensure (GTK_TYPE_INSPECTOR_PROP_LIST);
 | 
					  g_type_ensure (GTK_TYPE_INSPECTOR_PROP_LIST);
 | 
				
			||||||
  g_type_ensure (GTK_TYPE_INSPECTOR_PYTHON_SHELL);
 | 
					  g_type_ensure (GTK_TYPE_INSPECTOR_PYTHON_SHELL);
 | 
				
			||||||
 | 
					  g_type_ensure (GTK_TYPE_INSPECTOR_RESOURCE_LIST);
 | 
				
			||||||
  g_type_ensure (GTK_TYPE_INSPECTOR_SIGNALS_LIST);
 | 
					  g_type_ensure (GTK_TYPE_INSPECTOR_SIGNALS_LIST);
 | 
				
			||||||
  g_type_ensure (GTK_TYPE_INSPECTOR_VISUAL);
 | 
					  g_type_ensure (GTK_TYPE_INSPECTOR_VISUAL);
 | 
				
			||||||
  g_type_ensure (GTK_TYPE_INSPECTOR_WIDGET_TREE);
 | 
					  g_type_ensure (GTK_TYPE_INSPECTOR_WIDGET_TREE);
 | 
				
			||||||
 | 
				
			|||||||
@ -9,6 +9,7 @@
 | 
				
			|||||||
    <file>general.ui</file>
 | 
					    <file>general.ui</file>
 | 
				
			||||||
    <file>object-hierarchy.ui</file>
 | 
					    <file>object-hierarchy.ui</file>
 | 
				
			||||||
    <file>prop-list.ui</file>
 | 
					    <file>prop-list.ui</file>
 | 
				
			||||||
 | 
					    <file>resource-list.ui</file>
 | 
				
			||||||
    <file>signals-list.ui</file>
 | 
					    <file>signals-list.ui</file>
 | 
				
			||||||
    <file>visual.ui</file>
 | 
					    <file>visual.ui</file>
 | 
				
			||||||
    <file>widget-tree.ui</file>
 | 
					    <file>widget-tree.ui</file>
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										172
									
								
								gtk/inspector/resource-list.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										172
									
								
								gtk/inspector/resource-list.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,172 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2014 Red Hat, Inc.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License as published by the Free Software Foundation; either
 | 
				
			||||||
 | 
					 * version 2 of the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "config.h"
 | 
				
			||||||
 | 
					#include <glib/gi18n-lib.h>
 | 
				
			||||||
 | 
					#include "resource-list.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  COLUMN_NAME,
 | 
				
			||||||
 | 
					  COLUMN_PATH
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _GtkInspectorResourceListPrivate
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GtkTreeStore *model;
 | 
				
			||||||
 | 
					  GtkTextBuffer *buffer;
 | 
				
			||||||
 | 
					  GtkWidget *image;
 | 
				
			||||||
 | 
					  GtkWidget *content;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					G_DEFINE_TYPE_WITH_PRIVATE (GtkInspectorResourceList, gtk_inspector_resource_list, GTK_TYPE_BOX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					load_resources_recurse (GtkInspectorResourceList *sl,
 | 
				
			||||||
 | 
					                        GtkTreeIter              *parent,
 | 
				
			||||||
 | 
					                        const gchar              *path)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  gchar **names;
 | 
				
			||||||
 | 
					  gint i;
 | 
				
			||||||
 | 
					  GtkTreeIter iter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  names = g_resources_enumerate_children (path, 0, NULL);
 | 
				
			||||||
 | 
					  for (i = 0; names[i]; i++)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      gint len;
 | 
				
			||||||
 | 
					      gchar *p;
 | 
				
			||||||
 | 
					      gboolean has_slash;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      p = g_strconcat (path, names[i], NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      len = strlen (names[i]);
 | 
				
			||||||
 | 
					      has_slash = names[i][len - 1] == '/';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if (has_slash)
 | 
				
			||||||
 | 
					        names[i][len - 1] = '\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      gtk_tree_store_append (sl->priv->model, &iter, parent);
 | 
				
			||||||
 | 
					      gtk_tree_store_set (sl->priv->model, &iter,
 | 
				
			||||||
 | 
					                          COLUMN_NAME, names[i],
 | 
				
			||||||
 | 
					                          COLUMN_PATH, p,
 | 
				
			||||||
 | 
					                          -1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if (has_slash)
 | 
				
			||||||
 | 
					        load_resources_recurse (sl, &iter, p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      g_free (p);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  g_strfreev (names);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					selection_changed (GtkTreeSelection         *selection,
 | 
				
			||||||
 | 
					                   GtkInspectorResourceList *rl)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GtkTreeIter iter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (gtk_tree_selection_get_selected (selection, NULL, &iter))
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      gchar *path;
 | 
				
			||||||
 | 
					      GBytes *bytes;
 | 
				
			||||||
 | 
					      gchar *type;
 | 
				
			||||||
 | 
					      gconstpointer data;
 | 
				
			||||||
 | 
					      gsize size;
 | 
				
			||||||
 | 
					      GError *error = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      gtk_tree_model_get (GTK_TREE_MODEL (rl->priv->model), &iter,
 | 
				
			||||||
 | 
					                          COLUMN_PATH, &path,
 | 
				
			||||||
 | 
					                          -1);
 | 
				
			||||||
 | 
					      if (g_str_has_suffix (path, "/"))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          gtk_text_buffer_set_text (rl->priv->buffer, "", -1);
 | 
				
			||||||
 | 
					          gtk_stack_set_visible_child_name (GTK_STACK (rl->priv->content), "text");
 | 
				
			||||||
 | 
					          goto out;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      bytes = g_resources_lookup_data (path, 0, &error);
 | 
				
			||||||
 | 
					      if (bytes == NULL)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          gtk_text_buffer_set_text (rl->priv->buffer, error->message, -1);
 | 
				
			||||||
 | 
					          g_error_free (error);
 | 
				
			||||||
 | 
					          gtk_stack_set_visible_child_name (GTK_STACK (rl->priv->content), "text");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          data = g_bytes_get_data (bytes, &size);
 | 
				
			||||||
 | 
					          type = g_content_type_guess (NULL, data, size, NULL);
 | 
				
			||||||
 | 
					          if (g_content_type_is_a (type, "text/*"))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					              gtk_text_buffer_set_text (rl->priv->buffer, data, -1);
 | 
				
			||||||
 | 
					              gtk_stack_set_visible_child_name (GTK_STACK (rl->priv->content), "text");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          else if (g_content_type_is_a (type, "image/*"))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					              gtk_image_set_from_resource (GTK_IMAGE (rl->priv->image), path);
 | 
				
			||||||
 | 
					              gtk_stack_set_visible_child_name (GTK_STACK (rl->priv->content), "image");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          else
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					              gchar *content;
 | 
				
			||||||
 | 
					              content = g_content_type_get_description (type);
 | 
				
			||||||
 | 
					              gtk_text_buffer_set_text (rl->priv->buffer, content, -1);
 | 
				
			||||||
 | 
					              g_free (content);
 | 
				
			||||||
 | 
					              gtk_stack_set_visible_child_name (GTK_STACK (rl->priv->content), "text");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          g_free (type);
 | 
				
			||||||
 | 
					          g_bytes_unref (bytes);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					out:
 | 
				
			||||||
 | 
					      g_free (path);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      gtk_text_buffer_set_text (rl->priv->buffer, "", -1);
 | 
				
			||||||
 | 
					      gtk_stack_set_visible_child_name (GTK_STACK (rl->priv->content), "text");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					load_resources (GtkInspectorResourceList *sl)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  load_resources_recurse (sl, NULL, "/");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					gtk_inspector_resource_list_init (GtkInspectorResourceList *sl)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  sl->priv = gtk_inspector_resource_list_get_instance_private (sl);
 | 
				
			||||||
 | 
					  gtk_widget_init_template (GTK_WIDGET (sl));
 | 
				
			||||||
 | 
					  load_resources (sl);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					gtk_inspector_resource_list_class_init (GtkInspectorResourceListClass *klass)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/inspector/resource-list.ui");
 | 
				
			||||||
 | 
					  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorResourceList, model);
 | 
				
			||||||
 | 
					  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorResourceList, buffer);
 | 
				
			||||||
 | 
					  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorResourceList, content);
 | 
				
			||||||
 | 
					  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorResourceList, image);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_widget_class_bind_template_callback (widget_class, selection_changed);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// vim: set et sw=2 ts=2:
 | 
				
			||||||
							
								
								
									
										52
									
								
								gtk/inspector/resource-list.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								gtk/inspector/resource-list.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2014 Red Hat, Inc.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License as published by the Free Software Foundation; either
 | 
				
			||||||
 | 
					 * version 2 of the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _GTK_INSPECTOR_RESOURCE_LIST_H_
 | 
				
			||||||
 | 
					#define _GTK_INSPECTOR_RESOURCE_LIST_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <gtk/gtk.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define GTK_TYPE_INSPECTOR_RESOURCE_LIST            (gtk_inspector_resource_list_get_type())
 | 
				
			||||||
 | 
					#define GTK_INSPECTOR_RESOURCE_LIST(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_INSPECTOR_RESOURCE_LIST, GtkInspectorResourceList))
 | 
				
			||||||
 | 
					#define GTK_INSPECTOR_RESOURCE_LIST_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass), GTK_TYPE_INSPECTOR_RESOURCE_LIST, GtkInspectorResourceListClass))
 | 
				
			||||||
 | 
					#define GTK_INSPECTOR_IS_RESOURCE_LIST(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_INSPECTOR_RESOURCE_LIST))
 | 
				
			||||||
 | 
					#define GTK_INSPECTOR_IS_RESOURCE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GTK_TYPE_INSPECTOR_RESOURCE_LIST))
 | 
				
			||||||
 | 
					#define GTK_INSPECTOR_RESOURCE_LIST_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), GTK_TYPE_INSPECTOR_RESOURCE_LIST, GtkInspectorResourceListClass))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct _GtkInspectorResourceListPrivate GtkInspectorResourceListPrivate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct _GtkInspectorResourceList
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GtkBox parent;
 | 
				
			||||||
 | 
					  GtkInspectorResourceListPrivate *priv;
 | 
				
			||||||
 | 
					} GtkInspectorResourceList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct _GtkInspectorResourceListClass
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GtkBoxClass parent;
 | 
				
			||||||
 | 
					} GtkInspectorResourceListClass;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					G_BEGIN_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GType      gtk_inspector_resource_list_get_type   (void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					G_END_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // _GTK_INSPECTOR_RESOURCE_LIST_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// vim: set et sw=2 ts=2:
 | 
				
			||||||
							
								
								
									
										92
									
								
								gtk/inspector/resource-list.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								gtk/inspector/resource-list.ui
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,92 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<interface domain="gtk30">
 | 
				
			||||||
 | 
					  <object class="GtkTreeStore" id="model">
 | 
				
			||||||
 | 
					    <columns>
 | 
				
			||||||
 | 
					      <column type="gchararray"/>
 | 
				
			||||||
 | 
					      <column type="gchararray"/>
 | 
				
			||||||
 | 
					    </columns>
 | 
				
			||||||
 | 
					  </object>
 | 
				
			||||||
 | 
					  <object class="GtkTextBuffer" id="buffer">
 | 
				
			||||||
 | 
					    <property name="text"></property>
 | 
				
			||||||
 | 
					  </object>
 | 
				
			||||||
 | 
					  <template class="GtkInspectorResourceList" parent="GtkBox">
 | 
				
			||||||
 | 
					    <property name="orientation">horizontal</property>
 | 
				
			||||||
 | 
					    <child>
 | 
				
			||||||
 | 
					      <object class="GtkScrolledWindow">
 | 
				
			||||||
 | 
					        <property name="visible">True</property>
 | 
				
			||||||
 | 
					        <property name="expand">True</property>
 | 
				
			||||||
 | 
					        <property name="hscrollbar-policy">automatic</property>
 | 
				
			||||||
 | 
					        <property name="vscrollbar-policy">always</property>
 | 
				
			||||||
 | 
					        <property name="shadow-type">in</property>
 | 
				
			||||||
 | 
					        <child>
 | 
				
			||||||
 | 
					          <object class= "GtkTreeView">
 | 
				
			||||||
 | 
					            <property name="visible">True</property>
 | 
				
			||||||
 | 
					            <property name="model">model</property>
 | 
				
			||||||
 | 
					            <child internal-child="selection">
 | 
				
			||||||
 | 
					              <object class="GtkTreeSelection">
 | 
				
			||||||
 | 
					                <property name="mode">single</property>
 | 
				
			||||||
 | 
					                <signal name="changed" handler="selection_changed"/>
 | 
				
			||||||
 | 
					              </object>
 | 
				
			||||||
 | 
					            </child>
 | 
				
			||||||
 | 
					            <child>
 | 
				
			||||||
 | 
					              <object class="GtkTreeViewColumn">
 | 
				
			||||||
 | 
					                <property name="title" translatable="yes">Path</property>
 | 
				
			||||||
 | 
					                <child>
 | 
				
			||||||
 | 
					                  <object class="GtkCellRendererText">
 | 
				
			||||||
 | 
					                    <property name="scale">0.8</property>
 | 
				
			||||||
 | 
					                  </object>
 | 
				
			||||||
 | 
					                  <attributes>
 | 
				
			||||||
 | 
					                    <attribute name="text">0</attribute>
 | 
				
			||||||
 | 
					                  </attributes>
 | 
				
			||||||
 | 
					                </child>
 | 
				
			||||||
 | 
					              </object>
 | 
				
			||||||
 | 
					            </child>
 | 
				
			||||||
 | 
					          </object>
 | 
				
			||||||
 | 
					        </child>
 | 
				
			||||||
 | 
					      </object>
 | 
				
			||||||
 | 
					    </child>
 | 
				
			||||||
 | 
					    <child>
 | 
				
			||||||
 | 
					      <object class="GtkStack" id="content">
 | 
				
			||||||
 | 
					        <property name="visible">True</property>
 | 
				
			||||||
 | 
					        <child>
 | 
				
			||||||
 | 
					          <object class="GtkScrolledWindow">
 | 
				
			||||||
 | 
					            <property name="visible">True</property>
 | 
				
			||||||
 | 
					            <property name="expand">True</property>
 | 
				
			||||||
 | 
					            <property name="hscrollbar-policy">automatic</property>
 | 
				
			||||||
 | 
					            <property name="vscrollbar-policy">automatic</property>
 | 
				
			||||||
 | 
					            <property name="shadow-type">in</property>
 | 
				
			||||||
 | 
					            <child>
 | 
				
			||||||
 | 
					              <object class="GtkTextView">
 | 
				
			||||||
 | 
					                <property name="visible">True</property>
 | 
				
			||||||
 | 
					                <property name="editable">False</property>
 | 
				
			||||||
 | 
					                <property name="buffer">buffer</property>
 | 
				
			||||||
 | 
					              </object>
 | 
				
			||||||
 | 
					            </child>
 | 
				
			||||||
 | 
					          </object>
 | 
				
			||||||
 | 
					          <packing>
 | 
				
			||||||
 | 
					            <property name="name">text</property>
 | 
				
			||||||
 | 
					          </packing>
 | 
				
			||||||
 | 
					        </child>
 | 
				
			||||||
 | 
					        <child>
 | 
				
			||||||
 | 
					          <object class="GtkScrolledWindow">
 | 
				
			||||||
 | 
					            <property name="visible">True</property>
 | 
				
			||||||
 | 
					            <property name="expand">True</property>
 | 
				
			||||||
 | 
					            <property name="hscrollbar-policy">automatic</property>
 | 
				
			||||||
 | 
					            <property name="vscrollbar-policy">automatic</property>
 | 
				
			||||||
 | 
					            <property name="shadow-type">in</property>
 | 
				
			||||||
 | 
					            <child>
 | 
				
			||||||
 | 
					              <object class="GtkImage" id="image">
 | 
				
			||||||
 | 
					                <property name="visible">True</property>
 | 
				
			||||||
 | 
					                <property name="halign">center</property>
 | 
				
			||||||
 | 
					                <property name="valign">center</property>
 | 
				
			||||||
 | 
					              </object>
 | 
				
			||||||
 | 
					            </child>
 | 
				
			||||||
 | 
					          </object>
 | 
				
			||||||
 | 
					          <packing>
 | 
				
			||||||
 | 
					            <property name="name">image</property>
 | 
				
			||||||
 | 
					          </packing>
 | 
				
			||||||
 | 
					        </child>
 | 
				
			||||||
 | 
					      </object>
 | 
				
			||||||
 | 
					    </child>
 | 
				
			||||||
 | 
					  </template>
 | 
				
			||||||
 | 
					</interface>
 | 
				
			||||||
@ -231,6 +231,17 @@
 | 
				
			|||||||
            <property name="label" translatable="yes">Custom CSS</property>
 | 
					            <property name="label" translatable="yes">Custom CSS</property>
 | 
				
			||||||
          </object>
 | 
					          </object>
 | 
				
			||||||
        </child>
 | 
					        </child>
 | 
				
			||||||
 | 
					        <child>
 | 
				
			||||||
 | 
					          <object class="GtkInspectorResourceList">
 | 
				
			||||||
 | 
					            <property name="visible">True</property>
 | 
				
			||||||
 | 
					          </object>
 | 
				
			||||||
 | 
					        </child>
 | 
				
			||||||
 | 
					        <child type="tab">
 | 
				
			||||||
 | 
					          <object class="GtkLabel">
 | 
				
			||||||
 | 
					            <property name="visible">True</property>
 | 
				
			||||||
 | 
					            <property name="label" translatable="yes">Resources</property>
 | 
				
			||||||
 | 
					          </object>
 | 
				
			||||||
 | 
					        </child>
 | 
				
			||||||
        <child>
 | 
					        <child>
 | 
				
			||||||
          <object class="GtkInspectorGeneral">
 | 
					          <object class="GtkInspectorGeneral">
 | 
				
			||||||
            <property name="visible">True</property>
 | 
					            <property name="visible">True</property>
 | 
				
			||||||
 | 
				
			|||||||
@ -279,6 +279,7 @@ gtk/inspector/general.ui.h
 | 
				
			|||||||
gtk/inspector/inspect-button.c
 | 
					gtk/inspector/inspect-button.c
 | 
				
			||||||
gtk/inspector/object-hierarchy.ui.h
 | 
					gtk/inspector/object-hierarchy.ui.h
 | 
				
			||||||
gtk/inspector/prop-list.ui.h
 | 
					gtk/inspector/prop-list.ui.h
 | 
				
			||||||
 | 
					gtk/inspector/resource-path.ui.h
 | 
				
			||||||
gtk/inspector/signals-list.c
 | 
					gtk/inspector/signals-list.c
 | 
				
			||||||
gtk/inspector/signals-list.ui.h
 | 
					gtk/inspector/signals-list.ui.h
 | 
				
			||||||
gtk/inspector/visual.ui.h
 | 
					gtk/inspector/visual.ui.h
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user