Unfortunately even in that case I don't see the wireframe changing. (In fact I can't find any event / scenario where self.cursor.brush.setWireframeColor() works)
I set up a simple example that doesn't seem to work:
class State(StrokeState): def __init__(self, **kwargs): super(State, self).__init__(**kwargs) self.cursor.brushes = [] self.cursor.init_brushlist([('sphere', {}), ('tube', {})]) def onMenuAction(self, kwargs): super().onMenuAction(kwargs) self.log("onMenuAction") self.cursor.brush.setWireframeColor(hou.Color(0.0, 0.0, 1.0)) self.cursor.show() self.cursor.brush.show(True)
I can see that my menu actions get triggered, but the wireframe or brush geometry never updates. From my experience it seems like after the brushlist is initialized, there's no way to change the underlying geometry it's using. I've had some success by clearing out the brushlist, and calling init_brushlist with new attributes and then calling self.cursor.select(0), but I don't really want to be recreating everything all the time, and even then I still have some issues where the viewport won't update until the next mouse event even after calling draw() in the scene viewer.
I'm leaning more to just ditching this idea and using default cursors since I've already spent more effort than I care for on this lol. Just wanted to raise it in case there's an underlying bug here or that I'm just getting something wrong with viewer states (which is also totally possible LOL)