Scrollbars not clipped against parent client rect

May 16, 2012 at 1:46 PM

Hi, I was just playing with the GuiExample and I noticed that if you start it, press tab twice, and scroll with the scrollbars on the middle window, you'll notice that the scrollbars of its content are drawn under/over its own scrollbars.

Here's a pic (worth a 1000 words :)) :
http://screencast.com/t/ZQfsdct3

Anyway, I'd like to use Ruminate for my hobbyproject since it seems the best solution for me.
I read you're close to releasing a v2 update. Will that require major coderewrites if I start with the current version now ?

Coordinator
May 16, 2012 at 11:06 PM
Edited May 16, 2012 at 11:08 PM

Yeah there a few issues like this which is why I haven't made an official release yet even though the code is nearly complete.

But go ahead and use the latest GIT commit. I'm finally happy with how I have the framework set up so very few if any upcoming changes are going to break anything and none will require any sort of significant rewrite. There a few minor bugs I need to fix in the skinning and rendering system (such as the one in the picture) and then my efforts will be dedicated to adding additional widgets. 

Coordinator
May 17, 2012 at 8:11 PM

I believe I fixed all scrollbar issues in the latest commit. Also added the ability to have button less scrollbars (Apple/Linux style). Tell me if you run into any issues. 

May 18, 2012 at 2:34 PM

Hi, one of the problems I'm running into in including Ruminate in my own project is that eventhough I reference GuiContent, it's not loaded and thus no renderers are found.
So I have to force loading of the dll like this before Skin can actually find any Renderers:

var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies().ToList();
var loadedPaths = loadedAssemblies.Select(a => a.Location).ToArray();
var referencedPaths = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.dll" ); 
var toLoad = referencedPaths.Where(r => !loadedPaths.Contains(r, StringComparer.InvariantCultureIgnoreCase)).ToList(); toLoad.ForEach(path => loadedAssemblies.Add(AppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(path))));

I've also added an assertion in the loop that's creating renderers like so :
if (c != null )
{
    WidgetMap.Add((equalsSplit[0]).Trim(), (
Renderer)c.Invoke(args.ToArray()));
}
else
{
   
Debug.Assert(false);
}

which immediately showed me you've forgotten to update the slider_bar definition in the default map.txt with the new buffer parameter so it can't be constructed ! Some more error-checking might be necessary :)

Anyway, keep up the good work.

 

Coordinator
Aug 22, 2012 at 5:37 PM

Just as an update currently only the grey skin is currently supported. Other skins may cause errors similar to the above.