#843 ooDialog "clear" methods broken

ooDialog.4.2.0
closed
Mark Miesfeld
ooDialog (58)
5
2012-08-27
2009-10-10
Mark Miesfeld
No
0 up votes | 0 down votes | 0%
4 comments

ooDialog has a number of methods used to "clear" areas of windows. The "clear" operation is actually the painting of a rectangle in the window with a background brush. This has the effect of erasing the area of the rectangle.

1.) The wrong system brush is used, so the areas do not look "cleared.'

2.) More importantly, for a number of the methods, the rectangle that is actually cleared is obviously not the correct rectangle. The attached program easily demonstrates this. To compound this problem, the current documentation for these methods is vague. This makes it very difficult to know for sure what the methods are intended to do.

In Windows, each window has two areas. One is the entire rectangle the window takes up. The other is the "client" area. The client area is for drawing, and normally programs would never draw outside the client area. The MSDN docs suggest that you should never draw in the non-client area of a window: "Painting in nonclient areas of any window is not recommended." Because of this, I'm going to take the stance that the methods were intended to clear rectangles within the client area of a window. Since, I don't see that ooDialog provides a way to draw in the non-client area of a window, this seems to make the most sense.

Discussion

  • Mark Miesfeld
    Mark Miesfeld
    2009-10-10

    Small update to example so it runs under 3.2.0 and demonstrates the bug existed prior to 4.0.0.

     
  • Mark Miesfeld
    Mark Miesfeld
    2010-08-10

    This is fixed in trunk during the refactoring of ooDialog. The fix will be present in the next major release of ooDialog

     
  • Mark Miesfeld
    Mark Miesfeld
    2010-09-08

    This fix will be in the next major release of ooDialog, but not in the ooRexx 4.1.0 release.

     
  • Mark Miesfeld
    Mark Miesfeld
    2012-02-03

    This fix will appear in the next major release of ooDialog, it will not be included in an ooRexx bug fix release

     


Anonymous


Cancel   Add attachments