Reputation: 415
I am working on writing a GUI in Haskell (and Ur/Web, but that is another story), and have several development branches using different libraries and approaches that I am working on contemporaneously. In trying to migrate some of the code I had from browser-backed UI libraries with HTML elements (threepenny-gui, to be precise) to native GUI applets using a WX graphical backend (wxHaskell, reactive-banana), I encountered some trouble figuring out how to migrate some code I had that was based on constructing a <table>
element to an equivalent wxWidgets construct. It seemed to me that there was no easy way to implement such a thing on my own, and no native equivalent. I am looking for implementation suggestions, pointers to extant implementations, suitable alternatives, and so forth. I can provide more in-depth specifics of the design I am looking for, should that be required.
The html table is merely used for aligning and displaying data, where one cell in every row is a reactive control, and the number of rows displayed at any given time can also vary reactively.
Upvotes: 1
Views: 99
Reputation: 22688
HTML table can contain just about anything in its cells so it's too rich to be represented by any native control. It's really hard to make a recommendation without knowing what exactly you have in the table, but the different possibilities are:
wxHtmlWindow
: this can be used to reuse your HTML provided it's simple enough (HTML4 basically) and you can embed native controls into it if needed.wxGrid
: this is the most flexible widget, but it's not native.wxDataViewCtrl
: this is native control under GTK and OS X (but not MSW where you'd need to use wxListCtrl
for 100% native approach) but it's pretty limited compared to either of the above solutions.Upvotes: 2