Rhinocommon panels

 Hi, I´ve seen in VisualArq plugin, that they have developed for stories a side panel for controlling building stories.
 The appearance of this panel is very similar to rhino´s Layers panel. see attached image. I wonder if its possible to develop this with rhinocommon/c#. 
Our plugin has some entities that would be nice to have a visual organization similar to that of VisualArq´s Stories, or Rhino´s Layers


For v5 you can review v5 sample

AFAIK You should be able to use Eto to create the UI also in v5, but I have no direct sample how to accomplish. It is probably a good idea to use Eto, because that is the preferred way for v6, in case you want to make your plug-in crossplatform.

V6 sample

1 Like

Are those made with wpf or winforms ? I mean layer list and in case of VA level list ? @fsalla could you give any advice on this?

@nathanletwory i tried to make ui panel with wpf but i was getting weird flickering with it (especially each time when opening plugin panel) so i sticked to winforms.

And … I know it should be other topic but did someone tried to obfuscate c# code for rhp?

AFAIK panel classes are implemented on Rhinocommon, but I can´t figure out which classes correspond to the interfaces used in Rhino Layers or VisuaArq stories…

If possible, I would prefer not to start with ETO, at least in the short term… I have been using Rhinocommon UI or WinForms for my UI needs, and would like to explore how far I can go using just those technologies…

anyway, I see that ETO should be the way to go in the long term…

The VisualARQ Levels Control and the Rhino Layers (in Rhino 5) control are written in C++, based on MFC, but in both cases the control classes are custom, written by the developers.
@kike @dale is this close to correct?

There are ways to develop your own custom panels in RhinoCommon, but you would still need to create your own control to mimic that behavior.

1 Like

Like i thought … writing controls isn’t very exciting :frowning: Anyway i found out how to make colapsible section in panel :stuck_out_tongue:

However using System.Drawing.Drawing2D.GraphicsPath needs here double buffer and funky redrawing and i still get sometimes skewed upper rounded corner when the section is collapsing.

No thoughts on obfuscating code? Nobody?

thank you Luis, this was very helpfull!