lib/Ext/navigation/Bar.js
function(oldLeft, oldTitle, reverse) {
        var me = this,
            barElement = me.element,
            newLeftElement = me.leftBox.element,
            titleElement = me.titleComponent.element,
            minOffset = Math.min(barElement.getWidth() / 3, 200),
            newLeftWidth = newLeftElement.getWidth(),
            barX = barElement.getX(),
            barWidth = barElement.getWidth(),
            titleX = titleElement.getX(),
            titleLeft = titleElement.getLeft(),
            titleWidth = titleElement.getWidth(),
            oldLeftX = oldLeft.x,
            oldLeftWidth = oldLeft.width,
            oldLeftLeft = oldLeft.left,
            useLeft = Ext.browser.is.AndroidStock2 && !this.getAndroid2Transforms(),
            newOffset, oldOffset, leftAnims, titleAnims, omega, theta;

        theta = barX - oldLeftX - oldLeftWidth;
        if (reverse) {
            newOffset = theta;
            oldOffset = Math.min(titleX - oldLeftWidth, minOffset);
        }
        else {
            oldOffset = theta;
            newOffset = Math.min(titleX - barX, minOffset);
        }

        if (useLeft) {
            leftAnims = {
                element: {
                    from: {
                        left: newOffset,
                        opacity: 1
                    },
                    to: {
                        left: 0,
                        opacity: 1
                    }
                }
            };
        }
        else {
            leftAnims = {
                element: {
                    from: {
                        transform: {
                            translateX: newOffset
                        },
                        opacity: 0
                    },
                    to: {
                        transform: {
                            translateX: 0
                        },
                        opacity: 1
                    }
                },
                ghost: {
                    to: {
                        transform: {
                            translateX: oldOffset
                        },
                        opacity: 0
                    }
                }
            };
        }

        theta = barX - titleX + newLeftWidth;
        if ((oldLeftLeft + titleWidth) > titleX) {
            omega = barX - titleX - titleWidth;
        }

        if (reverse) {
            titleElement.setLeft(0);

            oldOffset = barX + barWidth - titleX - titleWidth;

            if (omega !== undefined) {
                newOffset = omega;
            }
            else {
                newOffset = theta;
            }
        }
        else {
            newOffset = barX + barWidth - titleX - titleWidth;

            if (omega !== undefined) {
                oldOffset = omega;
            }
            else {
                oldOffset = theta;
            }

            newOffset = Math.max(titleLeft, newOffset);
        }

        if (useLeft) {
            titleAnims = {
                element: {
                    from: {
                        left: newOffset,
                        opacity: 1
                    },
                    to: {
                        left: titleLeft,
                        opacity: 1
                    }
                }
            };
        }
        else {
            titleAnims = {
                element: {
                    from: {
                        transform: {
                            translateX: newOffset
                        },
                        opacity: 0
                    },
                    to: {
                        transform: {
                            translateX: titleLeft
                        },
                        opacity: 1
                    }
                },
                ghost: {
                    to: {
                        transform: {
                            translateX: oldOffset
                        },
                        opacity: 0
                    }
                }
            };
        }

        return {
            left: leftAnims,
            title: titleAnims,
            titleLeft: titleLeft
        };
    }
function(oldLeft, oldTitle, reverse) {
        var me = this,
            barElement = me.element,
            newLeftElement = me.leftBox.element,
            titleElement = me.titleComponent.element,
            minOffset = Math.min(barElement.getWidth() / 3, 200),
            newLeftWidth = newLeftElement.getWidth(),
            barX = barElement.getX(),
            barWidth = barElement.getWidth(),
            titleX = titleElement.getX(),
            titleLeft = titleElement.getLeft(),
            titleWidth = titleElement.getWidth(),
            oldLeftX = oldLeft.x,
            oldLeftWidth = oldLeft.width,
            oldLeftLeft = oldLeft.left,
            useLeft = Ext.browser.is.AndroidStock2 && !this.getAndroid2Transforms(),
            newOffset, oldOffset, leftAnims, titleAnims, omega, theta;

        theta = barX - oldLeftX - oldLeftWidth;
        if (reverse) {
            newOffset = theta;
            oldOffset = Math.min(titleX - oldLeftWidth, minOffset);
        }
        else {
            oldOffset = theta;
            newOffset = Math.min(titleX - barX, minOffset);
        }

        if (useLeft) {
            leftAnims = {
                element: {
                    from: {
                        left: newOffset,
                        opacity: 1
                    },
                    to: {
                        left: 0,
                        opacity: 1
                    }
                }
            };
        }
        else {
            leftAnims = {
                element: {
                    from: {
                        transform: {
                            translateX: newOffset
                        },
                        opacity: 0
                    },
                    to: {
                        transform: {
                            translateX: 0
                        },
                        opacity: 1
                    }
                },
                ghost: {
                    to: {
                        transform: {
                            translateX: oldOffset
                        },
                        opacity: 0
                    }
                }
            };
        }

        theta = barX - titleX + newLeftWidth;
        if ((oldLeftLeft + titleWidth) > titleX) {
            omega = barX - titleX - titleWidth;
        }

        if (reverse) {
            titleElement.setLeft(0);

            oldOffset = barX + barWidth - titleX - titleWidth;

            if (omega !== undefined) {
                newOffset = omega;
            }
            else {
                newOffset = theta;
            }
        }
        else {
            newOffset = barX + barWidth - titleX - titleWidth;

            if (omega !== undefined) {
                oldOffset = omega;
            }
            else {
                oldOffset = theta;
            }

            newOffset = Math.max(titleLeft, newOffset);
        }

        if (useLeft) {
            titleAnims = {
                element: {
                    from: {
                        left: newOffset,
                        opacity: 1
                    },
                    to: {
                        left: titleLeft,
                        opacity: 1
                    }
                }
            };
        }
        else {
            titleAnims = {
                element: {
                    from: {
                        transform: {
                            translateX: newOffset
                        },
                        opacity: 0
                    },
                    to: {
                        transform: {
                            translateX: titleLeft
                        },
                        opacity: 1
                    }
                },
                ghost: {
                    to: {
                        transform: {
                            translateX: oldOffset
                        },
                        opacity: 0
                    }
                }
            };
        }

        return {
            left: leftAnims,
            title: titleAnims,
            titleLeft: titleLeft
        };
    }
Calculates and returns the position values needed for the back button when you are pushing a title.
@private