From: Andy W. <wi...@us...> - 2002-04-29 06:13:05
|
CVS Root: /cvsroot/gstreamer Module: gst-editor Changes by: wingo Date: Sun Apr 28 2002 23:13:04 PDT Log message: the night's work. Modified files: libs/gst/element-browser: browser.c browser.h caps-tree.c caps-tree.h Links: http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-editor/libs/gst/element-browser/browser.c.diff?r1=1.3&r2=1.4 http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-editor/libs/gst/element-browser/browser.h.diff?r1=1.3&r2=1.4 http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-editor/libs/gst/element-browser/caps-tree.c.diff?r1=1.1&r2=1.2 http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-editor/libs/gst/element-browser/caps-tree.h.diff?r1=1.1&r2=1.2 ====Begin Diffs==== Index: browser.c =================================================================== RCS file: /cvsroot/gstreamer/gst-editor/libs/gst/element-browser/browser.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- browser.c 29 Apr 2002 05:29:24 -0000 1.3 +++ browser.c 29 Apr 2002 06:12:51 -0000 1.4 @@ -149,7 +149,7 @@ frame = gtk_frame_new ("Element Details"); gtk_box_pack_start (GTK_BOX (vbox), frame, - TRUE, TRUE, 0); + FALSE, FALSE, 0); /* create the details table and put a title on it */ table = GTK_TABLE (gtk_table_new (2, 5, FALSE)); @@ -221,11 +221,17 @@ gtk_container_add (GTK_CONTAINER (frame), GTK_WIDGET (table)); - frame = gtk_frame_new ("Element capabilities"); + frame = gtk_frame_new ("Pads"); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); - browser->capstree = gst_element_browser_caps_tree_new (); - gtk_container_add (GTK_CONTAINER (frame), browser->capstree); + browser->pads = gst_element_browser_caps_tree_new (); + gtk_container_add (GTK_CONTAINER (frame), browser->pads); + + frame = gtk_frame_new ("Pad templates"); + gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); + + browser->padtemplates = gst_element_browser_caps_tree_new (); + gtk_container_add (GTK_CONTAINER (frame), browser->padtemplates); classtree = get_class_tree (); while (classtree) { @@ -312,6 +318,7 @@ GtkTreeModel *model; GtkTreeIter iter; GstElementFactory *factory; + static GstElement *element = NULL; /* if this change actually deselects something, ignore it... */ if (!gtk_tree_selection_get_selected (selection, &model, &iter)) @@ -331,7 +338,12 @@ gtk_label_set_text (GTK_LABEL (browser->author), factory->details->author); gtk_label_set_text (GTK_LABEL (browser->copyright), factory->details->copyright); - g_object_set (G_OBJECT (browser->capstree), "element-factory", browser->selected, NULL); + g_object_set (G_OBJECT (browser->padtemplates), "element-factory", browser->selected, NULL); + + if (element) + gst_object_unref (GST_OBJECT (element)); + element = gst_element_factory_create (browser->selected, NULL); + g_object_set (G_OBJECT (browser->pads), "element", element, NULL); } static GSList *get_class_tree (void) Index: browser.h =================================================================== RCS file: /cvsroot/gstreamer/gst-editor/libs/gst/element-browser/browser.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- browser.h 29 Apr 2002 05:29:24 -0000 1.3 +++ browser.h 29 Apr 2002 06:12:51 -0000 1.4 @@ -49,7 +49,8 @@ GtkWidget *author; GtkWidget *copyright; - GtkWidget *capstree; + GtkWidget *pads; + GtkWidget *padtemplates; }; struct _GstElementBrowserClass { Index: caps-tree.c =================================================================== RCS file: /cvsroot/gstreamer/gst-editor/libs/gst/element-browser/caps-tree.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- caps-tree.c 29 Apr 2002 01:14:42 -0000 1.1 +++ caps-tree.c 29 Apr 2002 06:12:51 -0000 1.2 @@ -47,7 +47,7 @@ static void update_caps_tree (GstElementBrowserCapsTree *ct); -static GtkTreeViewClass *parent_class = NULL; +static GtkScrolledWindowClass *parent_class = NULL; GType @@ -68,7 +68,7 @@ (GInstanceInitFunc)gst_element_browser_caps_tree_init, }; element_browser_caps_tree_type = - g_type_register_static (gtk_tree_view_get_type (), + g_type_register_static (gtk_scrolled_window_get_type (), "GstElementBrowserCapsTree", &element_browser_caps_tree_info, 0); } @@ -82,7 +82,7 @@ gobject_class = G_OBJECT_CLASS (klass); - parent_class = (GtkTreeViewClass*) g_type_class_ref (gtk_tree_view_get_type ()); + parent_class = (GtkScrolledWindowClass*) g_type_class_ref (gtk_scrolled_window_get_type ()); gobject_class->set_property = gst_element_browser_caps_tree_set_property; gobject_class->get_property = gst_element_browser_caps_tree_get_property; @@ -98,29 +98,30 @@ static void gst_element_browser_caps_tree_init (GstElementBrowserCapsTree *ct) { - GList *templs; - GtkWidget *tview; - GtkTreeStore *store; GtkTreeViewColumn *column; - GtkTreeIter iter, parent; - store = gtk_tree_store_new (NUM_COLUMNS, - G_TYPE_STRING, - G_TYPE_STRING); - tview = GTK_WIDGET (ct); - gtk_tree_view_set_model (GTK_TREE_VIEW (tview), GTK_TREE_MODEL (store)); + g_object_set (G_OBJECT (ct), "hadjustment", NULL, "vadjustment", NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (ct), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); + + ct->store = gtk_tree_store_new (NUM_COLUMNS, + G_TYPE_STRING, + G_TYPE_STRING); + ct->treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (ct->store)); + gtk_tree_view_set_model (GTK_TREE_VIEW (ct->treeview), GTK_TREE_MODEL (ct->store)); column = gtk_tree_view_column_new_with_attributes ("Name", gtk_cell_renderer_text_new (), "text", NAME_COLUMN, NULL); - gtk_tree_view_append_column (GTK_TREE_VIEW (tview), column); + gtk_tree_view_append_column (GTK_TREE_VIEW (ct->treeview), column); column = gtk_tree_view_column_new_with_attributes ("Info", gtk_cell_renderer_text_new (), "text", INFO_COLUMN, NULL); - gtk_tree_view_append_column (GTK_TREE_VIEW (tview), column); + gtk_tree_view_append_column (GTK_TREE_VIEW (ct->treeview), column); - gtk_widget_show (tview); + gtk_widget_show (ct->treeview); + gtk_container_add (GTK_CONTAINER (ct), ct->treeview); + gtk_widget_show (GTK_WIDGET (ct)); } static void @@ -181,7 +182,7 @@ GtkTreeStore *store; GtkTreeIter iter; - store = GTK_TREE_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (ct))); + store = ct->store; gtk_tree_store_clear (store); @@ -253,16 +254,18 @@ if (caps) { properties = gst_caps_get_props (caps); - props = properties->properties; - while (props) { - prop = (GstPropsEntry*)(props->data); - props = g_list_next(props); - - gtk_tree_store_append (store, &iter, parent); - gtk_tree_store_set (store, &iter, - NAME_COLUMN, gst_props_entry_get_name (prop), - INFO_COLUMN, print_prop (prop), - -1); + if (properties) { + props = properties->properties; + while (props) { + prop = (GstPropsEntry*)(props->data); + props = g_list_next(props); + + gtk_tree_store_append (store, &iter, parent); + gtk_tree_store_set (store, &iter, + NAME_COLUMN, gst_props_entry_get_name (prop), + INFO_COLUMN, print_prop (prop), + -1); + } } } } Index: caps-tree.h =================================================================== RCS file: /cvsroot/gstreamer/gst-editor/libs/gst/element-browser/caps-tree.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- caps-tree.h 29 Apr 2002 01:14:43 -0000 1.1 +++ caps-tree.h 29 Apr 2002 06:12:51 -0000 1.2 @@ -37,14 +37,17 @@ struct _GstElementBrowserCapsTree { - GtkTreeView parent; + GtkScrolledWindow parent; + GtkWidget *treeview; + GtkTreeStore *store; + GstElementFactory *factory; GstElement *element; }; struct _GstElementBrowserCapsTreeClass { - GtkTreeViewClass parent_class; + GtkScrolledWindowClass parent_class; }; |