@Brian and all > glad this opened an important discussion..

and thank to the attempt to make it work @Brian footer control were too far 
down on that card(android)

Many of cards in the SivaSiva app, would need major geometry refactoring 
(month(s) of work) without fullScreenMode...so I am not considering give that 
up. Any appreciation the on going discussion .

But a browsers are integral to app, with HTML5 "presentions" coming and 
slideshow.

I wanted "responsive to any screen size on all devices"  for a simple browser 
stack with has a "body" (browser widget) and 5 controls on the bottom -- group 
"footer" why? we want cover the whole screen, with "pillar boxes"  and the CSS 
will do the "real" positioning.

in the surface is appear that one does not need:

 FullScreenMode / mobileSetFullScreenRectForOrientations
orientationChanged

"Intuitively" resize stack is all that is required.
And, "intuitively" a group should place all controls relative to itself.

And it does on iOS

see:

go  stack url 
"http://wiki.hindu.org/uploads/BrowserLandscapeTest_r8.livecode";<http://wiki.hindu.org/uploads/BrowserLandscapeTest_r8.livecode>

without line 14, it works iOS


on preOpenCard

if isMobile() then

    mobileSetAllowedOrientations "portrait,portrait upside down,landscape 
left,landscape right"

end if

end preOpenCard

on resizeStack pNewWidth, pNewHeight, pOldWidth, pOldHeight

# check it is landscape, turn off the navigation Bar

    if pNewWidth > pNewHeight then -- landscape

        put 0, 0, pNewWidth, pNewHeight into tBrowserRect

        hide group "footer"

    else

        put 0, 0, pNewWidth, pNewHeight - 50 into tBrowserRect

  #line14       # set loc group "footer" to (pNewWidth/2,pNewHeight-25)

        show group "footer"

    end if

    set the rect of widget "body" of me to tBrowserRect

end resizeStack

function isMobile

    return environment() = "mobile"

end isMobile

But the group "footer" was no appearing on Android.

Jacque had her finger on it with this comment.

Jacque (off list)

"I see. That looks like a redraw problem. The resizeStack handler is working 
but the redraw fails. I did notice the icons were missing but didn't try to 
figure out why. A quick test says the footer is visible in portrait and false 
in landscape, but it isn't being drawn to screen for some reason. I think 
that's the bug to report."

My "gut" told me "we just have to make footer redraw"

This "gut" said: give the loc and it will redraw


on resizeStack pNewWidth, pNewHeight, pOldWidth, pOldHeight

# check it is landscape, turn off the navigation Bar

    if pNewWidth > pNewHeight then -- landscape

        put 0, 0, pNewWidth, pNewHeight into tBrowserRect

        hide group "footer"

    else

        put 0, 0, pNewWidth, pNewHeight - 50 into tBrowserRect

        set loc group "footer" to (pNewWidth/2,pNewHeight-25)

        show group "footer"

    end if

    set the rect of widget "body" of me to tBrowserRect

end resizeStack

and Bingo! It work on iOS and Android! (if someone could try in an android 
tablet I would appreciate), so it works, and I have a bug to report.

But responsive screen in 19 lines of code! The child controls-the widget in the 
footer can stay where to are, in portrait, regardless on screen size/ration, 
there is no reason to "work it that hard"

Brahmanathaswami






On 8/19/18 1:21 PM, Brian Milby via use-livecode wrote:

I did figure out that within preOpenCard, the reported stack rect is still
the dimensions of the saved stack file (at least on iOS).  There is also
the detail that when you hide a group, it sets all of the objects to hidden
which has to be undone in a loop.  I've worked out moving the group and the
background grc, still looking at the math for the widget buttons.  This
would probably be a good place for the Navigation Bar with the option to
select none of the icons (PR submitted, still pending).

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to