Eric,

I think it would be easier if I created a set of IUP like wrapper
functions in Script BASIC and use the SB threaded web server to
communicate with the browser client. I already have IUP wrapped in
Script BASIC functions now to simplify IUP for FFI interfacing.


John

On Sat, 2017-01-21 at 15:02 -0800, Eric Wing wrote:
> On 1/21/17, John Spikowski <supp...@scriptbasic.org> wrote:
> > 
> > Eric,
> > 
> > Before we determine how best to deal with the UI side of IUP
> > browser
> > interface, I think we need to get the basic framework for the
> > browser
> > IUP driver working. Antonio didn't think this was a big deal when I
> > brought up the concept the first time around.
> > 
> Hi John,
> 
> As I said, I don’t really understand the architecture that is in your
> head. I really need you to describe it so I can understand where you
> are coming from.
> 
> Because at the moment, I’m in agreement with Antonio. These things
> are
> either minor details or things that do not belong in the IUP backend
> implementation for the web browser. (Those things would go in your
> user application or library above IUP, not the IUP library itself.)
> 
> 
> > 
> > * Determine screen size, DPI, default font, ...
> 
> 
> - Screen size:
> I think this is a minor detail.
> var width = screen.width;
> http://www.w3schools.com/jsref/prop_screen_width.asp
> 
> - DPI: I think this is a pretty optional thing and another minor
> detail. I don’t know if this is even available. I know Apple
> platforms
> go to great lengths to avoid telling you the DPI. They already have
> their own point size abstraction level that does “the right thing”,
> and trying to compute things based on the DPI actually just breaks
> things.
> 
> The web browser in this case is the “native platform” for us. Each
> browser already has to deal with each platform’s specific rendering
> size differences. I don’t think this is really a core IUP tenet. (You
> are going to be disappointed on the native Mac and iOS IUP backends
> if
> it is.)
> 
> 
> - Default font:
> So fonts are important to IUP. However, IUP does have deference to
> the
> native platform. So whatever the browsers will allow I guess.
> 
> function getFont() {
>     return document.getElementById('header').style.font;
> }
> http://stackoverflow.com/questions/845/detecting-which-font-was-used-
> in-a-web-page
> 
> 
> 
> > 
> > * Work out callbacks. Some may be handled by the client and others
> > off
> > loaded to the server.
> 
> - Callbacks:
> Again, I don’t understand the design in your head, but to me, server
> vs. client discussion is irrelevant for the IUP backend. IUP lets
> users define their own callbacks for events.
> 
> If you want a server callback, you put that in your application
> callback code. That doesn’t go in IUP itself.
> 
> So say, you are writing a Twitter client in IUP for native Windows
> and
> GTK. You create a button to submit a new Tweet. In IUP, you create a
> button, and you also implement a callback for the button press. That
> implementation will contain a server request to Twitter. Obviously,
> this belongs in your application and not IUP.
> 
> Now you recompile your IUP app with Emscipten so you can make your
> Twitter client work in the web browser. It should still work
> fundamentally the same way. Say you used libcurl to send the server
> request. I don’t know if libcurl just works via Emscripten, but if it
> does, you’re done. If not, you might need a #ifdef in your
> submit-callback implementation:
> 
> #ifdef __EMSCRIPTEN__
>       emscripten_async_wget(…);
> #else
>       curl_multi_perform(…);
> #endif
> 
> But either way, neither of these things belong in IUP which is just a
> GUI library.
> 
> 
> > 
> > 
> > Between HTML, CSS and JavaScript I think a desktop compatible UI
> > could
> > be assembled and be a worthwhile effort on our part.
> > 
> > The other direction might be HTML5.
> 
> So I think the majority has to be JavaScript as I tried to explain.
> There might be some parts that can be done in HTML and CSS, but the
> vast majority of stuff I can only see working in JavaScript. I ask
> the
> question again, how do you map IUP’s procedural, dynamic,
> Turing-complete layout algorithm in C to anything else? I can only
> see
> it work in the general case if it is converted to JavaScript. And
> that
> goes for pretty much the entire IUP code base. (If you have a
> solution
> to this, I’d really like to know about it.)
> 
> 
> > 
> >  desktop compatible UI
> And theoretically, we should be targeting web standards. So this
> should work on any standards compliant web browser, which also means
> mobile web browsers and not just desktop.
> 
> Thanks,
> Eric
> 
> -------------------------------------------------------------------
> -----------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> _______________________________________________
> Iup-users mailing list
> Iup-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/iup-users

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Iup-users mailing list
Iup-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iup-users

Reply via email to