//-----------------------------------------------------
        private void DockChilds()
        {
            if (m_bIsDocking)
            {
                return;
            }
            m_bIsDocking = true;
            C3DPoint offset = new C3DPoint(0, 0, 0);
            C3DSize  size   = Size;

            foreach (C2iComposant3D composantFils in Childs)
            {
                CDockStyle dockStyle = composantFils.LocationInParent as CDockStyle;
                if (dockStyle != null)
                {
                    switch (dockStyle.DockStyle)
                    {
                    case E3DDockStyle.Top:
                        composantFils.Size = new C3DSize(
                            size.With,
                            composantFils.Size.Height,
                            size.Depth);
                        composantFils.Position = new C3DPoint(
                            offset.X,
                            offset.Y + size.Height - composantFils.Size.Height,
                            offset.Z);
                        size.Inflate(
                            0,
                            -composantFils.Size.Height,
                            0);
                        break;

                    case E3DDockStyle.Bottom:
                        composantFils.Size = new C3DSize(
                            size.With,
                            composantFils.Size.Height,
                            size.Depth);
                        composantFils.Position = new C3DPoint(
                            offset.X,
                            offset.Y,
                            offset.Z);
                        size.Inflate(
                            0,
                            -composantFils.Size.Height,
                            0);
                        offset.Offset(
                            0,
                            composantFils.Size.Height,
                            0);
                        break;

                    case E3DDockStyle.Left:
                        composantFils.Size = new C3DSize(
                            composantFils.Size.With,
                            size.Height,
                            size.Depth);
                        composantFils.Position = new C3DPoint(
                            offset.X,
                            offset.Y,
                            offset.Z);
                        size.Inflate(
                            -composantFils.Size.With,
                            0,
                            0);
                        offset.Offset(
                            composantFils.Size.With,
                            0,
                            0);
                        break;

                    case E3DDockStyle.Right:
                        composantFils.Size = new C3DSize(
                            composantFils.Size.With,
                            size.Height,
                            size.Depth);
                        composantFils.Position = new C3DPoint(
                            offset.X + size.With - composantFils.Size.With,
                            offset.Y,
                            offset.Z);
                        size.Inflate(
                            -composantFils.Size.With,
                            0,
                            0);
                        break;

                    case E3DDockStyle.Back:
                        composantFils.Size = new C3DSize(
                            size.With,
                            size.Height,
                            composantFils.Size.Depth);
                        composantFils.Position = new C3DPoint(
                            offset.X,
                            offset.Y,
                            offset.Z);
                        size.Inflate(0,
                                     0,
                                     -composantFils.Size.Depth);
                        offset.Offset(0, 0, composantFils.Size.Depth);
                        break;

                    case E3DDockStyle.Front:
                        composantFils.Size = new C3DSize(
                            size.With,
                            size.Height,
                            composantFils.Size.Depth);
                        composantFils.Position = new C3DPoint(
                            offset.X,
                            offset.Y,
                            offset.Z + size.Depth - composantFils.Size.Depth);
                        size.Inflate(
                            0,
                            0,
                            -composantFils.Size.Depth);
                        break;

                    case E3DDockStyle.Fill:
                        composantFils.Position = offset;
                        composantFils.Size     = size;
                        break;

                    default:
                        break;
                    }
                }
            }
            m_bIsDocking = false;
        }