Class: Shadow_Mixin

Module location: WebAppBase.pkg line 84 (view source)

Class Hierarchy:

cObjectMixinShadow_Mixin

Class Definition

Functions and Procedures

Define_Shadow_Mixin()
Module location: Windows.pkg line 224 (view source)

This mixin is used by single item and no item objects for shadow support. Note that an object supports three levels of shadowing. A single item can be shadowed (if applicable), an object can be explicitly shadowed or an object can be indirectly shadowed by a parent. Public Interface: Get/Set Object_Shadow_State Sets the object's explicit SS. Gets object's explicit IOR Implicit SS Get/Set Item_Shadow_State (if items are applicable) Get Implicit_Shadow_State if shadowed as group by ancestor Get Explicit_Shadow_State if shadowed by self Get Implicit_Hidden_State if hidden by an active parent (like a parent tab page) Send Shadow_Display Get/Set Shadow_State (if item based, sets item, else object) An object is shadowed if it is explicitly or implicitly shadowed. We now have two flavors of implicit. Either shadowed by a parent or hidden by a parent (e.g. parent tab page). If shadowed under any of these conditions the physical shadow_state must be true so that navigation skips it.

Class Hierarchy:

cObjectMixinShadow_Mixin

Class Definition

Properties

IntegerBroadcast_Implicit_Shadow_State
Should child objects receive shadow notification?
IntegerPrivate.Explicit_Shadow_State
IntegerPrivate.Implicit_Hidden_State
PRIVATE
IntegerPrivate.Implicit_Shadow_State
IntegerPrivate.Shadow_State
will be used by objects that have no runtime shadow_state item property (edits and containers)

Functions and Procedures

integerActivate()
Activate_Area(Integer TakeFocusFg)
Activate an object Area. If the object is not in the focus tree delegate until a popup object, scoped object, or child of desktop is encountered and activate that group. If TakeFocusFg is true, make sure this object ends up with the focus. The is similar in logic to deactivate area_flag. Used by Validate_Items to make sure a popup object or a popup group takes the focus properly.
Beginning_of_Panel()
Move focus to first focusable object in panel "Panel" is defined as the scope object
Bottom_of_Panel()
integerContainerFocusWillNotChange()
Private: needed by navigation (next_object_id). If the selected object is a container it will receive the activate message. If the container already has the focus, it will not do anything. We need to know if that will be the case. This is augmented by tab-pages which actually will change the focus when sent activate.
Define_Shadow_Mixin()
DoImplicitTabHide(integer iState)
private. This sets implicit shadowing for child objects within a tab page. This is similar to Implicit_shadow_state except that it should not send shadow_display. Shadowing and unShadowing causes color side effects (unshadow ignores the old background color) so when shadowing for tab children (which you will never see) we just do nothing. Set the implicit shadowing is still needed to make the navigation work properly.
IntegerEnabled_State()
Again, we're calling upon Object_Shadow_State and simply inverting the return value to match the context of the "enable centric" property. KCR
End_of_Panel()
IntegerEntering()
BooleanExplicit_Shadow_State()
Returns true if the object is explicitly shadowed by self
integerImplicit_Hidden_state()
Returns true if the object is active but hidden (like a child of a tab page)
BooleanImplicit_Shadow_State()
Returns true if the object is shadowed as part of a group shadow.
integerItem_Shadow_State(integer iItem)
integerNext_Object_Id(integer bNoDescend)
NotifyBeginningOfPanel(integer hoPanel)
When Beginning_of_panel is called all child objects need to be sent the message OnBeginningOfPanel. This is the private notification process.
integerObject_Shadow_State()
This returns if the object is truly shadowed. In single item we use item 0
OnBeginningOfPanel(integer hoPanel)
Public Event sent to all objects after a Beginning_of_panel is sent
integerPrior_Object_Id(integer bNoDescend)
integerprivate.Next_object_id(integer fg)
integerprivate.prior_object_id(integer fg)
Set(integer iState)
Private: Should only be sent by an ancestor object which is notifying all descendants that they have been shadowed as part of a group
Set(Integer iState)
Set(integer iItem integer iState)
Item_shadow_state always gets the item's SS
Set(integer iState)
Current_Shadow_State sets the object's true shadow-state With single item objects we use the shadow_state of item 0 (the only item) to let store this information. In multi-item this must be replaced (see multi-item below) This is for the single item model
Set(Integer bState)
Enabled_State, for this rev, simply calls Object_Shadow_State but inverts the parameter logic because Enabled_State is "enable centric" vs. Shadow_State which is "disable centric". KCR
Set(integer iItem integer iState)
Shadow_State can apply either to the object or the item. In single item or no item objects it refers to the object. In multi-item it refers to the item. This is the single item model
Shadow_Display()
IntegerShadow_State(integer iItem)
handleStuckInRing(integer bDown)
if next or prior object results in a ring it cannot get out of, it calls this and expects this to return an object ID or 0, to tell what to do
Top_of_Panel()