Author: toshok
Date: 2005-04-15 03:46:56 -0400 (Fri, 15 Apr 2005)
New Revision: 43023

Added:
   trunk/monodevelop-visualizers/gtk/pixbufvis.glade
Removed:
   trunk/monodevelop-visualizers/gecko/geckovis.glade.bak
   trunk/monodevelop-visualizers/gecko/geckovis.gladep
   trunk/monodevelop-visualizers/gecko/geckovis.gladep.bak
Modified:
   trunk/monodevelop-visualizers/
   trunk/monodevelop-visualizers/ChangeLog
   trunk/monodevelop-visualizers/DebugAttributes.cs
   trunk/monodevelop-visualizers/Makefile.am
   trunk/monodevelop-visualizers/gecko/
   trunk/monodevelop-visualizers/gecko/GeckoWindow.cs
   trunk/monodevelop-visualizers/gtk/
   trunk/monodevelop-visualizers/gtk/PixbufVisualizer.cs
Log:
2005-04-15  Chris Toshok  <[EMAIL PROTECTED]>

        * Makefile.am: add support for gtk glade files and resources.

        * DebugAttributes.cs: change the pixbuf object source to
        GtkVisualizers.PixbufObjectSource from VisualizerObjectSource.

        * gtk/PixbufVisualizer.cs (PixbufWindow): new class to wrap the
        glade UI.
        (PixbufVisualizer): read the data as written by our custom
        objectsource.
        (PixbufObjectSource): new class, since Pixbufs aren't
        serializable, we have to write the data ourselves.




Property changes on: trunk/monodevelop-visualizers
___________________________________________________________________
Name: svn:ignore
   - *.dll
*.dll.mdb
mkinstalldirs
configure
Makefile.in
config.log
config.status
config.guess
config.sub
autom4te.cache
INSTALL
COPYING
missing
aclocal.m4
install-sh


   + *.dll
*.dll.mdb
mkinstalldirs
configure
Makefile.in
Makefile
config.log
config.status
config.guess
config.sub
autom4te.cache
INSTALL
COPYING
missing
aclocal.m4
install-sh



Modified: trunk/monodevelop-visualizers/ChangeLog
===================================================================
--- trunk/monodevelop-visualizers/ChangeLog     2005-04-15 04:42:30 UTC (rev 
43022)
+++ trunk/monodevelop-visualizers/ChangeLog     2005-04-15 07:46:56 UTC (rev 
43023)
@@ -0,0 +1,14 @@
+2005-04-15  Chris Toshok  <[EMAIL PROTECTED]>
+
+       * Makefile.am: add support for gtk glade files and resources.
+
+       * DebugAttributes.cs: change the pixbuf object source to
+       GtkVisualizers.PixbufObjectSource from VisualizerObjectSource.
+
+       * gtk/PixbufVisualizer.cs (PixbufWindow): new class to wrap the
+       glade UI.
+       (PixbufVisualizer): read the data as written by our custom
+       objectsource.
+       (PixbufObjectSource): new class, since Pixbufs aren't
+       serializable, we have to write the data ourselves.
+

Modified: trunk/monodevelop-visualizers/DebugAttributes.cs
===================================================================
--- trunk/monodevelop-visualizers/DebugAttributes.cs    2005-04-15 04:42:30 UTC 
(rev 43022)
+++ trunk/monodevelop-visualizers/DebugAttributes.cs    2005-04-15 07:46:56 UTC 
(rev 43023)
@@ -2,7 +2,7 @@
 using MonoDevelop.DebuggerVisualizers;
 
 [assembly: DebuggerVisualizer (typeof (GtkVisualizers.PixbufVisualizer),
-                              typeof (VisualizerObjectSource),
+                              typeof (GtkVisualizers.PixbufObjectSource),
                               Target = typeof (Gdk.Pixbuf),
                               Description = "View Pixbuf")]
 [assembly: DebuggerVisualizer (typeof (CorlibVisualizers.StringVisualizer),

Modified: trunk/monodevelop-visualizers/Makefile.am
===================================================================
--- trunk/monodevelop-visualizers/Makefile.am   2005-04-15 04:42:30 UTC (rev 
43022)
+++ trunk/monodevelop-visualizers/Makefile.am   2005-04-15 07:46:56 UTC (rev 
43023)
@@ -5,9 +5,9 @@
 
 GECKO_FLAGS= -define:ENABLE_GECKO_VISUALIZERS
 
-GLADE_FILES=gecko/geckovis.glade
+GECKO_GLADE_FILES=gecko/geckovis.glade
 
-RESOURCES= /resource:./gecko/geckovis.glade,geckovis.glade
+GECKO_RESOURCES= /resource:./gecko/geckovis.glade,geckovis.glade
 endif
 
 CSFILES=AssemblyInfo.cs \
@@ -16,6 +16,9 @@
        gtk/PixbufVisualizer.cs \
        $(GECKO_CSFILES)
 
+GLADE_FILES=gtk/pixbufvis.glade $(GECKO_GLADE_FILES)
+RESOURCES= /resource:./gtk/pixbufvis.glade,pixbufvis.glade $(GECKO_RESOURCES)
+
 CSFLAGS=-g $(GECKO_FLAGS)
 
 noinst_DATA=DebuggerVisualizers.dll


Property changes on: trunk/monodevelop-visualizers/gecko
___________________________________________________________________
Name: svn:ignore
   + *.gladep
*.bak


Modified: trunk/monodevelop-visualizers/gecko/GeckoWindow.cs
===================================================================
--- trunk/monodevelop-visualizers/gecko/GeckoWindow.cs  2005-04-15 04:42:30 UTC 
(rev 43022)
+++ trunk/monodevelop-visualizers/gecko/GeckoWindow.cs  2005-04-15 07:46:56 UTC 
(rev 43023)
@@ -43,7 +43,6 @@
     public Widget CustomWidgetHandler (XML xml, string func_name, string name, 
string string1, string string2, int int1, int int2)
     {
       if (func_name.Equals ("CreateGeckoControl")) {
-       Console.WriteLine ("CreateGeckoControl");
        return new Gecko.WebControl ();
       }
 

Deleted: trunk/monodevelop-visualizers/gecko/geckovis.glade.bak
===================================================================
--- trunk/monodevelop-visualizers/gecko/geckovis.glade.bak      2005-04-15 
04:42:30 UTC (rev 43022)
+++ trunk/monodevelop-visualizers/gecko/geckovis.glade.bak      2005-04-15 
07:46:56 UTC (rev 43023)
@@ -1,75 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd";>
-
-<glade-interface>
-
-<widget class="GtkDialog" id="gecko_dialog">
-  <property name="border_width">12</property>
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">gecko_dialog</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">True</property>
-  <property name="default_width">200</property>
-  <property name="default_height">300</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="has_separator">True</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child internal-child="action_area">
-       <widget class="GtkHButtonBox" id="dialog-action_area1">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-         <child>
-           <widget class="GtkButton" id="closebutton1">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label">gtk-close</property>
-             <property name="use_stock">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <property name="response_id">-7</property>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-         <property name="pack_type">GTK_PACK_END</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="Custom" id="gecko_control">
-         <property name="visible">True</property>
-         <property name="creation_function">CreateGeckoControl</property>
-         <property name="int1">0</property>
-         <property name="int2">0</property>
-         <property name="last_modification_time">Fri, 15 Apr 2005 01:01:08 
GMT</property>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>

Deleted: trunk/monodevelop-visualizers/gecko/geckovis.gladep
===================================================================
--- trunk/monodevelop-visualizers/gecko/geckovis.gladep 2005-04-15 04:42:30 UTC 
(rev 43022)
+++ trunk/monodevelop-visualizers/gecko/geckovis.gladep 2005-04-15 07:46:56 UTC 
(rev 43023)
@@ -1,8 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd";>
-
-<glade-project>
-  <name>Geckovis</name>
-  <program_name>geckovis</program_name>
-  <gnome_support>FALSE</gnome_support>
-</glade-project>

Deleted: trunk/monodevelop-visualizers/gecko/geckovis.gladep.bak
===================================================================
--- trunk/monodevelop-visualizers/gecko/geckovis.gladep.bak     2005-04-15 
04:42:30 UTC (rev 43022)
+++ trunk/monodevelop-visualizers/gecko/geckovis.gladep.bak     2005-04-15 
07:46:56 UTC (rev 43023)
@@ -1,8 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd";>
-
-<glade-project>
-  <name>Geckovis</name>
-  <program_name>geckovis</program_name>
-  <gnome_support>FALSE</gnome_support>
-</glade-project>


Property changes on: trunk/monodevelop-visualizers/gtk
___________________________________________________________________
Name: svn:ignore
   + *.gladep
*.bak


Modified: trunk/monodevelop-visualizers/gtk/PixbufVisualizer.cs
===================================================================
--- trunk/monodevelop-visualizers/gtk/PixbufVisualizer.cs       2005-04-15 
04:42:30 UTC (rev 43022)
+++ trunk/monodevelop-visualizers/gtk/PixbufVisualizer.cs       2005-04-15 
07:46:56 UTC (rev 43023)
@@ -1,22 +1,99 @@
+using System;
+using System.IO;
+using System.Runtime.InteropServices;
+
 using Gtk;
 using Gdk;
+using Glade;
+
 using MonoDevelop.DebuggerVisualizers;
 
 namespace GtkVisualizers
 {
+       class PixbufWindow 
+       {
+               [Widget] Gtk.Dialog pixbuf_dialog;
+               [Widget] Gtk.Image pixbuf_image;
+
+               public PixbufWindow (string title, Pixbuf pixbuf)
+               {
+                       Glade.XML ui;
+
+                       ui = Glade.XML.FromAssembly ("pixbufvis.glade", 
"pixbuf_dialog", null);
+                       ui.Autoconnect (this);
+
+                       pixbuf_dialog.Title = title;
+                       pixbuf_image.Pixbuf = pixbuf;
+               }
+
+               public void Show ()
+               {
+                       pixbuf_dialog.Run();
+                       pixbuf_dialog.Hide();
+               }
+
+       }
+
+       // Debugger side class
        public class PixbufVisualizer : DialogDebuggerVisualizer
        {
                protected override void Show (IDialogVisualizerService 
windowService, IVisualizerObjectProvider objectProvider)
                {
-                       Gtk.Window window = new Gtk.Window 
(Gtk.WindowType.Toplevel);
-                       Gdk.Pixbuf pixbuf = (Gdk.Pixbuf) 
objectProvider.GetObject ();
+                       Stream pixbuf_stream = objectProvider.GetData();
+                       BinaryReader reader = new BinaryReader (pixbuf_stream);
 
-                       Widget image = new Gtk.Image(pixbuf);
+                       bool has_alpha;
+                       int bits_per_sample, width, height, rowstride;
+                       Gdk.Pixbuf pixbuf;
 
-                       window.Title = "Pixbuf Visualizer";
-                       window.Add (image);
+                       has_alpha = reader.ReadBoolean ();
+                       bits_per_sample = reader.ReadInt32 ();
+                       width = reader.ReadInt32 ();
+                       height = reader.ReadInt32 ();
+                       rowstride = reader.ReadInt32 ();
 
-                       window.ShowAll ();
+                       int size = height * rowstride;
+
+                       byte[] pixbuf_data = new byte [size];
+
+                       reader.Read (pixbuf_data, 0, size);
+
+                       pixbuf = new Pixbuf (Gdk.Colorspace.Rgb, has_alpha, 
bits_per_sample, width, height);
+                       
+                       Marshal.Copy (pixbuf_data, 0, pixbuf.Pixels, size);
+
+                       PixbufWindow win = new PixbufWindow ("Pixbuf 
Visualizer", pixbuf);
+
+                       win.Show ();
                }
        }
+
+       // Debugee side class.  This is necessary since Gdk.Pixbuf
+       // isn't serializable, a requirement for
+       // VisualizerObjectSource.
+       public class PixbufObjectSource : VisualizerObjectSource
+       {
+               void WriteBuf (Stream outgoingData, byte[] buf)
+               {
+                       outgoingData.Write (buf, 0, buf.Length);
+               }
+
+               public override void GetData (object target, Stream 
outgoingData)
+               {
+                       Gdk.Pixbuf pixbuf = (Gdk.Pixbuf)target;
+
+                       WriteBuf (outgoingData, BitConverter.GetBytes 
(pixbuf.HasAlpha));
+                       WriteBuf (outgoingData, BitConverter.GetBytes 
(pixbuf.BitsPerSample));
+                       WriteBuf (outgoingData, BitConverter.GetBytes 
(pixbuf.Width));
+                       WriteBuf (outgoingData, BitConverter.GetBytes 
(pixbuf.Height));
+                       WriteBuf (outgoingData, BitConverter.GetBytes 
(pixbuf.Rowstride));
+
+                       int size = pixbuf.Height * pixbuf.Rowstride;
+
+                       byte[] pixel_buf = new byte[size];
+                       Marshal.Copy (pixbuf.Pixels, pixel_buf, 0, size);
+
+                       WriteBuf (outgoingData, pixel_buf);
+               }
+       }
 }

Added: trunk/monodevelop-visualizers/gtk/pixbufvis.glade
===================================================================
--- trunk/monodevelop-visualizers/gtk/pixbufvis.glade   2005-04-15 04:42:30 UTC 
(rev 43022)
+++ trunk/monodevelop-visualizers/gtk/pixbufvis.glade   2005-04-15 07:46:56 UTC 
(rev 43023)
@@ -0,0 +1,92 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd";>
+
+<glade-interface>
+
+<widget class="GtkDialog" id="pixbuf_dialog">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">dialog1</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">True</property>
+  <property name="default_width">300</property>
+  <property name="default_height">400</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox1">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+       <widget class="GtkHButtonBox" id="dialog-action_area1">
+         <property name="visible">True</property>
+         <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+         <child>
+           <widget class="GtkButton" id="closebutton1">
+             <property name="visible">True</property>
+             <property name="can_default">True</property>
+             <property name="can_focus">True</property>
+             <property name="label">gtk-close</property>
+             <property name="use_stock">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="response_id">-7</property>
+           </widget>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">True</property>
+         <property name="pack_type">GTK_PACK_END</property>
+       </packing>
+      </child>
+
+      <child>
+       <widget class="GtkScrolledWindow" id="scrolledwindow1">
+         <property name="visible">True</property>
+         <property name="can_focus">True</property>
+         <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+         <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+         <property name="shadow_type">GTK_SHADOW_IN</property>
+         <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+         <child>
+           <widget class="GtkViewport" id="viewport1">
+             <property name="visible">True</property>
+             <property name="shadow_type">GTK_SHADOW_IN</property>
+
+             <child>
+               <widget class="GtkImage" id="pixbuf_image">
+                 <property name="visible">True</property>
+                 <property name="xalign">0.5</property>
+                 <property name="yalign">0.5</property>
+                 <property name="xpad">0</property>
+                 <property name="ypad">0</property>
+               </widget>
+             </child>
+           </widget>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">True</property>
+         <property name="fill">True</property>
+       </packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+</glade-interface>

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to