For some reason the Slice 9 GUI properties only exist on ImageLabel and ImageButton?
It would be better if SliceCenter, ScaleType and the Image* properties were on GuiObject. I am particular missing them on Frame. The only way to style a dialog box right now is to put a giant image label on it.
If they add those properties to Frame as well, then there is no difference between ImageLabel and Frame. An ImageLabel with an empty Image property will act like a Frame.
It’s possible that having both Frames and ImageLabels was a mistake, but we’re here now.
It also makes no sense that Frames are the only GuiObject with the Style property. I know I’m eventually going to use Slice9 GUIs in my game. But right now for prototyping I want to use one of the built-in Styles. To toggle between using Styles that come with the game and custom styles I need to change the type of my GuiObject? That. makes. no. sense.
Imagine if you had to do that in web UX. The designers would go insane.
Okay sure, but if we extend your idea a little further then I could also argue that TextLabel is a silly object since it’s just a Frame with text on it. Better add that text to Frames too then.
Personally I wouldn’t have an issue with collapsing these objects into one and deprecating the unnecessary ones but I can imagine performance-wise it may be useful to have less powerful objects (Frames) and then specialized objects, so that you don’t have to perform specialized checks/procedures for the less powerful objects.
If frames were made to have images, why not make them have text too? Additionally, should scrolling frames get all of these extra properties too, including Style?