WinForms Designer Reports 9, 10

1 view
Skip to first unread message

Ivan N. Zlatev

unread,
Aug 2, 2007, 8:22:30 AM8/2/07
to mono-soc-2007, mig...@ximian.com
=== Summary ===

Initially for week 9 of the GSoC program I had planned to implement
the System.Windows.Forms.Design.Behavior namespace, but I stumbled
upon a blocker - transparent windows in X11, which I haven't managed
to workaround. Instead from mid-week 9 to mid-week 10 I have been
hacking on a very experimental MonoDevelop WinFormsAddin, which ...
well doesn't work because of some GTK + GTK + MWF issues + remoting
issues and I am in the process of redesigning the code. I have most of
the new design on paper. Some of my time I have spend hacking on
parenting a MWF container in a GTK+ container, which ended as being
successful.

=== Repository Data ===

Start of week revision: 61
End of week revision: 65
Visual ChangeSet: http://monodt.i-nz.net/changeset?old_path=%2F&old=61&new_path=%2F&new=65
Plain Text ChangeSet: http://monodt.i-nz.net/changeset?format=diff&new=65&old=61&new_path=%2F&old_path=%2F

=== Details ===

1.) My design on how to implement the
System.Windows.Forms.Design.Behavior namespace requires a transparent
overlay on the design surface to act as an interaction layer for the
resizing/selection/moving/positioning of controls at design time. The
blocker is with MWF (note: not *in* MWF) on X11 and handling of
WS_EX_TRANSPARENT. Unfortunately while this works on Win32 (and
that's expected since this is handled by Windows itself) it does not
work on X11. For a couple of days I was hacking on getting it working
by researching onxlib/compiz/rgba visual, etc and ended up with a
patch (after a few iterations) for X11 MWF backend, which for some
reason doesn't work and I was unable to determine why -
http://monodt.i-nz.net/browser/mcs-patches/MWF_X_WS_EX_TRANSPARENT.patch?rev=62&format=txt.

2.) I have managed to hack up a way to parent a MWF container in a GTK
+ container. I have managed to parent the DesignSurface.View and drag
and drop and resize controls around. I still have to test some aspects
of the implementation, but that's once I have the MonoDevelop plugin
working.

3.) I have hacked up an experimental MonoDevelop WinFormsAddin which
ended up being broken in three aspects:

* The initial approach was to use a RemoteProcessObject to host
the visual part of the designing process (just the UI) as provided by
MonoDevelop and as utilized by the AspNetAddin. But my design involved
some surface initialization (not loading) on the non-remote part and
passing non-serializable objects to the remote part, which ended up
being impossible as one can imagine.

* The next approach was to drop remoting and run the editor
process on a separate thread with it's own GTK+ and MWF loops. It took
me two days to figure out that I can't have two gtk loops in one
process, while wondering what is going badly wrong with the code.

* The current work in progress approach will utilize remoting
again, but the surface initialization and services logic will be
completely redesigned.

It should be noted that the code in SVN is approach number two and I
will probably not drop the new code as I won't be able to finish it
off by the end of this week.

4.) I have updated my schedule to reflect the updated list of tasks.

=== Next Week ===

Next week I will be on vacation. The week after I will continue my
work on the WinFormsAddin and hopefully finish it off.

Reply all
Reply to author
Forward
0 new messages