Thanks Jan - intrigued, got mine working using the scrolling technique. Can't do individual corners that are rounded only individual corners that are square at the moment - I'll take a look at your technique and borrow the best bits :)
NB - I'll demo this on the weekend together with other Datagrid like groups that I've collected or created. Would be great to have your input! On 2 December 2010 09:35, Jan Schenkel <janschen...@yahoo.com> wrote: > --- On Wed, 12/1/10, David Bovill <da...@vaudevillecourt.tv> wrote: > > ? I'm just starting on doing this - > > but it seems to me that you need to > > scroll one of the groups. Maybe that's because I am > > creating it so the > > rounded corners can be at the to top or bottom. So clipping > > the square rect > > to half way, moving it down, and scrolling it down would > > show only the > > bottom half. - which means that effectively the graphic has > > the same rect > > but the group windows are different? This means that the > > gradients can be > > made identical.... wip... > > > > You don't have to worry about scrolling with lockLocation set on the inner > groups. Here's a quick code recipe that you can put into a "Create" button: > > ## > constant kRectangle = "50,50,250,100" > constant kNoMargins = "0,0,0,0" > > on mouseUp > --> load some essentials into local variables > local tRectangle, tHeight > put kRectangle into tRectangle > put (item 4 of tRectangle) - (item 2 of tRectangle) \ > into tHeight > --> load the fillGradient array > local tFillGradientA > put "linear" into tFillGradientA["type"] > put (item 1 of tRectangle),(item 2 of tRectangle) \ > into tFillGradientA["from"] > put (item 3 of tRectangle),(item 2 of tRectangle) \ > into tFillGradientA["to"] > put (item 1 of tRectangle),(item 4 of tRectangle) \ > into tFillGradientA["via"] > put "0.00000,192,192,192" & return & \ > "1.00000,128,128,128" \ > into tFillGradientA["ramp"] > --> prepare by resetting the templateControls > reset the templateGroup > reset the templateGraphic > --> start by creating the outer group > local tOuterGroup > set the rectangle of the templateGroup to tRectangle > set the margins of the templateGroup to kNoMargins > create group "MyCustomControl" > put it into tOuterGroup > --> create the roundrect inner group > local tRoundRectGroup > put (item 2 of tRectangle) + (tHeight div 2) \ > into item 4 of tRectangle > set the rectangle of the templateGroup to tRectangle > set the lockLocation of the templateGroup to true > create group "RoundRectClipGroup" in tOuterGroup > put it into tRoundRectGroup > --> create the roundrect in the top inner group > put kRectangle into tRectangle > set the style of the templateGraphic to "RoundRect" > set the rectangle of the templateGraphic to tRectangle > set the opaque of the templateGraphic to true > set the antiAliased of the templateGraphic to true > set the fillGradient of the templateGraphic to tFillGradientA > create graphic "RoundRectGraphic" in tRoundRectGroup > --> create the rectangle inner group > local tRectangleGroup > put (item 4 of tRectangle) - (tHeight div 2) \ > into item 2 of tRectangle > set the rectangle of the templateGroup to tRectangle > set the lockLocation of the templateGroup to true > create group "RectangleClipGroup" in tOuterGroup > put it into tRectangleGroup > --> create the rectangle in the bottom inner group > put kRectangle into tRectangle > set the style of the templateGraphic to "Rectangle" > set the rectangle of the templateGraphic to tRectangle > set the opaque of the templateGraphic to true > set the antiAliased of the templateGraphic to true > set the fillGradient of the templateGraphic to tFillGradientA > create graphic "RectangleGraphic" in tRectangleGroup > --> cleanup by resetting the templateControls > reset the templateGroup > reset the templateGraphic > end mouseUp > ## > > When you click the "Create" button, it creates all required controls > dynamically. Just for kicks, I automatically applied a fill gradient to this > example. Expand with graphic effects at your own leisure :-) > > Write a behavior script that handles resizeControl and getProp/setProp > handler pairs for easier scripting (e.g. to switch top and bottom, or from > horizontal to vertical); then set the behavior of the outer group to the > long id of that behaviour button. > > Groups and behaviors are a fantastic combination for creating custom > controls by composition. As Trevor has abundantly demonstrated with the > DataGrid :-) > > Enjoy! > > Jan Schenkel. > ===== > Quartam Reports & PDF Library for LiveCode > www.quartam.com > > ===== > "As we grow older, we grow both wiser and more foolish at the same time." > (La Rochefoucauld) > > > > > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode