     menuView.sizeThatFits(CGSizeMake(menuWidth, CGRectGetHeight(view.frame)))
   }
   
+  // MARK: Toggle
+  
+  func toggleLeftMenuWithAnimation() {
+    toggleMenuWithSideMenuType(.HFSideMenuLeft, animated: true)
+  }
+  
+  private func toggleMenuWithSideMenuType(sideMenuType: HFSideMenuType, animated: Bool) {
+    let sideMenuTransitionType = getSideMenuTransitionTypeWithSideMenuType(sideMenuType)
+    beginWithSideMenuTransitionType(sideMenuTransitionType, animated: animated) {
+    }
+  }
+  
+  // MARK: Transition
+  
+  private func getSideMenuTransitionTypeWithSideMenuType(sideMenuType: HFSideMenuType) -> HFSideMenuTransitionType {
+    if sideMenuType == .HFSideMenuLeft {
+      if leftMenuStatus == .HFSideMenuStatusOpen {
+        return .HFSideMenuTransitionResetFromLeft
+      } else {
+        return .HFSideMenuTransitionToRight
+      }
+    }
+    return .HFSideMenuTransitionUnknown
+  }
+  
+  private func beginWithSideMenuTransitionType(sideMenuTransitionType: HFSideMenuTransitionType, animated: Bool, completion: () -> Void) {
+  }
+  
 }

    case HFSideMenuStatusUnknown
    case HFSideMenuStatusOpen
    case HFSideMenuStatusClose
  }
  
  private var menuWidth: CGFloat

    hideView.addGestureRecognizer(tapGestureRecognizer)
  }
  
  func hideViewOnTap() {
    toggleLeftMenuWithAnimation()
  }
  
  private func setupViewControllerWithSideMenuType(sideMenuType: HFSideMenuType) {
