[MonoDevelop] Thoughts on Monodevelop's gtk designer:

Lluis Sanchez Gual lluis at novell.com
Wed Mar 18 07:18:20 EDT 2009

El dc 18 de 03 de 2009 a les 18:56 +0800, en/na kev va escriure:
> Lluis Sanchez Gual wrote:
> > El dl 16 de 03 de 2009 a les 20:48 +0800, en/na kev va escriure:
> >> Preface:
> >>
> >> I'm a complete newbie when it comes to gtk development.  Therefore the
> >> following observations and comments are coming from someone who has
> >> neither used monodevelop's gtk tools, or any other tools for gui
> >> development.  Due to some frustrations with monodevelop's designer, I
> >> ended trying to use Glade3 to do the UI.  I shall try to point out some
> >> of these frustrations.
> > 
> > I think some of the frustrations come from an incorrect use of the GTK
> > framework. In GTK, widgets rarely are placed in absolute positions.
> > Instead, you combine containers to design the layout of the window, and
> > put widgets on the containers, playing with relative alignments and
> > margins. GTK also supports absolute positioning of widgets with the
> > Fixed container, but MD doesn't yet have design tools for helping
> > building guis using this container, because even if you can do it, it is
> > not the right way of doing it.
> > 
> When designing something like this: http://openice.org/login.png , the
> fixed container seemed the most intuitive.  You are right though, I
> don't have any understanding (until now) on how the GTK framework works.

Try this:

      * In a new window drop an VBox
      * In the first placeholder drop a Label
      * In the second one drop an Entry
      * In the third one drop a Table container.
      * Right click on the table container and add two rows
      * Drop buttons in all placeholders.
      * Adjust the border width and spacing of the widgets.

> >> I'm using monodevelop from svn.
> >>
> >> 1) When adding a widget container, the default size is very small.  It
> >> appears to default to about 1px in height.  It feels to me that it
> >> should default to "fill" the entire canvas.  This applies to all of the
> >> containers I used, VButtonBox, Fixed, HButtonBox.
> > 
> > This happens when you put a container inside a Fixed. We can fix that.
> > However, if you want the container to fill the entire canvas, just don't
> > put it inside a Fixed.
> > 
> It also happens when you drop a Fixed container on an empty widget.
> >> 2) Glade's containers have grid markers.  These were useful to me when
> >> aligning buttons in specific areas.  In Designer, I had to guess.
> >> Snapping functionality would be a nice addition to grid lines in Designer.
> > 
> > We might add is, although I'm not very found of encouraging this way of
> > designing guis.
> > 
> >> 3) I really liked how in Glade3, the V/HButtonBox(s) had placeholders
> >> for the number of buttons it was allowing.  Dropping a button in these
> >> placeholders was very intuitive to me.
> >>
> >> 4) The points around the widgets, eight in total, gave me the initial
> >> impression that I could resize the widget by clicking on the point and
> >> dragging it.  I discovered later that those points are used for
> >> positioning?  The real way to resize the widget, in my case a button,
> >> was to adjust the requested width and height.  This was the case in
> >> Glade as well.
> >>
> >> I feel that it would be intuitive to allow the adjustment of the
> >> "requested width/height" by dragging the mouse on those points.
> > 
> > Yes, when resizing widgets in a Fixed that would help.
> > 
> The app I'm creating is touchscreen targeted.  Becaue of that, I need
> bigger than default buttons.  I think this would be useful in any
> container for that reason.

In GTK there are no default sizes, only minimum sizes. If you put a
button in a container it will take all space the container gives to it.
Try the above example. Buttons in the table will take all available
space that the table gives to them.


> -Tripzero
> _______________________________________________
> Monodevelop-list mailing list
> Monodevelop-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/monodevelop-list

More information about the Monodevelop-list mailing list