You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Rather than using the SizeChanged event to determine when to change the layout, Designs can be used to provide specific points at which to implement different appearances.


Designs are given a width. When the width of the page becomes less than the Design, the DesignChanged event is fired throughout the application allowing decisions to be made about the appearance.

* Designs
Define_Com Class(#PRIM_DESN) Name(#DesignManager)
Define_Com Class(#PRIM_DESN.Design) Name(#MobileDesign) Designmanager(#DesignManager) Width(600)
Define_Com Class(#PRIM_DESN.Design) Name(#TabletDesign) Designmanager(#DesignManager) Width(1000)


* Application
Define_Com Class(#XKMAPP) Name(#Application) Scope(*APPLICATION)
 
Evtroutine Handling(#Com_owner.DesignChanged) Design(#Design)
 
#Application.DesignChanged( #Design )
 
Endroutine

The associated Application object can be used to centralize the processing of the DesignChanged event something like this:


Mthroutine Name(DesignChanged)
Define_Map For(*input) Class(#Prim_desn.Design) Name(#Design) Pass(*By_reference)
 
#ActiveDesign <= #Design
 
If (#Design *Is *null)
 
#Com_Owner.ActivateDesktopView
 
Else
 
  If (#Design.Name = MobileDesign)
 
   #Com_Owner.ActivateMobileView
 
  Else
 
   #Com_Owner.ActivateTabletView
 
  Endif
 
Endif
 
Endroutine
 
Mthroutine Name(ActivateMobileView)
 
  Signal Event(HideContent)
 
  #ActiveView := MOBILE
 
  Signal Event(MobileView)
 
  Signal Event(ShowContent)
 
Endroutine
 
Mthroutine Name(ActivateTabletView)
 
  Signal Event(HideContent)
 
  #ActiveView := TABLET
 
  Signal Event(TabletView)
 
  Signal Event(ShowContent)
 
Endroutine
 
Mthroutine Name(ActivateDesktopView)
 
  Signal Event(HideContent)
 
  #ActiveView := DESKTOP
 
  Signal Event(DesktopView)
 
  Signal Event(ShowContent)
 
Endroutine


Refer to the code generated when Using a Web Page Template for examples on how to implement designs for effective Responsive Design.

  • No labels