⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swfdec_debug_scripts.c

📁 Swfdec still is development software, but has also followed a rigid no-crashes-allowed policy. I b
💻 C
字号:
/* Swfdec * Copyright (C) 2006 Benjamin Otte <otte@gnome.org> * * 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.1 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor,  * Boston, MA  02110-1301  USA */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include "swfdec_debug_scripts.h"G_DEFINE_TYPE (SwfdecDebugScripts, swfdec_debug_scripts, GTK_TYPE_TREE_VIEW)enum {  COLUMN_SCRIPT,  COLUMN_NAME,  N_COLUMNS};static voidadd_row (gpointer scriptp, gpointer storep){  SwfdecDebuggerScript *script = scriptp;  GtkListStore *store = storep;  GtkTreeIter iter;  gtk_list_store_append (store, &iter);  gtk_list_store_set (store, &iter, COLUMN_SCRIPT, script,       COLUMN_NAME, script->script->name, -1);}static voidswfdec_debug_scripts_set_model (SwfdecDebugScripts *debug){  GtkListStore *store = gtk_list_store_new (N_COLUMNS, G_TYPE_POINTER, G_TYPE_STRING);  swfdec_debugger_foreach_script (debug->debugger, add_row, store);  gtk_tree_view_set_model (GTK_TREE_VIEW (debug), GTK_TREE_MODEL (store));  g_object_unref (store);}static voidswfdec_debug_scripts_add_script_cb (SwfdecDebugger *debugger,     SwfdecDebuggerScript *script, SwfdecDebugScripts *debug){  add_row (script, gtk_tree_view_get_model (GTK_TREE_VIEW (debug)));}static voidswfdec_debug_scripts_remove_script_cb (SwfdecDebugger *debugger,     SwfdecDebuggerScript *script, SwfdecDebugScripts *debug){  GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (debug));  GtkTreeIter iter;  gtk_tree_model_get_iter_first (model, &iter);  do {    gpointer p;    gtk_tree_model_get (model, &iter, COLUMN_SCRIPT, &p, -1);    if (p == script) {      gtk_list_store_remove (GTK_LIST_STORE (model), &iter);      return;    }  } while (gtk_tree_model_iter_next (model, &iter));  g_assert_not_reached ();}static voidswfdec_debug_scripts_set_debugger (SwfdecDebugScripts *debug, SwfdecDebugger *debugger){  if (debug->debugger) {    g_signal_handlers_disconnect_by_func (debug->debugger, swfdec_debug_scripts_remove_script_cb, debug);    g_signal_handlers_disconnect_by_func (debug->debugger, swfdec_debug_scripts_add_script_cb, debug);  }  debug->debugger = debugger;  if (debugger) {    g_signal_connect (debugger, "script-added", G_CALLBACK (swfdec_debug_scripts_add_script_cb), debug);    g_signal_connect (debugger, "script-removed", G_CALLBACK (swfdec_debug_scripts_remove_script_cb), debug);    swfdec_debug_scripts_set_model (debug);  } else {    gtk_tree_view_set_model (GTK_TREE_VIEW (debug), NULL);  }}static voidswfdec_debug_scripts_dispose (GObject *object){  SwfdecDebugScripts *debug = SWFDEC_DEBUG_SCRIPTS (object);  swfdec_debug_scripts_set_debugger (debug, NULL);  G_OBJECT_CLASS (swfdec_debug_scripts_parent_class)->dispose (object);}static voidswfdec_debug_scripts_class_init (SwfdecDebugScriptsClass * g_class){  GObjectClass *object_class = G_OBJECT_CLASS (g_class);  object_class->dispose = swfdec_debug_scripts_dispose;}static voidswfdec_debug_scripts_init (SwfdecDebugScripts * debug){}static voidswfdec_debug_scripts_add_columns (GtkTreeView *treeview){  GtkTreeViewColumn *column;  GtkCellRenderer *renderer;  renderer = gtk_cell_renderer_text_new ();  column = gtk_tree_view_column_new_with_attributes ("Script", renderer,    "text", COLUMN_NAME, NULL);  gtk_tree_view_column_set_sort_column_id (column, COLUMN_NAME);  gtk_tree_view_column_set_resizable (column, TRUE);  gtk_tree_view_append_column (treeview, column);}GtkWidget *swfdec_debug_scripts_new (SwfdecDebugger *debugger){  SwfdecDebugScripts *debug;    g_return_val_if_fail (SWFDEC_IS_DEBUGGER (debugger), NULL);  debug = g_object_new (SWFDEC_TYPE_DEBUG_SCRIPTS, 0);  swfdec_debug_scripts_add_columns (GTK_TREE_VIEW (debug));  swfdec_debug_scripts_set_debugger (debug, debugger);  return GTK_WIDGET (debug);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -