diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -16,7 +16,7 @@
 -- along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 {-# OPTIONS_GHC -W -fwarn-incomplete-patterns -fwarn-unused-do-bind #-}
-{-# LANGUAGE CPP #-}
+{-# LANGUAGE CPP, RankNTypes #-}
 
 import Control.Applicative ((<|>))
 import Control.Monad (unless, when)
@@ -27,7 +27,7 @@
 import Distribution.Package (
   pkgName, unPackageName,
 #if MIN_VERSION_Cabal(2,0,0)
-  PackageName, mkPackageName,
+  mkPackageName,
 #else
   PackageName (PackageName),
 #endif
@@ -37,9 +37,10 @@
   PackageDescription,
   emptyBuildInfo,
   extraLibDirs,
+  extraLibs,
   package,
 #if MIN_VERSION_Cabal(2,0,0)
-  FlagName, mkFlagName,
+  mkFlagName,
 #else
   FlagName (FlagName),
 #endif
@@ -90,7 +91,12 @@
     preTest
     ),
   )
-import Distribution.Simple.Utils (die, info, installOrdinaryFile, notice)
+#if MIN_VERSION_Cabal(2,0,0)
+import Distribution.Simple.Utils (die')
+#else
+import Distribution.Simple.Utils (die)
+#endif
+import Distribution.Simple.Utils (info, installOrdinaryFile, notice)
 import Distribution.Verbosity (Verbosity, normal)
 import System.Directory (
   createDirectoryIfMissing,
@@ -104,6 +110,8 @@
 import System.Environment (lookupEnv, setEnv)
 import System.FilePath ((</>), joinPath, takeDirectory)
 
+type DieFn = forall a. String -> IO a
+
 #if !MIN_VERSION_Cabal(2,0,0)
 mkPackageName = PackageName
 mkFlagName = FlagName
@@ -123,7 +131,13 @@
 qtahHooks :: UserHooks
 qtahHooks = simpleUserHooks
   { hookedPrograms = [generatorProgram]
-  , postConf = \args cf pd lbi -> do libDir <- lookupQtahCppLibDir lbi
+  , postConf = \args cf pd lbi -> do libDir <-
+                                       lookupQtahCppLibDir lbi
+#if MIN_VERSION_Cabal(2,0,0)
+                                       (die' $ fromFlagOrDefault normal $ configVerbosity cf)
+#else
+                                       die
+#endif
                                      storeQtahCppLibDir libDir
                                      generateSources cf lbi libDir
                                      postConf simpleUserHooks args cf pd lbi
@@ -148,14 +162,14 @@
 qtahCppLibDirFile :: FilePath
 qtahCppLibDirFile = "dist/build/qtah-cpp-libdir"
 
-lookupQtahCppLibDir :: LocalBuildInfo -> IO String
-lookupQtahCppLibDir localBuildInfo = do
+lookupQtahCppLibDir :: LocalBuildInfo -> DieFn -> IO String
+lookupQtahCppLibDir localBuildInfo dieFn = do
   -- Look for an installed qtah-cpp package.
   qtahCppPkg <- case lookupPackageName (installedPkgs localBuildInfo) $
                      mkPackageName cppPackageName of
     [(_, [qtahCppPkg])] -> return qtahCppPkg
     results ->
-      die $ concat
+      dieFn $ concat
       [packageName, ": Failed to find a unique ", cppPackageName, " installation.  Found ",
        show results, "."]
 
@@ -163,7 +177,7 @@
   -- where libraryDirs includes the library directories of dependencies as well.
   case filter (\x -> cppPackageName `isInfixOf` x) $ libraryDirs qtahCppPkg of
     [libDir] -> return libDir
-    libDirs -> die $ concat
+    libDirs -> dieFn $ concat
                [packageName, ": Expected a single library directory for ",
                 cppPackageName, ", got ", show libDirs, "."]
 
@@ -175,7 +189,13 @@
 addLibDir :: IO HookedBuildInfo
 addLibDir = do
   qtahCppLibDir <- readFile qtahCppLibDirFile
-  return (Just emptyBuildInfo {extraLibDirs = [qtahCppLibDir]}, [])
+  -- We add qtah to extra-libraries here, because we only know its path now,
+  -- after the configure step.  If we put "extra-libraries: qtah" in qtah.cabal,
+  -- then "cabal configure" fails because it can't find libqtah.so.
+  return (Just emptyBuildInfo { extraLibDirs = [qtahCppLibDir]
+                              , extraLibs = ["qtah"]
+                              },
+          [])
 
 generatorProgram :: Program
 generatorProgram = simpleProgram "qtah-generator"
@@ -184,6 +204,11 @@
 generateSources configFlags localBuildInfo qtahCppLibDir = do
   let verbosity = fromFlagOrDefault normal $ configVerbosity configFlags
       programDb = withPrograms localBuildInfo
+#if MIN_VERSION_Cabal(2,0,0)
+      dieFn = die' verbosity
+#else
+      dieFn = die
+#endif
 
   -- Parse the Qt version to use from flags and the environment, and export it
   -- to the generator.
@@ -194,12 +219,12 @@
   qtahCppQtVersion <-
     (\contents -> case lines contents of
        [line] -> return line
-       _ -> die $ concat
+       _ -> dieFn $ concat
             [packageName, ": Expected a single line in ", qtahCppQtVersionFile, ", got ",
              show contents, "."]) =<<
     readFile qtahCppQtVersionFile
   when (qtVersion /= qtahCppQtVersion) $
-    die $ concat
+    dieFn $ concat
     [packageName, ": Qt version mismatch between ", packageName, " (", qtVersion, ") and ",
      cppPackageName, " (", qtahCppQtVersion, ").  Please reconfigure one or the other."]
 
@@ -285,6 +310,11 @@
 exportQtVersion configFlags localBuildInfo = do
   let verbosity = fromFlagOrDefault normal $ configVerbosity configFlags
       programDb = withPrograms localBuildInfo
+#if MIN_VERSION_Cabal(2,0,0)
+      dieFn = die' verbosity
+#else
+      dieFn = die
+#endif
 
   -- Determine what version of Qt to use.  If we have a Qt version preference
   -- specified, either through package flags or through QTAH_QT, then
@@ -306,7 +336,7 @@
           qt5Flag = fromMaybe False $ lookup (mkFlagName "qt5") flags
           qtFlag = if qt4Flag then Just 4 else if qt5Flag then Just 5 else Nothing
       when (qt4Flag && qt5Flag) $
-        die $ concat
+        dieFn $ concat
         [packageName, ": The qt4 and qt5 flags are mutually exclusive.  Please select at most one."]
 
       -- Inspect the QTAH_QT environment variable.
@@ -315,7 +345,7 @@
         Just s | not $ null s -> do
           let majorStr = takeWhile (/= '.') s
           unless (all isDigit majorStr) $
-            die $ concat [packageName, ": Invalid QTAH_QT value ", show s,
+            dieFn $ concat [packageName, ": Invalid QTAH_QT value ", show s,
                           ".  Expected a numeric version string."]
           return $ Just (read majorStr :: Int)
         _ -> return Nothing
@@ -326,7 +356,7 @@
         -- If both QTAH_QT and one of the qtX flags above is set, then they must agree.
         (Just m, Just n) -> do
           when (m /= n) $
-            die $ concat
+            dieFn $ concat
             [packageName, ": QTAH_QT=", show $ fromMaybe "" qtahQtStr, " and the qt",
              show n, " flag conflict."]
         -- Otherwise, if QTAH_QT is not already set but we have a flag preference,
@@ -356,12 +386,12 @@
 
   -- Log a message showing which Qt qtah-generator is actually using.
   generatorConfiguredProgram <-
-    maybe (die $ packageName ++ ": Couldn't find qtah-generator.  Is it installed?") return $
+    maybe (dieFn $ packageName ++ ": Couldn't find qtah-generator.  Is it installed?") return $
     lookupProgram generatorProgram programDb
   qtVersionOutput <- getProgramOutput verbosity generatorConfiguredProgram ["--qt-version"]
   qtVersion <- case lines qtVersionOutput of
     [line] -> return line
-    _ -> die $ concat
+    _ -> dieFn $ concat
          [packageName, ": Couldn't understand qtah-generator --qt-version output: ",
           show qtVersionOutput]
   notice verbosity $
diff --git a/qtah-qt5.cabal b/qtah-qt5.cabal
--- a/qtah-qt5.cabal
+++ b/qtah-qt5.cabal
@@ -1,5 +1,5 @@
 name: qtah-qt5
-version: 0.4.0
+version: 0.5.0
 synopsis: Qt bindings for Haskell
 homepage: http://khumba.net/projects/qtah
 license: LGPL-3
@@ -28,6 +28,7 @@
     , Graphics.UI.Qtah.Core.QChar
     , Graphics.UI.Qtah.Core.QChildEvent
     , Graphics.UI.Qtah.Core.QCoreApplication
+    , Graphics.UI.Qtah.Core.QDate
     , Graphics.UI.Qtah.Core.QDir
     , Graphics.UI.Qtah.Core.QEvent
     , Graphics.UI.Qtah.Core.QItemSelection
@@ -48,11 +49,13 @@
     , Graphics.UI.Qtah.Core.QMarginsF
     , Graphics.UI.Qtah.Core.QModelIndex
     , Graphics.UI.Qtah.Core.QObject
+    , Graphics.UI.Qtah.Core.QPalette
     , Graphics.UI.Qtah.Core.QPersistentModelIndex
     , Graphics.UI.Qtah.Core.QPoint
     , Graphics.UI.Qtah.Core.QPointF
     , Graphics.UI.Qtah.Core.QRect
     , Graphics.UI.Qtah.Core.QRectF
+    , Graphics.UI.Qtah.Core.QSettings
     , Graphics.UI.Qtah.Core.QSize
     , Graphics.UI.Qtah.Core.QSizeF
     , Graphics.UI.Qtah.Core.QString
@@ -74,6 +77,7 @@
     , Graphics.UI.Qtah.Gui.QClipboard
     , Graphics.UI.Qtah.Gui.QCloseEvent
     , Graphics.UI.Qtah.Gui.QColor
+    , Graphics.UI.Qtah.Gui.QCursor
     , Graphics.UI.Qtah.Gui.QDoubleValidator
     , Graphics.UI.Qtah.Gui.QEnterEvent
     , Graphics.UI.Qtah.Gui.QExposeEvent
@@ -116,6 +120,7 @@
     , Graphics.UI.Qtah.Std
     , Graphics.UI.Qtah.Widgets.QAbstractButton
     , Graphics.UI.Qtah.Widgets.QAbstractGraphicsShapeItem
+    , Graphics.UI.Qtah.Widgets.QAbstractItemDelegate
     , Graphics.UI.Qtah.Widgets.QAbstractItemView
     , Graphics.UI.Qtah.Widgets.QAbstractScrollArea
     , Graphics.UI.Qtah.Widgets.QAbstractSlider
@@ -126,9 +131,12 @@
     , Graphics.UI.Qtah.Widgets.QBoxLayout
     , Graphics.UI.Qtah.Widgets.QButtonGroup
     , Graphics.UI.Qtah.Widgets.QCheckBox
+    , Graphics.UI.Qtah.Widgets.QDateEdit
+    , Graphics.UI.Qtah.Widgets.QDateTimeEdit
     , Graphics.UI.Qtah.Widgets.QDial
     , Graphics.UI.Qtah.Widgets.QDialog
     , Graphics.UI.Qtah.Widgets.QDialogButtonBox
+    , Graphics.UI.Qtah.Widgets.QDockWidget
     , Graphics.UI.Qtah.Widgets.QDoubleSpinBox
     , Graphics.UI.Qtah.Widgets.QFileDialog
     , Graphics.UI.Qtah.Widgets.QFormLayout
@@ -170,10 +178,13 @@
     , Graphics.UI.Qtah.Widgets.QStackedLayout
     , Graphics.UI.Qtah.Widgets.QStackedWidget
     , Graphics.UI.Qtah.Widgets.QStatusBar
+    , Graphics.UI.Qtah.Widgets.QStyledItemDelegate
     , Graphics.UI.Qtah.Widgets.QSystemTrayIcon
     , Graphics.UI.Qtah.Widgets.QTabWidget
     , Graphics.UI.Qtah.Widgets.QTextEdit
     , Graphics.UI.Qtah.Widgets.QToolBar
+    , Graphics.UI.Qtah.Widgets.QToolBox
+    , Graphics.UI.Qtah.Widgets.QToolButton
     , Graphics.UI.Qtah.Widgets.QTreeView
     , Graphics.UI.Qtah.Widgets.QTreeWidget
     , Graphics.UI.Qtah.Widgets.QTreeWidgetItem
@@ -187,6 +198,7 @@
     , Graphics.UI.Qtah.Generated.Core.QChar
     , Graphics.UI.Qtah.Generated.Core.QChildEvent
     , Graphics.UI.Qtah.Generated.Core.QCoreApplication
+    , Graphics.UI.Qtah.Generated.Core.QDate
     , Graphics.UI.Qtah.Generated.Core.QDir
     , Graphics.UI.Qtah.Generated.Core.QEvent
     , Graphics.UI.Qtah.Generated.Core.QItemSelection
@@ -207,11 +219,13 @@
     , Graphics.UI.Qtah.Generated.Core.QMarginsF
     , Graphics.UI.Qtah.Generated.Core.QModelIndex
     , Graphics.UI.Qtah.Generated.Core.QObject
+    , Graphics.UI.Qtah.Generated.Core.QPalette
     , Graphics.UI.Qtah.Generated.Core.QPersistentModelIndex
     , Graphics.UI.Qtah.Generated.Core.QPoint
     , Graphics.UI.Qtah.Generated.Core.QPointF
     , Graphics.UI.Qtah.Generated.Core.QRect
     , Graphics.UI.Qtah.Generated.Core.QRectF
+    , Graphics.UI.Qtah.Generated.Core.QSettings
     , Graphics.UI.Qtah.Generated.Core.QSize
     , Graphics.UI.Qtah.Generated.Core.QSizeF
     , Graphics.UI.Qtah.Generated.Core.QString
@@ -231,6 +245,7 @@
     , Graphics.UI.Qtah.Generated.Gui.QClipboard
     , Graphics.UI.Qtah.Generated.Gui.QCloseEvent
     , Graphics.UI.Qtah.Generated.Gui.QColor
+    , Graphics.UI.Qtah.Generated.Gui.QCursor
     , Graphics.UI.Qtah.Generated.Gui.QDoubleValidator
     , Graphics.UI.Qtah.Generated.Gui.QEnterEvent
     , Graphics.UI.Qtah.Generated.Gui.QExposeEvent
@@ -270,6 +285,7 @@
     , Graphics.UI.Qtah.Generated.Internal.SceneEventListener
     , Graphics.UI.Qtah.Generated.Widgets.QAbstractButton
     , Graphics.UI.Qtah.Generated.Widgets.QAbstractGraphicsShapeItem
+    , Graphics.UI.Qtah.Generated.Widgets.QAbstractItemDelegate
     , Graphics.UI.Qtah.Generated.Widgets.QAbstractItemView
     , Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea
     , Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider
@@ -280,9 +296,12 @@
     , Graphics.UI.Qtah.Generated.Widgets.QBoxLayout
     , Graphics.UI.Qtah.Generated.Widgets.QButtonGroup
     , Graphics.UI.Qtah.Generated.Widgets.QCheckBox
+    , Graphics.UI.Qtah.Generated.Widgets.QDateEdit
+    , Graphics.UI.Qtah.Generated.Widgets.QDateTimeEdit
     , Graphics.UI.Qtah.Generated.Widgets.QDial
     , Graphics.UI.Qtah.Generated.Widgets.QDialog
     , Graphics.UI.Qtah.Generated.Widgets.QDialogButtonBox
+    , Graphics.UI.Qtah.Generated.Widgets.QDockWidget
     , Graphics.UI.Qtah.Generated.Widgets.QDoubleSpinBox
     , Graphics.UI.Qtah.Generated.Widgets.QFileDialog
     , Graphics.UI.Qtah.Generated.Widgets.QFormLayout
@@ -324,10 +343,13 @@
     , Graphics.UI.Qtah.Generated.Widgets.QStackedLayout
     , Graphics.UI.Qtah.Generated.Widgets.QStackedWidget
     , Graphics.UI.Qtah.Generated.Widgets.QStatusBar
+    , Graphics.UI.Qtah.Generated.Widgets.QStyledItemDelegate
     , Graphics.UI.Qtah.Generated.Widgets.QSystemTrayIcon
     , Graphics.UI.Qtah.Generated.Widgets.QTabWidget
     , Graphics.UI.Qtah.Generated.Widgets.QTextEdit
     , Graphics.UI.Qtah.Generated.Widgets.QToolBar
+    , Graphics.UI.Qtah.Generated.Widgets.QToolBox
+    , Graphics.UI.Qtah.Generated.Widgets.QToolButton
     , Graphics.UI.Qtah.Generated.Widgets.QTreeView
     , Graphics.UI.Qtah.Generated.Widgets.QTreeWidget
     , Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem
@@ -344,29 +366,28 @@
       base >=4 && <5
     , binary >=0.7 && <0.9
     , bytestring >=0.10 && <0.11
-    , hoppy-runtime >=0.4 && <0.5
-    , qtah-cpp-qt5 >=0.4 && <0.5
-    , qtah-generator >=0.4 && <0.5
+    , hoppy-runtime >=0.5 && <0.6
+    , qtah-cpp-qt5 >=0.5 && <0.6
+    , qtah-generator >=0.5 && <0.6
   hs-source-dirs: src
   ghc-options: -W -fwarn-incomplete-patterns -fwarn-unused-do-bind
   default-language: Haskell2010
-  extra-libraries: qtah
+  -- There would be an "extra-libraries: qtah" here, but we need to add it from
+  -- Setup.hs instead.
 
 test-suite test-qtah
   type: exitcode-stdio-1.0
   main-is: Main.hs
   other-modules:
-      Main
-    , Graphics.UI.Qtah.EventTest
+      Graphics.UI.Qtah.EventTest
   build-depends:
       base >=4 && <5
-    , hoppy-runtime >=0.4 && <0.5
+    , hoppy-runtime >=0.5 && <0.6
     , HUnit >=1.2 && <1.7
     , qtah-qt5
   hs-source-dirs: tests
   ghc-options: -W -fwarn-incomplete-patterns -fwarn-unused-do-bind -dynamic
   default-language: Haskell2010
-  extra-libraries: qtah
 
 custom-setup
   setup-depends:
diff --git a/src/Graphics/UI/Qtah/Core/QDate.hs b/src/Graphics/UI/Qtah/Core/QDate.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QDate.hs
diff --git a/src/Graphics/UI/Qtah/Core/QPalette.hs b/src/Graphics/UI/Qtah/Core/QPalette.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QPalette.hs
diff --git a/src/Graphics/UI/Qtah/Core/QSettings.hs b/src/Graphics/UI/Qtah/Core/QSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Core/QSettings.hs
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QDate.hs b/src/Graphics/UI/Qtah/Generated/Core/QDate.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QDate.hs
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QPalette.hs b/src/Graphics/UI/Qtah/Generated/Core/QPalette.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QPalette.hs
diff --git a/src/Graphics/UI/Qtah/Generated/Core/QSettings.hs b/src/Graphics/UI/Qtah/Generated/Core/QSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Core/QSettings.hs
diff --git a/src/Graphics/UI/Qtah/Generated/Gui/QCursor.hs b/src/Graphics/UI/Qtah/Generated/Gui/QCursor.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Gui/QCursor.hs
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemDelegate.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemDelegate.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemDelegate.hs
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QDateEdit.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QDateEdit.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QDateEdit.hs
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QDateTimeEdit.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QDateTimeEdit.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QDateTimeEdit.hs
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QDockWidget.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QDockWidget.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QDockWidget.hs
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QStyledItemDelegate.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QStyledItemDelegate.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QStyledItemDelegate.hs
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QToolBox.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QToolBox.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QToolBox.hs
diff --git a/src/Graphics/UI/Qtah/Generated/Widgets/QToolButton.hs b/src/Graphics/UI/Qtah/Generated/Widgets/QToolButton.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generated/Widgets/QToolButton.hs
diff --git a/src/Graphics/UI/Qtah/Gui/QCursor.hs b/src/Graphics/UI/Qtah/Gui/QCursor.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Gui/QCursor.hs
diff --git a/src/Graphics/UI/Qtah/Internal/Callback.hs-boot b/src/Graphics/UI/Qtah/Internal/Callback.hs-boot
--- a/src/Graphics/UI/Qtah/Internal/Callback.hs-boot
+++ b/src/Graphics/UI/Qtah/Internal/Callback.hs-boot
@@ -8,6 +8,10 @@
 module Graphics.UI.Qtah.Internal.Callback (
   callbackBoolVoid_newFunPtr,
   callbackBoolVoid_new,
+  callbackDockWidgetAreaVoid_newFunPtr,
+  callbackDockWidgetAreaVoid_new,
+  callbackDockWidgetAreasVoid_newFunPtr,
+  callbackDockWidgetAreasVoid_new,
   callbackDoubleVoid_newFunPtr,
   callbackDoubleVoid_new,
   callbackIntBoolVoid_newFunPtr,
@@ -46,6 +50,10 @@
   callbackQAbstractSliderActionVoid_new,
   callbackQClipboardModeVoid_newFunPtr,
   callbackQClipboardModeVoid_new,
+  callbackQDateVoid_newFunPtr,
+  callbackQDateVoid_new,
+  callbackQDockWidgetFeaturesVoid_newFunPtr,
+  callbackQDockWidgetFeaturesVoid_new,
   callbackQModelIndexIntIntQModelIndexIntVoid_newFunPtr,
   callbackQModelIndexIntIntQModelIndexIntVoid_new,
   callbackQModelIndexIntIntVoid_newFunPtr,
@@ -92,26 +100,28 @@
 import qualified Graphics.UI.Qtah.Core.HPoint as HPoint
 import qualified Graphics.UI.Qtah.Core.HSize as HSize
 import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M2
-import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M18
-import qualified Graphics.UI.Qtah.Generated.Core.QItemSelection as M20
-import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M30
-import qualified Graphics.UI.Qtah.Generated.Core.QObject as M32
-import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M36
-import qualified Graphics.UI.Qtah.Generated.Core.QSize as M44
-import qualified Graphics.UI.Qtah.Generated.Core.QString as M48
-import qualified Graphics.UI.Qtah.Generated.Core.QVector.Int as M84
-import qualified Graphics.UI.Qtah.Generated.Core.Types as M62
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QClipboard as M96
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M116
-import qualified Graphics.UI.Qtah.Generated.Gui.QPaintEvent as M134
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M168
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M180
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M188
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M192
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M220
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QSystemTrayIcon as M292
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem as M304
-import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M308
+import qualified Graphics.UI.Qtah.Generated.Core.QDate as M16
+import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M20
+import qualified Graphics.UI.Qtah.Generated.Core.QItemSelection as M22
+import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M32
+import qualified Graphics.UI.Qtah.Generated.Core.QObject as M34
+import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M40
+import qualified Graphics.UI.Qtah.Generated.Core.QSize as M50
+import qualified Graphics.UI.Qtah.Generated.Core.QString as M54
+import qualified Graphics.UI.Qtah.Generated.Core.QVector.Int as M90
+import qualified Graphics.UI.Qtah.Generated.Core.Types as M68
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QClipboard as M102
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M124
+import qualified Graphics.UI.Qtah.Generated.Gui.QPaintEvent as M142
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QWindow as M176
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractButton as M188
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider as M198
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAction as M202
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QDockWidget as M224
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M236
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QSystemTrayIcon as M310
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem as M326
+import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M330
 import qualified Prelude as HoppyP
 import qualified Prelude as QtahP
 
@@ -120,6 +130,14 @@
 
 callbackBoolVoid_new :: (HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFHR.CBool -> HoppyP.IO ()))
 
+callbackDockWidgetAreaVoid_newFunPtr :: (M68.QtDockWidgetArea -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+
+callbackDockWidgetAreaVoid_new :: (M68.QtDockWidgetArea -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+
+callbackDockWidgetAreasVoid_newFunPtr :: (M68.QtDockWidgetAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+
+callbackDockWidgetAreasVoid_new :: (M68.QtDockWidgetAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+
 callbackDoubleVoid_newFunPtr :: (HoppyP.Double -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CDouble -> HoppyP.IO ()))
 
 callbackDoubleVoid_new :: (HoppyP.Double -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CDouble -> HoppyP.IO ()))
@@ -136,138 +154,146 @@
 
 callbackIntVoid_new :: (HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackOrientationVoid_newFunPtr :: (M62.QtOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackOrientationVoid_newFunPtr :: (M68.QtOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackOrientationVoid_new :: (M62.QtOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackOrientationVoid_new :: (M68.QtOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackPtrQAbstractButtonBoolVoid_newFunPtr :: (M180.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M180.QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()))
+callbackPtrQAbstractButtonBoolVoid_newFunPtr :: (M188.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M188.QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()))
 
-callbackPtrQAbstractButtonBoolVoid_new :: (M180.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M180.QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()))
+callbackPtrQAbstractButtonBoolVoid_new :: (M188.QAbstractButton -> HoppyP.Bool -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M188.QAbstractButton -> HoppyFHR.CBool -> HoppyP.IO ()))
 
-callbackPtrQAbstractButtonVoid_newFunPtr :: (M180.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M180.QAbstractButton -> HoppyP.IO ()))
+callbackPtrQAbstractButtonVoid_newFunPtr :: (M188.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M188.QAbstractButton -> HoppyP.IO ()))
 
-callbackPtrQAbstractButtonVoid_new :: (M180.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M180.QAbstractButton -> HoppyP.IO ()))
+callbackPtrQAbstractButtonVoid_new :: (M188.QAbstractButton -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M188.QAbstractButton -> HoppyP.IO ()))
 
 callbackPtrQAbstractItemModelVoid_newFunPtr :: (M2.QAbstractItemModel -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M2.QAbstractItemModel -> HoppyP.IO ()))
 
 callbackPtrQAbstractItemModelVoid_new :: (M2.QAbstractItemModel -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M2.QAbstractItemModel -> HoppyP.IO ()))
 
-callbackPtrQActionVoid_newFunPtr :: (M192.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M192.QAction -> HoppyP.IO ()))
+callbackPtrQActionVoid_newFunPtr :: (M202.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M202.QAction -> HoppyP.IO ()))
 
-callbackPtrQActionVoid_new :: (M192.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M192.QAction -> HoppyP.IO ()))
+callbackPtrQActionVoid_new :: (M202.QAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M202.QAction -> HoppyP.IO ()))
 
-callbackPtrQGraphicsItemPtrQEventBool_newFunPtr :: (M220.QGraphicsItem -> M18.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M220.QGraphicsItem -> HoppyF.Ptr M18.QEvent -> HoppyP.IO HoppyFHR.CBool))
+callbackPtrQGraphicsItemPtrQEventBool_newFunPtr :: (M236.QGraphicsItem -> M20.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M236.QGraphicsItem -> HoppyF.Ptr M20.QEvent -> HoppyP.IO HoppyFHR.CBool))
 
-callbackPtrQGraphicsItemPtrQEventBool_new :: (M220.QGraphicsItem -> M18.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M220.QGraphicsItem -> HoppyF.Ptr M18.QEvent -> HoppyP.IO HoppyFHR.CBool))
+callbackPtrQGraphicsItemPtrQEventBool_new :: (M236.QGraphicsItem -> M20.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M236.QGraphicsItem -> HoppyF.Ptr M20.QEvent -> HoppyP.IO HoppyFHR.CBool))
 
-callbackPtrQObjectPtrQEventBool_newFunPtr :: (M32.QObject -> M18.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M32.QObject -> HoppyF.Ptr M18.QEvent -> HoppyP.IO HoppyFHR.CBool))
+callbackPtrQObjectPtrQEventBool_newFunPtr :: (M34.QObject -> M20.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M34.QObject -> HoppyF.Ptr M20.QEvent -> HoppyP.IO HoppyFHR.CBool))
 
-callbackPtrQObjectPtrQEventBool_new :: (M32.QObject -> M18.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M32.QObject -> HoppyF.Ptr M18.QEvent -> HoppyP.IO HoppyFHR.CBool))
+callbackPtrQObjectPtrQEventBool_new :: (M34.QObject -> M20.QEvent -> HoppyP.IO HoppyP.Bool) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M34.QObject -> HoppyF.Ptr M20.QEvent -> HoppyP.IO HoppyFHR.CBool))
 
-callbackPtrQObjectVoid_newFunPtr :: (M32.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M32.QObject -> HoppyP.IO ()))
+callbackPtrQObjectVoid_newFunPtr :: (M34.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M34.QObject -> HoppyP.IO ()))
 
-callbackPtrQObjectVoid_new :: (M32.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M32.QObject -> HoppyP.IO ()))
+callbackPtrQObjectVoid_new :: (M34.QObject -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M34.QObject -> HoppyP.IO ()))
 
-callbackPtrQPaintEventVoid_newFunPtr :: (M134.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M134.QPaintEvent -> HoppyP.IO ()))
+callbackPtrQPaintEventVoid_newFunPtr :: (M142.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M142.QPaintEvent -> HoppyP.IO ()))
 
-callbackPtrQPaintEventVoid_new :: (M134.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M134.QPaintEvent -> HoppyP.IO ()))
+callbackPtrQPaintEventVoid_new :: (M142.QPaintEvent -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M142.QPaintEvent -> HoppyP.IO ()))
 
-callbackPtrQTreeWidgetItemIntVoid_newFunPtr :: (M304.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M304.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemIntVoid_newFunPtr :: (M326.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M326.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackPtrQTreeWidgetItemIntVoid_new :: (M304.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M304.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemIntVoid_new :: (M326.QTreeWidgetItem -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M326.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_newFunPtr :: (M304.QTreeWidgetItem -> M304.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M304.QTreeWidgetItem -> HoppyF.Ptr M304.QTreeWidgetItem -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_newFunPtr :: (M326.QTreeWidgetItem -> M326.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M326.QTreeWidgetItem -> HoppyF.Ptr M326.QTreeWidgetItem -> HoppyP.IO ()))
 
-callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_new :: (M304.QTreeWidgetItem -> M304.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M304.QTreeWidgetItem -> HoppyF.Ptr M304.QTreeWidgetItem -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemPtrQTreeWidgetItemVoid_new :: (M326.QTreeWidgetItem -> M326.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M326.QTreeWidgetItem -> HoppyF.Ptr M326.QTreeWidgetItem -> HoppyP.IO ()))
 
-callbackPtrQTreeWidgetItemVoid_newFunPtr :: (M304.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M304.QTreeWidgetItem -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemVoid_newFunPtr :: (M326.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M326.QTreeWidgetItem -> HoppyP.IO ()))
 
-callbackPtrQTreeWidgetItemVoid_new :: (M304.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M304.QTreeWidgetItem -> HoppyP.IO ()))
+callbackPtrQTreeWidgetItemVoid_new :: (M326.QTreeWidgetItem -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M326.QTreeWidgetItem -> HoppyP.IO ()))
 
-callbackPtrQWidgetPtrQWidgetVoid_newFunPtr :: (M308.QWidget -> M308.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M308.QWidget -> HoppyF.Ptr M308.QWidget -> HoppyP.IO ()))
+callbackPtrQWidgetPtrQWidgetVoid_newFunPtr :: (M330.QWidget -> M330.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M330.QWidget -> HoppyF.Ptr M330.QWidget -> HoppyP.IO ()))
 
-callbackPtrQWidgetPtrQWidgetVoid_new :: (M308.QWidget -> M308.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M308.QWidget -> HoppyF.Ptr M308.QWidget -> HoppyP.IO ()))
+callbackPtrQWidgetPtrQWidgetVoid_new :: (M330.QWidget -> M330.QWidget -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M330.QWidget -> HoppyF.Ptr M330.QWidget -> HoppyP.IO ()))
 
-callbackQAbstractSliderActionVoid_newFunPtr :: (M188.QAbstractSliderAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQAbstractSliderActionVoid_newFunPtr :: (M198.QAbstractSliderAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQAbstractSliderActionVoid_new :: (M188.QAbstractSliderAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQAbstractSliderActionVoid_new :: (M198.QAbstractSliderAction -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQClipboardModeVoid_newFunPtr :: (M96.QClipboardMode -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQClipboardModeVoid_newFunPtr :: (M102.QClipboardMode -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQClipboardModeVoid_new :: (M96.QClipboardMode -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQClipboardModeVoid_new :: (M102.QClipboardMode -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQModelIndexIntIntQModelIndexIntVoid_newFunPtr :: (M30.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M30.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M30.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M30.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackQDateVoid_newFunPtr :: (M16.QDate -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M16.QDateConst -> HoppyP.IO ()))
 
-callbackQModelIndexIntIntQModelIndexIntVoid_new :: (M30.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M30.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M30.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M30.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackQDateVoid_new :: (M16.QDate -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M16.QDateConst -> HoppyP.IO ()))
 
-callbackQModelIndexIntIntVoid_newFunPtr :: (M30.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M30.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackQDockWidgetFeaturesVoid_newFunPtr :: (M224.QDockWidgetDockWidgetFeatures -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQModelIndexIntIntVoid_new :: (M30.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M30.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
+callbackQDockWidgetFeaturesVoid_new :: (M224.QDockWidgetDockWidgetFeatures -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQModelIndexQModelIndexQVectorIntVoid_newFunPtr :: (M30.QModelIndex -> M30.QModelIndex -> M84.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M30.QModelIndexConst -> HoppyF.Ptr M30.QModelIndexConst -> HoppyF.Ptr M84.QVectorInt -> HoppyP.IO ()))
+callbackQModelIndexIntIntQModelIndexIntVoid_newFunPtr :: (M32.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M32.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M32.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M32.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQModelIndexQModelIndexQVectorIntVoid_new :: (M30.QModelIndex -> M30.QModelIndex -> M84.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M30.QModelIndexConst -> HoppyF.Ptr M30.QModelIndexConst -> HoppyF.Ptr M84.QVectorInt -> HoppyP.IO ()))
+callbackQModelIndexIntIntQModelIndexIntVoid_new :: (M32.QModelIndex -> HoppyP.Int -> HoppyP.Int -> M32.QModelIndex -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M32.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M32.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQModelIndexQModelIndexVoid_newFunPtr :: (M30.QModelIndex -> M30.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M30.QModelIndexConst -> HoppyF.Ptr M30.QModelIndexConst -> HoppyP.IO ()))
+callbackQModelIndexIntIntVoid_newFunPtr :: (M32.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M32.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQModelIndexQModelIndexVoid_new :: (M30.QModelIndex -> M30.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M30.QModelIndexConst -> HoppyF.Ptr M30.QModelIndexConst -> HoppyP.IO ()))
+callbackQModelIndexIntIntVoid_new :: (M32.QModelIndex -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M32.QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackQModelIndexVoid_newFunPtr :: (M30.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M30.QModelIndexConst -> HoppyP.IO ()))
+callbackQModelIndexQModelIndexQVectorIntVoid_newFunPtr :: (M32.QModelIndex -> M32.QModelIndex -> M90.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M32.QModelIndexConst -> HoppyF.Ptr M32.QModelIndexConst -> HoppyF.Ptr M90.QVectorInt -> HoppyP.IO ()))
 
-callbackQModelIndexVoid_new :: (M30.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M30.QModelIndexConst -> HoppyP.IO ()))
+callbackQModelIndexQModelIndexQVectorIntVoid_new :: (M32.QModelIndex -> M32.QModelIndex -> M90.QVectorInt -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M32.QModelIndexConst -> HoppyF.Ptr M32.QModelIndexConst -> HoppyF.Ptr M90.QVectorInt -> HoppyP.IO ()))
 
-callbackQPointVoid_newFunPtr :: (HPoint.HPoint -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M36.QPointConst -> HoppyP.IO ()))
+callbackQModelIndexQModelIndexVoid_newFunPtr :: (M32.QModelIndex -> M32.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M32.QModelIndexConst -> HoppyF.Ptr M32.QModelIndexConst -> HoppyP.IO ()))
 
-callbackQPointVoid_new :: (HPoint.HPoint -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M36.QPointConst -> HoppyP.IO ()))
+callbackQModelIndexQModelIndexVoid_new :: (M32.QModelIndex -> M32.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M32.QModelIndexConst -> HoppyF.Ptr M32.QModelIndexConst -> HoppyP.IO ()))
 
-callbackQSizeVoid_newFunPtr :: (HSize.HSize -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M44.QSizeConst -> HoppyP.IO ()))
+callbackQModelIndexVoid_newFunPtr :: (M32.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M32.QModelIndexConst -> HoppyP.IO ()))
 
-callbackQSizeVoid_new :: (HSize.HSize -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M44.QSizeConst -> HoppyP.IO ()))
+callbackQModelIndexVoid_new :: (M32.QModelIndex -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M32.QModelIndexConst -> HoppyP.IO ()))
 
-callbackQStringVoid_newFunPtr :: (QtahP.String -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M48.QStringConst -> HoppyP.IO ()))
+callbackQPointVoid_newFunPtr :: (HPoint.HPoint -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M40.QPointConst -> HoppyP.IO ()))
 
-callbackQStringVoid_new :: (QtahP.String -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M48.QStringConst -> HoppyP.IO ()))
+callbackQPointVoid_new :: (HPoint.HPoint -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M40.QPointConst -> HoppyP.IO ()))
 
-callbackQSystemTrayIconActivationReasonVoid_newFunPtr :: (M292.QSystemTrayIconActivationReason -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQSizeVoid_newFunPtr :: (HSize.HSize -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M50.QSizeConst -> HoppyP.IO ()))
 
-callbackQSystemTrayIconActivationReasonVoid_new :: (M292.QSystemTrayIconActivationReason -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQSizeVoid_new :: (HSize.HSize -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M50.QSizeConst -> HoppyP.IO ()))
 
-callbackQWindowVisibilityVoid_newFunPtr :: (M168.QWindowVisibility -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQStringVoid_newFunPtr :: (QtahP.String -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M54.QStringConst -> HoppyP.IO ()))
 
-callbackQWindowVisibilityVoid_new :: (M168.QWindowVisibility -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackQStringVoid_new :: (QtahP.String -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M54.QStringConst -> HoppyP.IO ()))
 
+callbackQSystemTrayIconActivationReasonVoid_newFunPtr :: (M310.QSystemTrayIconActivationReason -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+
+callbackQSystemTrayIconActivationReasonVoid_new :: (M310.QSystemTrayIconActivationReason -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+
+callbackQWindowVisibilityVoid_newFunPtr :: (M176.QWindowVisibility -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+
+callbackQWindowVisibilityVoid_new :: (M176.QWindowVisibility -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+
 callbackQrealVoid_newFunPtr :: (HoppyP.Double -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CDouble -> HoppyP.IO ()))
 
 callbackQrealVoid_new :: (HoppyP.Double -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CDouble -> HoppyP.IO ()))
 
-callbackRefConstQIconVoid_newFunPtr :: (M116.QIconConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M116.QIconConst -> HoppyP.IO ()))
+callbackRefConstQIconVoid_newFunPtr :: (M124.QIconConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M124.QIconConst -> HoppyP.IO ()))
 
-callbackRefConstQIconVoid_new :: (M116.QIconConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M116.QIconConst -> HoppyP.IO ()))
+callbackRefConstQIconVoid_new :: (M124.QIconConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M124.QIconConst -> HoppyP.IO ()))
 
-callbackRefConstQItemSelectionRefConstQItemSelectionVoid_newFunPtr :: (M20.QItemSelectionConst -> M20.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M20.QItemSelectionConst -> HoppyF.Ptr M20.QItemSelectionConst -> HoppyP.IO ()))
+callbackRefConstQItemSelectionRefConstQItemSelectionVoid_newFunPtr :: (M22.QItemSelectionConst -> M22.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyF.Ptr M22.QItemSelectionConst -> HoppyF.Ptr M22.QItemSelectionConst -> HoppyP.IO ()))
 
-callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new :: (M20.QItemSelectionConst -> M20.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M20.QItemSelectionConst -> HoppyF.Ptr M20.QItemSelectionConst -> HoppyP.IO ()))
+callbackRefConstQItemSelectionRefConstQItemSelectionVoid_new :: (M22.QItemSelectionConst -> M22.QItemSelectionConst -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyF.Ptr M22.QItemSelectionConst -> HoppyF.Ptr M22.QItemSelectionConst -> HoppyP.IO ()))
 
-callbackScreenOrientationVoid_newFunPtr :: (M62.QtScreenOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackScreenOrientationVoid_newFunPtr :: (M68.QtScreenOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackScreenOrientationVoid_new :: (M62.QtScreenOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackScreenOrientationVoid_new :: (M68.QtScreenOrientation -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackToolBarAreasVoid_newFunPtr :: (M62.QtToolBarAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackToolBarAreasVoid_newFunPtr :: (M68.QtToolBarAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackToolBarAreasVoid_new :: (M62.QtToolBarAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackToolBarAreasVoid_new :: (M68.QtToolBarAreas -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackToolButtonStyleVoid_newFunPtr :: (M62.QtToolButtonStyle -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackToolButtonStyleVoid_newFunPtr :: (M68.QtToolButtonStyle -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackToolButtonStyleVoid_new :: (M62.QtToolButtonStyle -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackToolButtonStyleVoid_new :: (M68.QtToolButtonStyle -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
 callbackVoid_newFunPtr :: HoppyP.IO () -> HoppyP.IO (HoppyF.FunPtr (HoppyP.IO ()))
 
 callbackVoid_new :: HoppyP.IO () -> HoppyP.IO (HoppyFHR.CCallback (HoppyP.IO ()))
 
-callbackWindowModalityVoid_newFunPtr :: (M62.QtWindowModality -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowModalityVoid_newFunPtr :: (M68.QtWindowModality -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackWindowModalityVoid_new :: (M62.QtWindowModality -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowModalityVoid_new :: (M68.QtWindowModality -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackWindowStateVoid_newFunPtr :: (M62.QtWindowState -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowStateVoid_newFunPtr :: (M68.QtWindowState -> HoppyP.IO ()) -> HoppyP.IO (HoppyF.FunPtr (HoppyFC.CInt -> HoppyP.IO ()))
 
-callbackWindowStateVoid_new :: (M62.QtWindowState -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
+callbackWindowStateVoid_new :: (M68.QtWindowState -> HoppyP.IO ()) -> HoppyP.IO (HoppyFHR.CCallback (HoppyFC.CInt -> HoppyP.IO ()))
diff --git a/src/Graphics/UI/Qtah/Std.hs b/src/Graphics/UI/Qtah/Std.hs
--- a/src/Graphics/UI/Qtah/Std.hs
+++ b/src/Graphics/UI/Qtah/Std.hs
@@ -10,6 +10,7 @@
   StdStringConstPtr (..),
   stdString_get,
   stdString_c_str,
+  stdString_data,
   stdString_size,
   stdString_EQ,
   stdString_NE,
@@ -26,12 +27,14 @@
   castStdStringToNonconst,
   stdString_new,
   stdString_newFromCString,
+  stdString_newFromCStringLen_raw,
   stdString_newCopy,
   StdStringSuper (..),
   StdStringSuperConst (..),
+  stdString_newFromCStringLen,
   ) where
 
-import Control.Monad ((<=<))
+import Control.Applicative ((<*))
 import qualified Foreign as HoppyF
 import qualified Foreign.C as HoppyFC
 import qualified Foreign.Hoppy.Runtime as HoppyFHR
@@ -40,10 +43,12 @@
 
 foreign import ccall "genpop__StdString_new" stdString_new' ::  HoppyP.IO (HoppyF.Ptr StdString)
 foreign import ccall "genpop__StdString_newFromCString" stdString_newFromCString' ::  HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr StdString)
+foreign import ccall "genpop__StdString_newFromCStringLen_raw" stdString_newFromCStringLen_raw' ::  HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CSize -> HoppyP.IO (HoppyF.Ptr StdString)
 foreign import ccall "genpop__StdString_newCopy" stdString_newCopy' ::  HoppyF.Ptr StdStringConst -> HoppyP.IO (HoppyF.Ptr StdString)
 foreign import ccall "genpop__StdString_at" stdString_at' ::  HoppyF.Ptr StdString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
 foreign import ccall "genpop__StdString_get" stdString_get' ::  HoppyF.Ptr StdStringConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CChar
 foreign import ccall "genpop__StdString_c_str" stdString_c_str' ::  HoppyF.Ptr StdStringConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+foreign import ccall "genpop__StdString_data" stdString_data' ::  HoppyF.Ptr StdStringConst -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
 foreign import ccall "genpop__StdString_size" stdString_size' ::  HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFC.CSize
 foreign import ccall "genpop__StdString_EQ" stdString_EQ' ::  HoppyF.Ptr StdStringConst -> HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFHR.CBool
 foreign import ccall "genpop__StdString_NE" stdString_NE' ::  HoppyF.Ptr StdStringConst -> HoppyF.Ptr StdStringConst -> HoppyP.IO HoppyFHR.CBool
@@ -86,6 +91,11 @@
   withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
   (stdString_c_str' arg'1')
 
+stdString_data :: (StdStringValue arg'1) => arg'1 -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
+stdString_data arg'1 =
+  withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
+  (stdString_data' arg'1')
+
 stdString_size :: (StdStringValue arg'1) => arg'1 -> HoppyP.IO HoppyFC.CSize
 stdString_size arg'1 =
   withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
@@ -242,6 +252,13 @@
   HoppyP.fmap StdString
   (stdString_newFromCString' arg'1')
 
+stdString_newFromCStringLen_raw ::  HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CSize -> HoppyP.IO StdString
+stdString_newFromCStringLen_raw arg'1 arg'2 =
+  let arg'1' = arg'1 in
+  let arg'2' = arg'2 in
+  HoppyP.fmap StdString
+  (stdString_newFromCStringLen_raw' arg'1' arg'2')
+
 stdString_newCopy :: (StdStringValue arg'1) => arg'1 -> HoppyP.IO StdString
 stdString_newCopy arg'1 =
   withStdStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
@@ -267,7 +284,7 @@
 
 instance HoppyFHR.Encodable StdString (HoppyP.String) where
   encode =
-    HoppyP.flip HoppyFC.withCString stdString_newFromCString
+    HoppyP.flip HoppyFC.withCStringLen stdString_newFromCStringLen
 
 instance HoppyFHR.Encodable StdStringConst (HoppyP.String) where
   encode = HoppyP.fmap (toStdStringConst) . HoppyFHR.encodeAs (HoppyP.undefined :: StdString)
@@ -277,4 +294,10 @@
 
 instance HoppyFHR.Decodable StdStringConst (HoppyP.String) where
   decode =
-    HoppyFC.peekCString <=< stdString_c_str
+    \s -> do
+      p <- stdString_data s
+      n <- stdString_size s
+      HoppyFC.peekCStringLen (p, HoppyP.fromIntegral n) <* HoppyFHR.touchCppPtr s
+stdString_newFromCStringLen :: HoppyFC.CStringLen -> HoppyP.IO StdString
+stdString_newFromCStringLen (p,n) =
+  stdString_newFromCStringLen_raw p (HoppyP.fromIntegral n)
diff --git a/src/Graphics/UI/Qtah/Widgets/QAbstractItemDelegate.hs b/src/Graphics/UI/Qtah/Widgets/QAbstractItemDelegate.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QAbstractItemDelegate.hs
diff --git a/src/Graphics/UI/Qtah/Widgets/QDateEdit.hs b/src/Graphics/UI/Qtah/Widgets/QDateEdit.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QDateEdit.hs
diff --git a/src/Graphics/UI/Qtah/Widgets/QDateTimeEdit.hs b/src/Graphics/UI/Qtah/Widgets/QDateTimeEdit.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QDateTimeEdit.hs
diff --git a/src/Graphics/UI/Qtah/Widgets/QDockWidget.hs b/src/Graphics/UI/Qtah/Widgets/QDockWidget.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QDockWidget.hs
diff --git a/src/Graphics/UI/Qtah/Widgets/QStyledItemDelegate.hs b/src/Graphics/UI/Qtah/Widgets/QStyledItemDelegate.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QStyledItemDelegate.hs
diff --git a/src/Graphics/UI/Qtah/Widgets/QToolBox.hs b/src/Graphics/UI/Qtah/Widgets/QToolBox.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QToolBox.hs
diff --git a/src/Graphics/UI/Qtah/Widgets/QToolButton.hs b/src/Graphics/UI/Qtah/Widgets/QToolButton.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Widgets/QToolButton.hs
