[haiku-development] Re: RoundRect ButtonFrame

  • From: John Scipione <jscipione@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Tue, 20 Mar 2012 15:30:43 -0400

On Mon, Mar 19, 2012 at 5:11 PM, Stephan Aßmus <superstippi@xxxxxx> wrote:
> BControlLook separates
> button frame rendering from button background rendering. It may indeed be
> best to use a flag in both DrawButtonBackground() and DrawButtonFrame() and
> pass the flag from BButton, so you don't break other interface elements that
> use only one of DrawButtonFrame() and DrawButtonBackground() and combine it
> with a different background/frame that does not expect round corners.

Using your advice I almost got rounded rectangular buttons almost
working, thank you. However, I am coming across an issue.

I implemented all of the clipping and drawing inside of
DrawButtonBackground() mostly because the _DrawRoundCornerLeftTop()
and _DrawRoundCornerRightTop() methods expect to draw the outer edge,
frame, bevel, and fill all in one shot and those are all available in
that method.

I am coming across an issue where sometimes the corner is off by 1
horizontally from the rest of the button when the buttons get resized.
See the screenshot below to see what is happening:

http://imagebin.org/204404

(I haven't implemented the bottom corners yet)

I am not quite sure what to make of this, perhaps some rounding issue
that I am not taking into account somewhere. It only appears to happen
when buttons get resized, a fixed button never encounters the issue.
Any ideas as to what could be causing this?

Thanks,
John Scipione

Other related posts: