On 27 Mar 2000, Lars Clausen wrote:
>
> Hiya!
>
> With my CVS access set up, I'm now putting in some of the stuff that I've
> had floating around for a while. Some of it was sent to James previously,
> but never made it in, whether that was because he was too busy or
> disapproved of it, I don't know (even a harsh criticism would be better
> than silence -- feedback is gold). Since I'll no longer have the filter of
> James/Alex on my crazy ideas, expect me to present my ideas here to get the
> flukes shot down. So please let me know if these ideas are interesting or
> bad or fixable (especially those of you with UI wisdom).
Some of your patches were incomplete, which was a problem (if cvs doesn't
know about a file and you do a cvs diff, the new file will not be included
in the diff output), which I think I mentioned at the time. Also, I find
mime attachements easier to work with than uuencoded files.
It is also due to me being busy with other stuff, and not catching up with
the old patches (sorry about that).
>
> Just now I added two new menus on the right-mouse menu, Tools and Select.
> The Tools menu may seem superfluous, but it's there to allow keyboard
> shortcuts (and less mouse-movement). The Select menu has several different
> select methods. Let me know if they're too confusing/unusable. This
> includes the start of a transitive selection, namely Select Connected,
> which selects object immediately connected to the currently selected
> objects. I'll make a Transitive Connect soon.
Those sound like useful things. Speaking of menu enhancements: the middle
click menu is quite sparse at the moment. Does anyone think it would be a
good idea to add a few standard object actions to this menu (such as
delete, properties, and a few others I can't think of at the moment).
>
> I'll be adding persistent menu shortcuts soon, unfortunately they'll have
> to live in a bunch of different files because of the number of menus that
> are created dynamically. Interestingly, the menu on the sheet tabs isn't a
> 'real' menu, in that you can't add shortcuts, but that's a GTK problem.
You should be able to get gtk to dump the right click menu and toolbox
menu to a file and load it without trouble. That would cover most things
people would want to add shortcuts for.
>
> I'm a bit dissatisfied with the way arc endpoints are dragged. I'd like
> the rounding to change with the distance between the endpoints, such that
> the angle at the endpoints remain the same. I have code that does this.
> Any objections?
>
> James, about the filled bezier/polygon: Should we add two new tools,
> Filled Polygon and Filled Bezier? They're almost the same as the Polyline
> and Bezierline. I think having 'connect' and 'fill' options on Polyline and
> Bezierline would be a nicer solution. Hmmm... the properties will need
> some way to disable properties, like menus have.
It is probably better to have them as separate shapes, as you want them to
act differently (eg. have connection points rather than connectable
handles, etc). We should probably add some more distance functions (such
as distance from filled polygon, bezier curve, filled bezier, ellipse,
etc). This could also be used in the custom shape code to get correct
selection behaviour for them (at the moment it uses a rectangular bounding
box).
>
> For further discussion, here's my private TODO file. This doesn't mean I'm
> working on all of this, just that I'd like to see it done. Take your pick!
> I think a global TODO file on the web page would be nice for interested
> coders who want to see if there are exciting problems left to do (lots!).
>
> Zig-zag line: When removing an end-segment, don't move the endpoint.
>
> Units. I have the Properties code for this, but need to deal better with
> default values for line widths etc for various units, and the modularity
> problem that Properties are in app while the use is in lib.
How does this sound: add a property type (maybe called length), which is
the same as the current PROP_TYPE_REAL, except that it uses the
DiaUnitSpinner widget (which would have to be moved to lib/). This gives
some unit support to the spin button (eg. you can type in 12pt or 12in or
0.5ft and it should do the right thing).
>
> The direction of the initial endpoints of a zig-zag line should be
> settable.
Here is one way to do this: maybe we can look at the direction the handle
is being pulled with the HANDLE_MOVE_CREATE reason. Then we can set the
direction acoording to the drag direction.
Of course, this is a bit difficult to implement.
>
> The save-as requester should use the directory the file is from.
>
> Grid, zoom, margins, are not saved.
The paper margins should be getting saved. Grid and zoom are currently
view attributes rather than diagram attributes. I don't know how is best
to handle this if you have more than one view for the diagram open.
>
> Shortcuts for object menus don't give correct mouse position.
>
> Save should be blanked out when no changes were made.
>
> Add connection point for boxes etc.
I haven't looked too closely at how easy this is to do without breaking
old diagram files (as it may cause a renumbering of connection points).
It is a good idea though, and should be done to UML class objects if it
doesn't break stuff.
>
> Add fixed connection point (snapped to grid).
>
> Find better way to specify poly/bezier points at creation.
The drag idea I mentioned for orthconn's could be used for this. It is a
little difficult though.
>
> (If I sound a bit braggy about this, it's just because I'm happy to have
> CVS access. And I want to tell about new features so the doc people can
> get ahold of them.)
>
> -Lars
>
James.