Thanks for your thoughts Mike. I don't really know much about the Layout classes, and it's unfortunately something rather difficult to Google for, could you point me to some simple examples?
I assume that once I figure it out, implementing ILayoutManager still won't help me go optional-vertical-only on the scroll bar though, and I'll still need to subclass Container or Canvas to achieve that? Doing that separately though might not be a bad idea, as they're both things I'd like to be able to re-use. -Josh On Wed, Jun 18, 2008 at 8:29 AM, Michael Schmalle <[EMAIL PROTECTED]> wrote: > Hi Josh, > > I have done quite a bit of this stuff. > > The easiest way I see to do this is subclass LayoutContainer. Create > another subclass of Layout. > > Then you can switch to this layout at runtime or compile time. Anyway, the > purpose of this is to abstract the layout logic from the container. If you > are adding no real new public API, then creating a class layout defining > these rules is the best implementation. > > In your layout class you override measure and updateDisplayList. This way > your layout code will always be separate from the component code. > > If your willing to mock up a diagram in a paint program, I might just give > it a stab to give you an example, something else to put on my blog. :) > > If this is something you can't share to that degree, just let me know if > the above doesn't make sense. > > OR since I might be over engineering this, you could try layout constraints > in the Canvas. If you are defining a new 'layout' I would suggest the above > implementation. > > Mike > > > On Tue, Jun 17, 2008 at 6:16 PM, Josh McDonald <[EMAIL PROTECTED]> wrote: > >> Hey guys, >> >> About to build this based on a Container (with nested Grids perhaps?), but >> if there's something out there that's a closer starting point I don't wanna >> completely re-invent the wheel :) Here's what I need to do: >> >> I need to layout a bunch of rectangular components in something resembling >> a 2 x n grid, but with flexible cell widths per row, ie everything lines up >> horizontally, not necessarily vertically. >> >> Components are added to the container without any sizing / positioning >> info, and the container does all the measuring and positioning to make the >> best possible use of the space available >> >> If I've got 2 components of size 1x1, and one that's 1x2, I want the two >> square ones on the left, and the long one on the right to make a 2x2 grid >> >> Rows of variable height, but every component in a row must be expanded to >> fit that height >> >> Each row takes up the complete width of the widest row - if two components >> in a row are each < width / 2, they'll be expanded to width / 2 each. >> >> If two "squareish" components are together less than one row width, but >> one is > row width / 2, the smaller one will be made wider to keep things >> looking neat. >> >> Only vertical scrolling, and only if necessary. I know, it can mean double >> ups on measure() etc, and the Adobe guys clearly disagree with me, but as >> far as I'm concerned it's the only acceptable solution UX-wise. >> >> Does something close to this exist, that I can base my component on? If >> not, will it be of any use to the community when I'm done? It's probably the >> kind of thing I can easily get the OK from the boss to open source. >> >> Cheers, >> -Josh >> >> -- >> "Therefore, send not to know For whom the bell tolls. It tolls for thee." >> >> :: Josh 'G-Funk' McDonald >> :: 0437 221 380 :: [EMAIL PROTECTED] >> > > > > -- > Teoti Graphix, LLC > http://www.teotigraphix.com > > Teoti Graphix Blog > http://www.blog.teotigraphix.com > > You can find more by solving the problem then by 'asking the question'. > > -- "Therefore, send not to know For whom the bell tolls. It tolls for thee." :: Josh 'G-Funk' McDonald :: 0437 221 380 :: [EMAIL PROTECTED]
