Menu

First Impressions

Rui Curado
2007-08-03
2013-04-08
  • Rui Curado

    Rui Curado - 2007-08-03

    Hi,

    Your wxWidgets addon looks great. I tried the pre-compiled example and it shows a lot of promise.

    I intend to use your addon in the near future, as soon as it matures. Therefore I intend to regularly check your progress and give some help/test when possible.

    Some first comments:

    Problems:

    - When you use a bitmap, it is correctly displayed but its rectangle is larger than the bitmap

    Enhancements:

    - This addon is certainly going to be used on an application that must associate internal objects to the diagram's elements. So, an easy way to associate data and objects to each of the diagram's items (including connecting lines) is needed. Including this extra data on the XML file is also necessary.
    - Shapes should have an associated text
    - Text attributes should be editable (font, color and size)

    Rui Curado

     
    • Michal Bližňák

      Hi Rui, thank you for your interest and offered help! You are absolutely right that the library is teenager so far, but I hope it will grow up fast! :)

      Now some comments to your suggestions and observations:

      - I was planning to have some special container for external objects built-in in the shapes (something like wxTreeItemData in tree control) but I have abandoned this idea for now and I use simple object oriented approach (deriving new classes based on shapes and usage of the shape manager as a main application container) instead, but the idea didn't die and I can add this feature to some next release.

      - I don't think that an explicit association of every shape with text control is necessary reasonable (why to have basic text shape associated with other text?). I think that a better solution is to create new class base on the suitable ascendant and create and associate text shape with it if needed in its constructor (maybe you have mentioned simple text data member with shape's description - the solution is the same). The basic idea of whole library is to keep it as simple and universal as possible and further functionality can be provided by deriving new classes.

      - About text attributes you are right, I'll keep it in my mind...

      - I'm not sure I have understood your problem with bitmaps. After adding a bitmap shape into the canvas its rectangle is initially adjusted in accordance with the source image. You can simply verify it by selecting the shape by a mouse, because the manipulating shape handles are located on calculated bounding box/shape rectangle, not on borders of the image. Note that this shape rectangle can have different size that the original image, because you can resize it in the canvas and this size change must be stored somewhere (so you can insert image 320x200 px, resize it, save into XML file and then the size of the shape rectangle will be different than original size).

       
    • Rui Curado

      Rui Curado - 2007-08-06

      "but I have abandoned this idea for now and I use simple object oriented approach (deriving new classes based on shapes and usage of the shape manager as a main application container)"

      That is fine also. The idea of having a data member is when you don't need more than just a reference to an existing object. I agree that my suggestion is not a priority.

      "I don't think that an explicit association of every shape with text control is necessary reasonable (why to have basic text shape associated with other text?)"

      Correct.

      "maybe you have mentioned simple text data member with shape's description"

      No. I really meant having a text object on the diagram. For an example of what I mean, you can check out OpenOffice Draw. On every shape, including connecting arrows, you can double-click it and associate a text with it.

      "The basic idea of whole library is to keep it as simple and universal as possible and further functionality can be provided by deriving new classes."

      That's the best approach. However it would be nice if you included small examples of how you can achieve some solutions, a bit like the "samples" folder on the wxWidgets library. You could use your example app to include all samples, as long as your code is structured and commented enough for a newbie to find it. (to make it fair, I haven't looked at your source code yet...)

       

Log in to post a comment.