Ignore this for now Ivo, unless you absolutely feel like you won't be willing to implement it ever
(in which case go-ahead and tell me before I finish) Im just posting it in an un-finished state, and ill get back to it later.. maybe (and PM you when its ready for review)
Anyways.. Id like to try and develop a new language for defining the UI elements of a skin. Drawing Inspiration from cropping rather than stretching. This will permit more robust skins without all the annoyances of a stretched skin.
Code:
MaxMainW = 500; //this limits the width of the main column to 500 pixels.
MinMainW = 100; // The minimum
MaxSideW = 500; //this limits the width of the right/side column to 500 pixels.
MinSideW
W
WCrop((MainWidth-20), s2b.bmp, 0);
//s2b.bmp would be a separate image, that would correspond logically to the center slice in the main column (2nd slice, row b)
//This code would crop its width to that of the main column minus 20 pixels.
//s2b.bmp should start out at 480 pixels wide in this case, to accommodate any size start menu width without stretching.
// the 0 at the end represent the x(horizontal) coordinates that the image should be cropped from.
//If you specified 480 it would crop away the left side of the image, if you specified 240 it would crop away equal parts from left, and right retaining the center.
HCrop((MainHeight-20), s2b.bmp, 0);
s2a.bmp = Maintopleft(20,0);
//This would create the image at the top left, offset by 20 pixels to the right. Since this item is created first, it will be on the bottom layer.
s1.bmp = Main.top.left(0,0); //This is equal to the top left slice, and doesn't need cropped, since it is below s2.bmp it will display over
add buttons;
//This tells classic shell to create all the start menu items on this layer, above everything before it, and below everything after