[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.
Lluis.
>
> -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