Anatomy of Result Application 

Indexing
Visibility
How CSS z-index maps VB Form z-order
Controls' z-layering
Menu controls



Indexing forms

   Each converted form is 
   assigned unique index in order of appearence
   in original 'project'.vbp file.
   Index is stored in form's Const web_FormCount; 
   index range = 1 - quantity of forms.



Visibility

   At converter-setup-time, user can optionally add
   "web-visibility-extensions" to designated forms.
   This option controlled by various "variable visibilty"
   switches.

   First, non-converted forms saved unchanged which
   makes them always invisible on Browser.
   Message on console: not-converted: saving unchanged ...

   Second, if form is converted, but no 
   variable-visibility is set for the form, then
   no visibility-machinery and z-index-machinery inserted.
   (controls_visibility.txt schema makes actual insertion for visibility;)
   In this case, forms 
       will be invisible on Browser, 
       will be excluded from z-index on Browser,
       and will have visual behaviour as in original, source application, before; 
           thus, disabling pop up on Server may be desired.

   For forms with controls with variable visibility, 
   "Visible" property of controls and form is duplicated 
   and kept in private form's variable 
   web_vis of type web_visibility.

   To keep compliance with web interface, 
   visibility property of object must be always recoded
   using procedure:
     web_SetVis object, value
   because this way "value" will be updated in variable web_vis.

   Compi is not smart enough to
   recognize object for which to make replacement
   .Visible --> web_SetVis object, value.
   Hence, this must be done manually.



How CSS z-index maps VB Form z-order

   Converter adds two arrays web_ZO and web_OZ 
   to VB part. ZO stands for z-order and keeps
   value v of z-order for given form:
      v < 0  form is not loaded,
      v = 0  form is loaded with invisible status,
      v > 0  form is loaded, v is CSS z-index.
   Index of ZO is fom's index.
   OZ is inverse function to ZO: OZ keeps
   form's index and Ubound(OZ) aways = z-top.
   
   When VB moves/creates form on z-top, then
   both ZO and OZ are automatically updated.

   ZO and OZ submitted to ASP and to the
   JavaScript. 
   However, z-index is not submitted from 
   Browser to Dll.
  
   In non-MDI project, 
   FormsImages - are siblings.
   In MDI project,
   MDI title, MDIBody, MDIMenu, are added to
   this siblings, and MDIFormImage is 
   a parent to this sibings.

   MDI form's menu has z-index = z-top + 1 to
   cover all child forms.

   MessageBox has always z-index = z-top + 2.
    
   If project starts in Preparsed scenario, then
   by default, z-index is form's index, 
   so forms overlap in order to apperence in 
   original VB project.

   z-index coded in:
     - dll-code is in web_axiliary.web_ZOManage
     - asp-code is in 'FORM'S-ASP-PART INCLUDER' in FORMs_web_image.txt
     - JS-code  is in function BubbleZ and other places in HTML_front_page.txt
   


Controls' z-layering

  Inside of their graphical container,
  VB controls belong to one of tree groups:
     CB - (background) - grapics drawn on form;
     CM - (middle)     - labels, pictures, graphical objects;
     CF - (front)      - non-graphic controls, frames, SSTab, text, ... 
  Controls compete for z-order inside own group, and groups compete inside 
  own container.

  To reflect this order on browser, 
  this three groups are placed in three
  HTML >div class="vblayers"< -elements 
  in the order: CB CM, CF.

  Schema ASSEMBLY_CONTROLS.txt has a statment
    ..=C_layer."M" 
  which assigns z-layer.
  Currently image control is assigned layer "M".
  Picture control is layer "F".




Menu controls ...

  implemented as html-buttons with
  style "none".