Re: UI/IDE committee
- Posted by petelomax Oct 18, 2015
- 9143 views
OK, I'm on board with the idea of adopting IUP as the cross platform gui of choice.
To be honest I am very annoyed with myself for not trying it before, as it is quite short and sweet.
I got it to work on Phix, apart from 1) a bug in (my) call back handler exposed by cbtest, 2) pplot doing nowt, and 3) euchat being a non-starter for me because Phix has neither sockets nor regular expressions, but 6 other demos are running just fine.
To achieve that, I had to curb the excessive use of namespaces and gratuitous builtin overrides - while iup:open might look nice and clever to you, IMO it /*will*/ clobber some open that has been working fine for years, so it is IupOpen now [==C].
I merged the includes into a single iup.e file, as the quickest way to ensure removal of any duplicates/overrides; that can be undone later if there really is any need to do so. Combined it is still shy of 5000 lines, and I'd like to keep it that way.
I downloaded the latest iup.chm and cd.chm files, only to find that neither has an index ;-(
I have managed to unpack and rebuild them, and started the slow process of creating all the index entries.
I plan to rename all the Eu wrapper functions to match the C names, to help integration with Edita. I have also renamed all of the c_func/proc constants from hXXX to xXXX because that is another Edita/Help thing, and it should not matter anyway.
Yesterday I managed to index 94 entries and integrate them into the Edita help system (so that F1 jumps right to the docs), but there may be as many as 1100 more, so I'd have to chip away at that as time allows.
I have added error handling when the dlls cannot be opened, changed the version to "3.3.0p1", fixed a handful of free(0), as that's an error in Phix, and a couple of "probable logic errors": get_string_array/elsif sequence(classname) and iup_append/elsif sequence(child).
Unfortunately there is a bug in Phix regarding switch with fallthru, whereby it makes a mess of optimising the jump table, and may take me some time to figure out a proper fix, so for now IupGetParam (was get_param) has to do things longhand.
cdCanvasVertex (was canvas_vertex) was using hCd, not the hCdCanvas parameter (fixed)
canvas_put_image_rect_rgba was using xcdCanvasPutImageRectRGB not xcdCanvasPutImageRectRGBA (fixed)
init_bitmap is not using xcdInitBitmapMAP (still outstanding)
rgb_2_map does not use the rgb parameter (still outstanding)
I would be happy to serve on the "iup comittee", as long as it is understood my primary focus is on Phix, with getting the same stuff to run seamlessly on OpenEuphoria an important but secondary goal.
First things first though, obviously I need to fix the bugs just found, then port a few programs to iup, maybe try to cobble up a starter IDE, all before any final decision.
Pete