Re: Fluid Application Environment 3.0.alpha1 Released!

new topic     » goto parent     » topic index » view thread      » older message » newer message
eukat said...

Jimcbrown didn't read everything i wrote, but seems to have grasped part of it, which is what Ry did too. Rather than reply at length to him, i'll reply abbreviatedly to this...

Err...

eukat said...

FAE isn't the windows message handler, it may or may not use windows msg handler. And FAE's msg handler can send msgs to a specific event reciever in a specific widget, if i understand Ry correctly, as well as broadcast and wildmatch event handler or gui names to send to, if i understand correctly.

Sounds right to me, too.

eukat said...

I am asking for a set of oem hooks that do not crash (in and of themselves), which do not need to be hacked in by users, to perform functions in responce to events, like a msg from FAE's msg handler that says "time has now progressed one second".

Sounds reasonable enough. Like Matt says, any GUI toolkit should have some sort of event-driven process like this anyways. I thought FluidAE already had this, though it's been a while since I looked at it.

eukat said...

My other option is to write a separate app to send inter-app msgs according to my OS to FAE, simply making such an approach more complex and not cross-platform. By having a single fixed ryan-written include and procedure name for all my user interface other than gui, no new code need be added to any other part of FAE. Lets call that msg hook do_user().

Agreed.

eukat said...

The nature of the include hook isn't to do dynamically included code like has generally been done. If i tell "reality" widget to open an elephant widget, then i have previously written that elephant widget, but it has no gui, and has no interaction to any other gui. Praps that widget is an elephant with 3 legs. So i name my code elephant-3legs.e, and with FAE i launch a widget named "elephant-3legs", it includes elephant-3legs.e, and do_user() calls (or sends msgs to) any procedure in elephant-3legs.e, via FAE's msg handler (no changes there), and recieves msgs sent to it (no changes there). Once launched, FAE doesn't exclude and re-include any more .e files, altho it is obviously possible to close a elephant gui widget and then reopen a new gui widget of the same name.

So no tricks, no changes to anything in FAE as it is now, only adding something like:

include thiswidgetname & ".e" -- but do not crash if not there! 
---- 
procedure do_user(sequence what) 
-- what = {function_to_do, it's parameters} 
function_to_do(parameters) -- but do not crash if not there! 
-- call targets are contained in thiswidgetname & ".e" 
end procedure 
---- 

Add a few line for not_crashing code.

I don't think this is possible. You are requiring extensions to the syntax of Euphoria itself now to get your code to do what you want (remember even ifdefs can't check if an include file or a routine exists before attempting to use them).

None of that applies if you use routine ids or translated dlls, however - in that case adding this sort of thing to FluidAE would probably be very easy. But if you're set on this syntax, then nothing short of a preprocessor could help here.

eukat said...

certified to not crash as if it would if hacked in by the random user who does not understand FAE so well.

I don't think this is possible either. function_to_do() could simply call crash("some msg") and crash that way. I think what you want is integrity checking inside of FAE itself (akin to what a kernel does at its syscall interface when being called by user-space code), to reject garbage if garbage is passed in. I agree that this would be a good idea, but I must reluctantly acknowledge that it's difficult to catch all cases - and even more difficult to cerify in any way that has some sort of reliable meaning.

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu