1 /* 2 * Copyright (c) 2008-2009 Christian Hammond 3 * Copyright (c) 2008-2009 David Trowbridge 4 * 5 * Permission is hereby granted, free of charge, to any person obtaining a 6 * copy of this software and associated documentation files (the "Software"), 7 * to deal in the Software without restriction, including without limitation 8 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 * and/or sell copies of the Software, and to permit persons to whom the 10 * Software is furnished to do so, subject to the following conditions: 11 * 12 * The above copyright notice and this permission notice shall be included 13 * in all copies or substantial portions of the Software. 14 * 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 * THE SOFTWARE. 22 */ 23 #ifndef _GTK_INSPECTOR_WINDOW_H_ 24 #define _GTK_INSPECTOR_WINDOW_H_ 25 26 27 #include <gtk/gtkwindow.h> 28 29 #define GTK_TYPE_INSPECTOR_WINDOW (gtk_inspector_window_get_type()) 30 #define GTK_INSPECTOR_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_INSPECTOR_WINDOW, GtkInspectorWindow)) 31 #define GTK_INSPECTOR_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GTK_TYPE_INSPECTOR_WINDOW, GtkInspectorWindowClass)) 32 #define GTK_INSPECTOR_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_INSPECTOR_WINDOW)) 33 #define GTK_INSPECTOR_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GTK_TYPE_INSPECTOR_WINDOW)) 34 #define GTK_INSPECTOR_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GTK_TYPE_INSPECTOR_WINDOW, GtkInspectorWindowClass)) 35 36 37 #define TREE_TEXT_SCALE 0.8 38 #define TREE_CHECKBOX_SIZE (gint)(0.8 * 13) 39 40 typedef struct 41 { 42 GtkWindow parent; 43 44 GtkWidget *top_stack; 45 GtkWidget *object_stack; 46 GtkWidget *button_stack; 47 GtkWidget *object_tree; 48 GtkWidget *object_id; 49 GtkWidget *object_details; 50 GtkWidget *object_buttons; 51 GtkWidget *object_details_button; 52 GtkWidget *select_object; 53 GtkWidget *object_start_stack; 54 GtkWidget *object_center_stack; 55 GtkWidget *object_title; 56 GtkWidget *prop_list; 57 GtkWidget *child_prop_list; 58 GtkWidget *selector; 59 GtkWidget *signals_list; 60 GtkWidget *style_prop_list; 61 GtkWidget *classes_list; 62 GtkWidget *widget_css_node_tree; 63 GtkWidget *object_hierarchy; 64 GtkWidget *size_groups; 65 GtkWidget *data_list; 66 GtkWidget *actions; 67 GtkWidget *menu; 68 GtkWidget *misc_info; 69 GtkWidget *gestures; 70 GtkWidget *magnifier; 71 72 GtkWidget *invisible; 73 GtkWidget *selected_widget; 74 GtkWidget *flash_widget; 75 76 GList *extra_pages; 77 78 gboolean grabbed; 79 80 gint flash_count; 81 gint flash_cnx; 82 83 } GtkInspectorWindow; 84 85 typedef struct 86 { 87 GtkWindowClass parent; 88 } GtkInspectorWindowClass; 89 90 91 G_BEGIN_DECLS 92 93 GType gtk_inspector_window_get_type (void); 94 GtkWidget *gtk_inspector_window_new (void); 95 96 void gtk_inspector_flash_widget (GtkInspectorWindow *iw, 97 GtkWidget *widget); 98 void gtk_inspector_start_highlight (GtkWidget *widget); 99 void gtk_inspector_stop_highlight (GtkWidget *widget); 100 101 void gtk_inspector_on_inspect (GtkWidget *widget, 102 GtkInspectorWindow *iw); 103 104 void gtk_inspector_window_select_widget_under_pointer (GtkInspectorWindow *iw); 105 106 void gtk_inspector_window_rescan (GtkWidget *iw); 107 108 G_END_DECLS 109 110 111 #endif // _GTK_INSPECTOR_WINDOW_H_ 112 113 // vim: set et sw=2 ts=2: 114