Using The Gdip library and the steamscheme.res file, as of right now I'm able to (though with some bugs) draw a properly colored window with a titlebar and title in the right place, and a grip panel (for resizing) properly placed, using Steam's gui files from its current skin.
While it's still not complete, this is a huge milestone for me. SteamWin will be immensely powerful in its ability to seamlessly integrate with Steam, if the performance hit doesn't turn out to be too great.
The coolest part of these new features is that SteamWin obeys the steamscheme.res rendering steps for almost every element it draws. Still working the kinks out, but the functions are able to turn this:
Code:
render_bg
{
"1" "fill( x0, y0, x1, y1, ClayBG )"
"2" "fill( x0 + 1, y0 + 4, x1 - 1, y0 + 16, LightClayBG )"
"3" "image( x0, y0 + 3, x0 + 4, y0 + 7, Graphics/scrTopLeft )"
"4" "image( x1 - 4, y0 + 3, x1, y0 + 7, Graphics/scrTopRight )"
"5" "image( x0, y0 + 13, x0 + 4, y0 + 17, Graphics/scrBottomLeft )"
"6" "image( x1 - 4, y0 + 13, x1, y0 + 17, Graphics/scrBottomRight )"
"7" "image( x0, y0 + 7, x0 + 4, y0 + 13, Graphics/scrLeft )"
"8" "image( x1 - 4, y0 + 7, x1, y0 + 13, Graphics/scrRight )"
"9" "image( x0 + 4, y0 + 3, x1 - 4, y0 + 7, Graphics/scrTop )"
"10" "image( x0 + 4, y0 + 13, x1 - 4, y0 + 17, Graphics/scrBottom )"
}
into a Steam-skinned scrollbar and add it to the Gui window according to positioning coordinates defined in the file.
And this:
Code:
FrameBorder
{
"corner_rounding" "3"
render_bg
{
"0" "fill( x0, y0, x1, y1, ClayBG )"
"1" "fill( x0, y0, x0+1, y1, LightClayBG )"
"2" "fill( x1-1, y0, x1, y1, LightClayBG )"
"3" "fill( x0, y1-1, x1, y1, LightClayBG )"
//"1" "gradient( x0, y0, x1, y0 + 200, DarkGreenBG, ClayBG)"
"4" "fill( x0 + 0, y0 + 0, x1 - 0, y0 + 21, LightGreenBG )" //test
//"2" "image( x0 + 8, y0 + 8, x0 + 16, y0 + 16, Graphics/title_tl )" // topleft
//"3" "image( x1 - 16, y0 + 8, x1 -8, y0 + 16, Graphics/title_tr )" // topright
}
}
into a window frame matching Steam's window