diff --git a/Graphics/UI/Gtk/ModelView/TreeStore.hs b/Graphics/UI/Gtk/ModelView/TreeStore.hs
--- a/Graphics/UI/Gtk/ModelView/TreeStore.hs
+++ b/Graphics/UI/Gtk/ModelView/TreeStore.hs
@@ -57,7 +57,7 @@
   ) where
 
 import Data.Bits
-import Data.Word (Word)
+import Data.Word (Word32)
 import Data.Maybe ( fromMaybe, isJust )
 import Data.Tree
 import Control.Monad ( when )
@@ -231,24 +231,22 @@
 -- low level bit-twiddling utility functions
 --
 
--- TODO: figure out how these things work when Word is 64 bits
-
-bitsNeeded :: Word -> Int
+bitsNeeded :: Word32 -> Int
 bitsNeeded n = bitsNeeded' 0 n
   where bitsNeeded' b 0 = b
         bitsNeeded' b n = bitsNeeded' (b+1) (n `shiftR` 1)
 
-getBitSlice :: TreeIter -> Int -> Int -> Word
+getBitSlice :: TreeIter -> Int -> Int -> Word32
 getBitSlice (TreeIter _ a b c) off count =
       getBitSliceWord a  off     count
   .|. getBitSliceWord b (off-32) count
   .|. getBitSliceWord c (off-64) count
 
-  where getBitSliceWord :: Word -> Int -> Int -> Word
+  where getBitSliceWord :: Word32 -> Int -> Int -> Word32
         getBitSliceWord word off count =
-          word `shiftR` off .&. (1 `shiftL` count - 1)
+          word `shift` (-off) .&. (1 `shiftL` count - 1)
 
-setBitSlice :: TreeIter -> Int -> Int -> Word -> TreeIter
+setBitSlice :: TreeIter -> Int -> Int -> Word32 -> TreeIter
 setBitSlice (TreeIter stamp a b c) off count value =
   assert (value < 1 `shiftL` count) $
   TreeIter stamp
@@ -256,10 +254,10 @@
            (setBitSliceWord b (off-32) count value)
            (setBitSliceWord c (off-64) count value)
 
-  where setBitSliceWord :: Word -> Int -> Int -> Word -> Word
+  where setBitSliceWord :: Word32 -> Int -> Int -> Word32 -> Word32
         setBitSliceWord word off count value =
-          let mask = (1 `shiftL` count - 1) `shiftL` off
-           in (word .&. complement mask) .|. (value `shiftL` off)
+          let mask = (1 `shiftL` count - 1) `shift` off
+           in (word .&. complement mask) .|. (value `shift` off)
 
 
 --iterPrefixEqual :: TreeIter -> TreeIter -> Int -> Bool
@@ -308,7 +306,7 @@
   where
   fP pos ti _ [] = Just ti -- the remaining bits are zero anyway
   fP pos ti [] _ = Nothing
-  fP pos ti (d:ds) (p:ps) = let idx = fromIntegral (p+1) :: Word in
+  fP pos ti (d:ds) (p:ps) = let idx = fromIntegral (p+1) in
     if idx >= bit d then Nothing else
     fP (pos+d) (setBitSlice ti pos d idx) ds ps
 
@@ -439,7 +437,7 @@
                 (Maybe TreeIter, Cache a)
 iterNthChild depth childIdx_ iter cache = let
     (pos,leaf,child) = getTreeIterLeaf depth iter
-    childIdx = fromIntegral childIdx_+1 :: Word
+    childIdx = fromIntegral childIdx_+1
     nextIter = setBitSlice iter (pos+leaf) child childIdx
   in
   if childIdx>=bit child then (Nothing, cache) else
diff --git a/Graphics/UI/Gtk/ModelView/Types.chs b/Graphics/UI/Gtk/ModelView/Types.chs
--- a/Graphics/UI/Gtk/ModelView/Types.chs
+++ b/Graphics/UI/Gtk/ModelView/Types.chs
@@ -76,6 +76,7 @@
 {#import Graphics.UI.Gtk.Types#}	(TreeModel, TreeModelSort, TreeModelFilter,
                                    Pixbuf)
 import Data.Char ( isDigit )
+import Data.Word (Word32)
 import Control.Monad ( liftM )
 
 {# context lib="gtk" prefix="gtk" #}
@@ -120,7 +121,7 @@
 -- use of the three words is therefore implementation specific. See also
 -- 'TreePath'.
 --
-data TreeIter = TreeIter {-# UNPACK #-} !CInt !Word !Word !Word
+data TreeIter = TreeIter {-# UNPACK #-} !CInt !Word32 !Word32 !Word32
 	      deriving Show
 
 {#pointer *TreeIter as TreeIterPtr -> TreeIter #}
@@ -137,7 +138,7 @@
                            (ptrToWord user_data2)
                            (ptrToWord user_data3))
 
-    where ptrToWord :: Ptr a -> Word
+    where ptrToWord :: Ptr a -> Word32
           ptrToWord ptr = fromIntegral (ptr `minusPtr` nullPtr)
 
   poke ptr (TreeIter stamp user_data user_data2 user_data3) = do
@@ -146,7 +147,7 @@
     {# set TreeIter->user_data2 #} ptr (wordToPtr user_data2)
     {# set TreeIter->user_data3 #} ptr (wordToPtr user_data3)
 
-    where wordToPtr :: Word -> Ptr a
+    where wordToPtr :: Word32 -> Ptr a
           wordToPtr word = nullPtr `plusPtr` fromIntegral word
 
 -- Pass a pointer to a structure large enough to hold a GtkTreeIter
diff --git a/Graphics/UI/Gtk/Types.chs b/Graphics/UI/Gtk/Types.chs
--- a/Graphics/UI/Gtk/Types.chs
+++ b/Graphics/UI/Gtk/Types.chs
@@ -86,10 +86,22 @@
   toRecentManager, 
   mkRecentManager, unRecentManager,
   castToRecentManager, gTypeRecentManager,
+  Drawable(Drawable), DrawableClass,
+  toDrawable, 
+  mkDrawable, unDrawable,
+  castToDrawable, gTypeDrawable,
   DrawWindow(DrawWindow), DrawWindowClass,
   toDrawWindow, 
   mkDrawWindow, unDrawWindow,
   castToDrawWindow, gTypeDrawWindow,
+  Pixmap(Pixmap), PixmapClass,
+  toPixmap, 
+  mkPixmap, unPixmap,
+  castToPixmap, gTypePixmap,
+  Colormap(Colormap), ColormapClass,
+  toColormap, 
+  mkColormap, unColormap,
+  castToColormap, gTypeColormap,
   Screen(Screen), ScreenClass,
   toScreen, 
   mkScreen, unScreen,
@@ -106,10 +118,6 @@
   toDevice, 
   mkDevice, unDevice,
   castToDevice, gTypeDevice,
-  FrameClock(FrameClock), FrameClockClass,
-  toFrameClock, 
-  mkFrameClock, unFrameClock,
-  castToFrameClock, gTypeFrameClock,
   Settings(Settings), SettingsClass,
   toSettings, 
   mkSettings, unSettings,
@@ -162,6 +170,10 @@
   toTextMark, 
   mkTextMark, unTextMark,
   castToTextMark, gTypeTextMark,
+  Object(Object), ObjectClass,
+  toObject, 
+  mkObject, unObject,
+  castToObject, gTypeObject,
   RecentFilter(RecentFilter), RecentFilterClass,
   toRecentFilter, 
   mkRecentFilter, unRecentFilter,
@@ -186,6 +198,10 @@
   toAccelLabel, 
   mkAccelLabel, unAccelLabel,
   castToAccelLabel, gTypeAccelLabel,
+  TipsQuery(TipsQuery), TipsQueryClass,
+  toTipsQuery, 
+  mkTipsQuery, unTipsQuery,
+  castToTipsQuery, gTypeTipsQuery,
   Arrow(Arrow), ArrowClass,
   toArrow, 
   mkArrow, unArrow,
@@ -258,6 +274,14 @@
   toFontButton, 
   mkFontButton, unFontButton,
   castToFontButton, gTypeFontButton,
+  OptionMenu(OptionMenu), OptionMenuClass,
+  toOptionMenu, 
+  mkOptionMenu, unOptionMenu,
+  castToOptionMenu, gTypeOptionMenu,
+  Item(Item), ItemClass,
+  toItem, 
+  mkItem, unItem,
+  castToItem, gTypeItem,
   MenuItem(MenuItem), MenuItemClass,
   toMenuItem, 
   mkMenuItem, unMenuItem,
@@ -282,10 +306,10 @@
   toSeparatorMenuItem, 
   mkSeparatorMenuItem, unSeparatorMenuItem,
   castToSeparatorMenuItem, gTypeSeparatorMenuItem,
-  Overlay(Overlay), OverlayClass,
-  toOverlay, 
-  mkOverlay, unOverlay,
-  castToOverlay, gTypeOverlay,
+  ListItem(ListItem), ListItemClass,
+  toListItem, 
+  mkListItem, unListItem,
+  castToListItem, gTypeListItem,
   Window(Window), WindowClass,
   toWindow, 
   mkWindow, unWindow,
@@ -310,6 +334,10 @@
   toColorSelectionDialog, 
   mkColorSelectionDialog, unColorSelectionDialog,
   castToColorSelectionDialog, gTypeColorSelectionDialog,
+  FileSelection(FileSelection), FileSelectionClass,
+  toFileSelection, 
+  mkFileSelection, unFileSelection,
+  castToFileSelection, gTypeFileSelection,
   FileChooserDialog(FileChooserDialog), FileChooserDialogClass,
   toFileChooserDialog, 
   mkFileChooserDialog, unFileChooserDialog,
@@ -318,6 +346,10 @@
   toFontSelectionDialog, 
   mkFontSelectionDialog, unFontSelectionDialog,
   castToFontSelectionDialog, gTypeFontSelectionDialog,
+  InputDialog(InputDialog), InputDialogClass,
+  toInputDialog, 
+  mkInputDialog, unInputDialog,
+  castToInputDialog, gTypeInputDialog,
   MessageDialog(MessageDialog), MessageDialogClass,
   toMessageDialog, 
   mkMessageDialog, unMessageDialog,
@@ -346,6 +378,10 @@
   toComboBox, 
   mkComboBox, unComboBox,
   castToComboBox, gTypeComboBox,
+  ComboBoxEntry(ComboBoxEntry), ComboBoxEntryClass,
+  toComboBoxEntry, 
+  mkComboBoxEntry, unComboBoxEntry,
+  castToComboBoxEntry, gTypeComboBoxEntry,
   ToolItem(ToolItem), ToolItemClass,
   toToolItem, 
   mkToolItem, unToolItem,
@@ -414,6 +450,10 @@
   toInfoBar, 
   mkInfoBar, unInfoBar,
   castToInfoBar, gTypeInfoBar,
+  Combo(Combo), ComboClass,
+  toCombo, 
+  mkCombo, unCombo,
+  castToCombo, gTypeCombo,
   FileChooserButton(FileChooserButton), FileChooserButtonClass,
   toFileChooserButton, 
   mkFileChooserButton, unFileChooserButton,
@@ -422,6 +462,14 @@
   toStatusbar, 
   mkStatusbar, unStatusbar,
   castToStatusbar, gTypeStatusbar,
+  CList(CList), CListClass,
+  toCList, 
+  mkCList, unCList,
+  castToCList, gTypeCList,
+  CTree(CTree), CTreeClass,
+  toCTree, 
+  mkCTree, unCTree,
+  castToCTree, gTypeCTree,
   Fixed(Fixed), FixedClass,
   toFixed, 
   mkFixed, unFixed,
@@ -446,6 +494,10 @@
   toLayout, 
   mkLayout, unLayout,
   castToLayout, gTypeLayout,
+  List(List), ListClass,
+  toList, 
+  mkList, unList,
+  castToList, gTypeList,
   MenuShell(MenuShell), MenuShellClass,
   toMenuShell, 
   mkMenuShell, unMenuShell,
@@ -506,6 +558,18 @@
   toSpinButton, 
   mkSpinButton, unSpinButton,
   castToSpinButton, gTypeSpinButton,
+  Ruler(Ruler), RulerClass,
+  toRuler, 
+  mkRuler, unRuler,
+  castToRuler, gTypeRuler,
+  HRuler(HRuler), HRulerClass,
+  toHRuler, 
+  mkHRuler, unHRuler,
+  castToHRuler, gTypeHRuler,
+  VRuler(VRuler), VRulerClass,
+  toVRuler, 
+  mkVRuler, unVRuler,
+  castToVRuler, gTypeVRuler,
   Range(Range), RangeClass,
   toRange, 
   mkRange, unRange,
@@ -550,14 +614,14 @@
   toInvisible, 
   mkInvisible, unInvisible,
   castToInvisible, gTypeInvisible,
+  Preview(Preview), PreviewClass,
+  toPreview, 
+  mkPreview, unPreview,
+  castToPreview, gTypePreview,
   ProgressBar(ProgressBar), ProgressBarClass,
   toProgressBar, 
   mkProgressBar, unProgressBar,
   castToProgressBar, gTypeProgressBar,
-  LevelBar(LevelBar), LevelBarClass,
-  toLevelBar, 
-  mkLevelBar, unLevelBar,
-  castToLevelBar, gTypeLevelBar,
   Adjustment(Adjustment), AdjustmentClass,
   toAdjustment, 
   mkAdjustment, unAdjustment,
@@ -574,6 +638,14 @@
   toIMContextSimple, 
   mkIMContextSimple, unIMContextSimple,
   castToIMContextSimple, gTypeIMContextSimple,
+  ItemFactory(ItemFactory), ItemFactoryClass,
+  toItemFactory, 
+  mkItemFactory, unItemFactory,
+  castToItemFactory, gTypeItemFactory,
+  Tooltips(Tooltips), TooltipsClass,
+  toTooltips, 
+  mkTooltips, unTooltips,
+  castToTooltips, gTypeTooltips,
   TreeViewColumn(TreeViewColumn), TreeViewColumnClass,
   toTreeViewColumn, 
   mkTreeViewColumn, unTreeViewColumn,
@@ -622,18 +694,6 @@
   toBuilder, 
   mkBuilder, unBuilder,
   castToBuilder, gTypeBuilder,
-  StyleContext(StyleContext), StyleContextClass,
-  toStyleContext, 
-  mkStyleContext, unStyleContext,
-  castToStyleContext, gTypeStyleContext,
-  StyleProvider(StyleProvider), StyleProviderClass,
-  toStyleProvider, 
-  mkStyleProvider, unStyleProvider,
-  castToStyleProvider, gTypeStyleProvider,
-  CssProvider(CssProvider), CssProviderClass,
-  toCssProvider, 
-  mkCssProvider, unCssProvider,
-  castToCssProvider, gTypeCssProvider,
   CellLayout(CellLayout), CellLayoutClass,
   toCellLayout, 
   mkCellLayout, unCellLayout,
@@ -745,7 +805,11 @@
   FileChooser(FileChooser), FileChooserClass,
   toFileChooser, 
   mkFileChooser, unFileChooser,
-  castToFileChooser, gTypeFileChooser
+  castToFileChooser, gTypeFileChooser,
+  GC(GC), GCClass,
+  toGC, 
+  mkGC, unGC,
+  castToGC, gTypeGC
   ) where
 
 import Foreign.ForeignPtr (ForeignPtr, castForeignPtr)
@@ -1051,6 +1115,29 @@
 gTypeRecentManager =
   {# call fun unsafe gtk_recent_manager_get_type #}
 
+-- ******************************************************************* Drawable
+
+{#pointer *GdkDrawable as Drawable foreign newtype #} deriving (Eq,Ord)
+
+mkDrawable = (Drawable, objectUnrefFromMainloop)
+unDrawable (Drawable o) = o
+
+class GObjectClass o => DrawableClass o
+toDrawable :: DrawableClass o => o -> Drawable
+toDrawable = unsafeCastGObject . toGObject
+
+instance DrawableClass Drawable
+instance GObjectClass Drawable where
+  toGObject = GObject . castForeignPtr . unDrawable
+  unsafeCastGObject = Drawable . castForeignPtr . unGObject
+
+castToDrawable :: GObjectClass obj => obj -> Drawable
+castToDrawable = castTo gTypeDrawable "Drawable"
+
+gTypeDrawable :: GType
+gTypeDrawable =
+  {# call fun unsafe gdk_drawable_get_type #}
+
 -- ***************************************************************** DrawWindow
 
 {#pointer *GdkWindow as DrawWindow foreign newtype #} deriving (Eq,Ord)
@@ -1058,11 +1145,12 @@
 mkDrawWindow = (DrawWindow, objectUnrefFromMainloop)
 unDrawWindow (DrawWindow o) = o
 
-class GObjectClass o => DrawWindowClass o
+class DrawableClass o => DrawWindowClass o
 toDrawWindow :: DrawWindowClass o => o -> DrawWindow
 toDrawWindow = unsafeCastGObject . toGObject
 
 instance DrawWindowClass DrawWindow
+instance DrawableClass DrawWindow
 instance GObjectClass DrawWindow where
   toGObject = GObject . castForeignPtr . unDrawWindow
   unsafeCastGObject = DrawWindow . castForeignPtr . unGObject
@@ -1072,8 +1160,55 @@
 
 gTypeDrawWindow :: GType
 gTypeDrawWindow =
-  {# call fun unsafe gdk_window_get_type #}
+  {# call fun unsafe gdk_window_object_get_type #}
 
+-- ********************************************************************* Pixmap
+
+{#pointer *GdkPixmap as Pixmap foreign newtype #} deriving (Eq,Ord)
+
+mkPixmap = (Pixmap, objectUnrefFromMainloop)
+unPixmap (Pixmap o) = o
+
+class DrawableClass o => PixmapClass o
+toPixmap :: PixmapClass o => o -> Pixmap
+toPixmap = unsafeCastGObject . toGObject
+
+instance PixmapClass Pixmap
+instance DrawableClass Pixmap
+instance GObjectClass Pixmap where
+  toGObject = GObject . castForeignPtr . unPixmap
+  unsafeCastGObject = Pixmap . castForeignPtr . unGObject
+
+castToPixmap :: GObjectClass obj => obj -> Pixmap
+castToPixmap = castTo gTypePixmap "Pixmap"
+
+gTypePixmap :: GType
+gTypePixmap =
+  {# call fun unsafe gdk_pixmap_get_type #}
+
+-- ******************************************************************* Colormap
+
+{#pointer *GdkColormap as Colormap foreign newtype #} deriving (Eq,Ord)
+
+mkColormap = (Colormap, objectUnrefFromMainloop)
+unColormap (Colormap o) = o
+
+class GObjectClass o => ColormapClass o
+toColormap :: ColormapClass o => o -> Colormap
+toColormap = unsafeCastGObject . toGObject
+
+instance ColormapClass Colormap
+instance GObjectClass Colormap where
+  toGObject = GObject . castForeignPtr . unColormap
+  unsafeCastGObject = Colormap . castForeignPtr . unGObject
+
+castToColormap :: GObjectClass obj => obj -> Colormap
+castToColormap = castTo gTypeColormap "Colormap"
+
+gTypeColormap :: GType
+gTypeColormap =
+  {# call fun unsafe gdk_colormap_get_type #}
+
 -- ********************************************************************* Screen
 
 {#pointer *GdkScreen as Screen foreign newtype #} deriving (Eq,Ord)
@@ -1166,29 +1301,6 @@
 gTypeDevice =
   {# call fun unsafe gdk_device_get_type #}
 
--- ***************************************************************** FrameClock
-
-{#pointer *GdkFrameClock as FrameClock foreign newtype #} deriving (Eq,Ord)
-
-mkFrameClock = (FrameClock, objectUnrefFromMainloop)
-unFrameClock (FrameClock o) = o
-
-class GObjectClass o => FrameClockClass o
-toFrameClock :: FrameClockClass o => o -> FrameClock
-toFrameClock = unsafeCastGObject . toGObject
-
-instance FrameClockClass FrameClock
-instance GObjectClass FrameClock where
-  toGObject = GObject . castForeignPtr . unFrameClock
-  unsafeCastGObject = FrameClock . castForeignPtr . unGObject
-
-castToFrameClock :: GObjectClass obj => obj -> FrameClock
-castToFrameClock = castTo gTypeFrameClock "FrameClock"
-
-gTypeFrameClock :: GType
-gTypeFrameClock =
-  {# call fun unsafe gdk_frame_clock_get_type #}
-
 -- ******************************************************************* Settings
 
 {#pointer *GtkSettings as Settings foreign newtype #} deriving (Eq,Ord)
@@ -1489,6 +1601,29 @@
 gTypeTextMark =
   {# call fun unsafe gtk_text_mark_get_type #}
 
+-- ********************************************************************* Object
+
+{#pointer *GtkObject as Object foreign newtype #} deriving (Eq,Ord)
+
+mkObject = (Object, objectUnrefFromMainloop)
+unObject (Object o) = o
+
+class GObjectClass o => ObjectClass o
+toObject :: ObjectClass o => o -> Object
+toObject = unsafeCastGObject . toGObject
+
+instance ObjectClass Object
+instance GObjectClass Object where
+  toGObject = GObject . castForeignPtr . unObject
+  unsafeCastGObject = Object . castForeignPtr . unGObject
+
+castToObject :: GObjectClass obj => obj -> Object
+castToObject = castTo gTypeObject "Object"
+
+gTypeObject :: GType
+gTypeObject =
+  {# call fun unsafe gtk_object_get_type #}
+
 -- *************************************************************** RecentFilter
 
 {#pointer *GtkRecentFilter as RecentFilter foreign newtype #} deriving (Eq,Ord)
@@ -1496,11 +1631,12 @@
 mkRecentFilter = (RecentFilter, objectUnrefFromMainloop)
 unRecentFilter (RecentFilter o) = o
 
-class GObjectClass o => RecentFilterClass o
+class ObjectClass o => RecentFilterClass o
 toRecentFilter :: RecentFilterClass o => o -> RecentFilter
 toRecentFilter = unsafeCastGObject . toGObject
 
 instance RecentFilterClass RecentFilter
+instance ObjectClass RecentFilter
 instance GObjectClass RecentFilter where
   toGObject = GObject . castForeignPtr . unRecentFilter
   unsafeCastGObject = RecentFilter . castForeignPtr . unGObject
@@ -1519,11 +1655,12 @@
 mkWidget = (Widget, objectUnrefFromMainloop)
 unWidget (Widget o) = o
 
-class GObjectClass o => WidgetClass o
+class ObjectClass o => WidgetClass o
 toWidget :: WidgetClass o => o -> Widget
 toWidget = unsafeCastGObject . toGObject
 
 instance WidgetClass Widget
+instance ObjectClass Widget
 instance GObjectClass Widget where
   toGObject = GObject . castForeignPtr . unWidget
   unsafeCastGObject = Widget . castForeignPtr . unGObject
@@ -1548,6 +1685,7 @@
 
 instance HSVClass HSV
 instance WidgetClass HSV
+instance ObjectClass HSV
 instance GObjectClass HSV where
   toGObject = GObject . castForeignPtr . unHSV
   unsafeCastGObject = HSV . castForeignPtr . unGObject
@@ -1572,6 +1710,7 @@
 
 instance MiscClass Misc
 instance WidgetClass Misc
+instance ObjectClass Misc
 instance GObjectClass Misc where
   toGObject = GObject . castForeignPtr . unMisc
   unsafeCastGObject = Misc . castForeignPtr . unGObject
@@ -1597,6 +1736,7 @@
 instance LabelClass Label
 instance MiscClass Label
 instance WidgetClass Label
+instance ObjectClass Label
 instance GObjectClass Label where
   toGObject = GObject . castForeignPtr . unLabel
   unsafeCastGObject = Label . castForeignPtr . unGObject
@@ -1623,6 +1763,7 @@
 instance LabelClass AccelLabel
 instance MiscClass AccelLabel
 instance WidgetClass AccelLabel
+instance ObjectClass AccelLabel
 instance GObjectClass AccelLabel where
   toGObject = GObject . castForeignPtr . unAccelLabel
   unsafeCastGObject = AccelLabel . castForeignPtr . unGObject
@@ -1634,6 +1775,33 @@
 gTypeAccelLabel =
   {# call fun unsafe gtk_accel_label_get_type #}
 
+-- ****************************************************************** TipsQuery
+
+{#pointer *GtkTipsQuery as TipsQuery foreign newtype #} deriving (Eq,Ord)
+
+mkTipsQuery = (TipsQuery, objectUnrefFromMainloop)
+unTipsQuery (TipsQuery o) = o
+
+class LabelClass o => TipsQueryClass o
+toTipsQuery :: TipsQueryClass o => o -> TipsQuery
+toTipsQuery = unsafeCastGObject . toGObject
+
+instance TipsQueryClass TipsQuery
+instance LabelClass TipsQuery
+instance MiscClass TipsQuery
+instance WidgetClass TipsQuery
+instance ObjectClass TipsQuery
+instance GObjectClass TipsQuery where
+  toGObject = GObject . castForeignPtr . unTipsQuery
+  unsafeCastGObject = TipsQuery . castForeignPtr . unGObject
+
+castToTipsQuery :: GObjectClass obj => obj -> TipsQuery
+castToTipsQuery = castTo gTypeTipsQuery "TipsQuery"
+
+gTypeTipsQuery :: GType
+gTypeTipsQuery =
+  {# call fun unsafe gtk_tips_query_get_type #}
+
 -- ********************************************************************** Arrow
 
 {#pointer *GtkArrow as Arrow foreign newtype #} deriving (Eq,Ord)
@@ -1648,6 +1816,7 @@
 instance ArrowClass Arrow
 instance MiscClass Arrow
 instance WidgetClass Arrow
+instance ObjectClass Arrow
 instance GObjectClass Arrow where
   toGObject = GObject . castForeignPtr . unArrow
   unsafeCastGObject = Arrow . castForeignPtr . unGObject
@@ -1673,6 +1842,7 @@
 instance ImageClass Image
 instance MiscClass Image
 instance WidgetClass Image
+instance ObjectClass Image
 instance GObjectClass Image where
   toGObject = GObject . castForeignPtr . unImage
   unsafeCastGObject = Image . castForeignPtr . unGObject
@@ -1697,6 +1867,7 @@
 
 instance ContainerClass Container
 instance WidgetClass Container
+instance ObjectClass Container
 instance GObjectClass Container where
   toGObject = GObject . castForeignPtr . unContainer
   unsafeCastGObject = Container . castForeignPtr . unGObject
@@ -1722,6 +1893,7 @@
 instance ToolPaletteClass ToolPalette
 instance ContainerClass ToolPalette
 instance WidgetClass ToolPalette
+instance ObjectClass ToolPalette
 instance GObjectClass ToolPalette where
   toGObject = GObject . castForeignPtr . unToolPalette
   unsafeCastGObject = ToolPalette . castForeignPtr . unGObject
@@ -1747,6 +1919,7 @@
 instance ToolItemGroupClass ToolItemGroup
 instance ContainerClass ToolItemGroup
 instance WidgetClass ToolItemGroup
+instance ObjectClass ToolItemGroup
 instance GObjectClass ToolItemGroup where
   toGObject = GObject . castForeignPtr . unToolItemGroup
   unsafeCastGObject = ToolItemGroup . castForeignPtr . unGObject
@@ -1772,6 +1945,7 @@
 instance BinClass Bin
 instance ContainerClass Bin
 instance WidgetClass Bin
+instance ObjectClass Bin
 instance GObjectClass Bin where
   toGObject = GObject . castForeignPtr . unBin
   unsafeCastGObject = Bin . castForeignPtr . unGObject
@@ -1798,6 +1972,7 @@
 instance BinClass Alignment
 instance ContainerClass Alignment
 instance WidgetClass Alignment
+instance ObjectClass Alignment
 instance GObjectClass Alignment where
   toGObject = GObject . castForeignPtr . unAlignment
   unsafeCastGObject = Alignment . castForeignPtr . unGObject
@@ -1824,6 +1999,7 @@
 instance BinClass Frame
 instance ContainerClass Frame
 instance WidgetClass Frame
+instance ObjectClass Frame
 instance GObjectClass Frame where
   toGObject = GObject . castForeignPtr . unFrame
   unsafeCastGObject = Frame . castForeignPtr . unGObject
@@ -1851,6 +2027,7 @@
 instance BinClass AspectFrame
 instance ContainerClass AspectFrame
 instance WidgetClass AspectFrame
+instance ObjectClass AspectFrame
 instance GObjectClass AspectFrame where
   toGObject = GObject . castForeignPtr . unAspectFrame
   unsafeCastGObject = AspectFrame . castForeignPtr . unGObject
@@ -1877,6 +2054,7 @@
 instance BinClass Button
 instance ContainerClass Button
 instance WidgetClass Button
+instance ObjectClass Button
 instance GObjectClass Button where
   toGObject = GObject . castForeignPtr . unButton
   unsafeCastGObject = Button . castForeignPtr . unGObject
@@ -1904,6 +2082,7 @@
 instance BinClass ScaleButton
 instance ContainerClass ScaleButton
 instance WidgetClass ScaleButton
+instance ObjectClass ScaleButton
 instance GObjectClass ScaleButton where
   toGObject = GObject . castForeignPtr . unScaleButton
   unsafeCastGObject = ScaleButton . castForeignPtr . unGObject
@@ -1932,6 +2111,7 @@
 instance BinClass VolumeButton
 instance ContainerClass VolumeButton
 instance WidgetClass VolumeButton
+instance ObjectClass VolumeButton
 instance GObjectClass VolumeButton where
   toGObject = GObject . castForeignPtr . unVolumeButton
   unsafeCastGObject = VolumeButton . castForeignPtr . unGObject
@@ -1959,6 +2139,7 @@
 instance BinClass LinkButton
 instance ContainerClass LinkButton
 instance WidgetClass LinkButton
+instance ObjectClass LinkButton
 instance GObjectClass LinkButton where
   toGObject = GObject . castForeignPtr . unLinkButton
   unsafeCastGObject = LinkButton . castForeignPtr . unGObject
@@ -1986,6 +2167,7 @@
 instance BinClass ToggleButton
 instance ContainerClass ToggleButton
 instance WidgetClass ToggleButton
+instance ObjectClass ToggleButton
 instance GObjectClass ToggleButton where
   toGObject = GObject . castForeignPtr . unToggleButton
   unsafeCastGObject = ToggleButton . castForeignPtr . unGObject
@@ -2014,6 +2196,7 @@
 instance BinClass CheckButton
 instance ContainerClass CheckButton
 instance WidgetClass CheckButton
+instance ObjectClass CheckButton
 instance GObjectClass CheckButton where
   toGObject = GObject . castForeignPtr . unCheckButton
   unsafeCastGObject = CheckButton . castForeignPtr . unGObject
@@ -2043,6 +2226,7 @@
 instance BinClass RadioButton
 instance ContainerClass RadioButton
 instance WidgetClass RadioButton
+instance ObjectClass RadioButton
 instance GObjectClass RadioButton where
   toGObject = GObject . castForeignPtr . unRadioButton
   unsafeCastGObject = RadioButton . castForeignPtr . unGObject
@@ -2070,6 +2254,7 @@
 instance BinClass ColorButton
 instance ContainerClass ColorButton
 instance WidgetClass ColorButton
+instance ObjectClass ColorButton
 instance GObjectClass ColorButton where
   toGObject = GObject . castForeignPtr . unColorButton
   unsafeCastGObject = ColorButton . castForeignPtr . unGObject
@@ -2097,6 +2282,7 @@
 instance BinClass FontButton
 instance ContainerClass FontButton
 instance WidgetClass FontButton
+instance ObjectClass FontButton
 instance GObjectClass FontButton where
   toGObject = GObject . castForeignPtr . unFontButton
   unsafeCastGObject = FontButton . castForeignPtr . unGObject
@@ -2108,6 +2294,61 @@
 gTypeFontButton =
   {# call fun unsafe gtk_font_button_get_type #}
 
+-- ***************************************************************** OptionMenu
+
+{#pointer *GtkOptionMenu as OptionMenu foreign newtype #} deriving (Eq,Ord)
+
+mkOptionMenu = (OptionMenu, objectUnrefFromMainloop)
+unOptionMenu (OptionMenu o) = o
+
+class ButtonClass o => OptionMenuClass o
+toOptionMenu :: OptionMenuClass o => o -> OptionMenu
+toOptionMenu = unsafeCastGObject . toGObject
+
+instance OptionMenuClass OptionMenu
+instance ButtonClass OptionMenu
+instance BinClass OptionMenu
+instance ContainerClass OptionMenu
+instance WidgetClass OptionMenu
+instance ObjectClass OptionMenu
+instance GObjectClass OptionMenu where
+  toGObject = GObject . castForeignPtr . unOptionMenu
+  unsafeCastGObject = OptionMenu . castForeignPtr . unGObject
+
+castToOptionMenu :: GObjectClass obj => obj -> OptionMenu
+castToOptionMenu = castTo gTypeOptionMenu "OptionMenu"
+
+gTypeOptionMenu :: GType
+gTypeOptionMenu =
+  {# call fun unsafe gtk_option_menu_get_type #}
+
+-- *********************************************************************** Item
+
+{#pointer *GtkItem as Item foreign newtype #} deriving (Eq,Ord)
+
+mkItem = (Item, objectUnrefFromMainloop)
+unItem (Item o) = o
+
+class BinClass o => ItemClass o
+toItem :: ItemClass o => o -> Item
+toItem = unsafeCastGObject . toGObject
+
+instance ItemClass Item
+instance BinClass Item
+instance ContainerClass Item
+instance WidgetClass Item
+instance ObjectClass Item
+instance GObjectClass Item where
+  toGObject = GObject . castForeignPtr . unItem
+  unsafeCastGObject = Item . castForeignPtr . unGObject
+
+castToItem :: GObjectClass obj => obj -> Item
+castToItem = castTo gTypeItem "Item"
+
+gTypeItem :: GType
+gTypeItem =
+  {# call fun unsafe gtk_item_get_type #}
+
 -- ******************************************************************* MenuItem
 
 {#pointer *GtkMenuItem as MenuItem foreign newtype #} deriving (Eq,Ord)
@@ -2115,14 +2356,16 @@
 mkMenuItem = (MenuItem, objectUnrefFromMainloop)
 unMenuItem (MenuItem o) = o
 
-class BinClass o => MenuItemClass o
+class ItemClass o => MenuItemClass o
 toMenuItem :: MenuItemClass o => o -> MenuItem
 toMenuItem = unsafeCastGObject . toGObject
 
 instance MenuItemClass MenuItem
+instance ItemClass MenuItem
 instance BinClass MenuItem
 instance ContainerClass MenuItem
 instance WidgetClass MenuItem
+instance ObjectClass MenuItem
 instance GObjectClass MenuItem where
   toGObject = GObject . castForeignPtr . unMenuItem
   unsafeCastGObject = MenuItem . castForeignPtr . unGObject
@@ -2147,9 +2390,11 @@
 
 instance CheckMenuItemClass CheckMenuItem
 instance MenuItemClass CheckMenuItem
+instance ItemClass CheckMenuItem
 instance BinClass CheckMenuItem
 instance ContainerClass CheckMenuItem
 instance WidgetClass CheckMenuItem
+instance ObjectClass CheckMenuItem
 instance GObjectClass CheckMenuItem where
   toGObject = GObject . castForeignPtr . unCheckMenuItem
   unsafeCastGObject = CheckMenuItem . castForeignPtr . unGObject
@@ -2175,9 +2420,11 @@
 instance RadioMenuItemClass RadioMenuItem
 instance CheckMenuItemClass RadioMenuItem
 instance MenuItemClass RadioMenuItem
+instance ItemClass RadioMenuItem
 instance BinClass RadioMenuItem
 instance ContainerClass RadioMenuItem
 instance WidgetClass RadioMenuItem
+instance ObjectClass RadioMenuItem
 instance GObjectClass RadioMenuItem where
   toGObject = GObject . castForeignPtr . unRadioMenuItem
   unsafeCastGObject = RadioMenuItem . castForeignPtr . unGObject
@@ -2202,9 +2449,11 @@
 
 instance TearoffMenuItemClass TearoffMenuItem
 instance MenuItemClass TearoffMenuItem
+instance ItemClass TearoffMenuItem
 instance BinClass TearoffMenuItem
 instance ContainerClass TearoffMenuItem
 instance WidgetClass TearoffMenuItem
+instance ObjectClass TearoffMenuItem
 instance GObjectClass TearoffMenuItem where
   toGObject = GObject . castForeignPtr . unTearoffMenuItem
   unsafeCastGObject = TearoffMenuItem . castForeignPtr . unGObject
@@ -2229,9 +2478,11 @@
 
 instance ImageMenuItemClass ImageMenuItem
 instance MenuItemClass ImageMenuItem
+instance ItemClass ImageMenuItem
 instance BinClass ImageMenuItem
 instance ContainerClass ImageMenuItem
 instance WidgetClass ImageMenuItem
+instance ObjectClass ImageMenuItem
 instance GObjectClass ImageMenuItem where
   toGObject = GObject . castForeignPtr . unImageMenuItem
   unsafeCastGObject = ImageMenuItem . castForeignPtr . unGObject
@@ -2256,9 +2507,11 @@
 
 instance SeparatorMenuItemClass SeparatorMenuItem
 instance MenuItemClass SeparatorMenuItem
+instance ItemClass SeparatorMenuItem
 instance BinClass SeparatorMenuItem
 instance ContainerClass SeparatorMenuItem
 instance WidgetClass SeparatorMenuItem
+instance ObjectClass SeparatorMenuItem
 instance GObjectClass SeparatorMenuItem where
   toGObject = GObject . castForeignPtr . unSeparatorMenuItem
   unsafeCastGObject = SeparatorMenuItem . castForeignPtr . unGObject
@@ -2270,31 +2523,33 @@
 gTypeSeparatorMenuItem =
   {# call fun unsafe gtk_separator_menu_item_get_type #}
 
--- ******************************************************************** Overlay
+-- ******************************************************************* ListItem
 
-{#pointer *GtkOverlay as Overlay foreign newtype #} deriving (Eq,Ord)
+{#pointer *GtkListItem as ListItem foreign newtype #} deriving (Eq,Ord)
 
-mkOverlay = (Overlay, objectUnrefFromMainloop)
-unOverlay (Overlay o) = o
+mkListItem = (ListItem, objectUnrefFromMainloop)
+unListItem (ListItem o) = o
 
-class BinClass o => OverlayClass o
-toOverlay :: OverlayClass o => o -> Overlay
-toOverlay = unsafeCastGObject . toGObject
+class ItemClass o => ListItemClass o
+toListItem :: ListItemClass o => o -> ListItem
+toListItem = unsafeCastGObject . toGObject
 
-instance OverlayClass Overlay
-instance BinClass Overlay
-instance ContainerClass Overlay
-instance WidgetClass Overlay
-instance GObjectClass Overlay where
-  toGObject = GObject . castForeignPtr . unOverlay
-  unsafeCastGObject = Overlay . castForeignPtr . unGObject
+instance ListItemClass ListItem
+instance ItemClass ListItem
+instance BinClass ListItem
+instance ContainerClass ListItem
+instance WidgetClass ListItem
+instance ObjectClass ListItem
+instance GObjectClass ListItem where
+  toGObject = GObject . castForeignPtr . unListItem
+  unsafeCastGObject = ListItem . castForeignPtr . unGObject
 
-castToOverlay :: GObjectClass obj => obj -> Overlay
-castToOverlay = castTo gTypeOverlay "Overlay"
+castToListItem :: GObjectClass obj => obj -> ListItem
+castToListItem = castTo gTypeListItem "ListItem"
 
-gTypeOverlay :: GType
-gTypeOverlay =
-  {# call fun unsafe gtk_overlay_get_type #}
+gTypeListItem :: GType
+gTypeListItem =
+  {# call fun unsafe gtk_list_item_get_type #}
 
 -- ********************************************************************* Window
 
@@ -2311,6 +2566,7 @@
 instance BinClass Window
 instance ContainerClass Window
 instance WidgetClass Window
+instance ObjectClass Window
 instance GObjectClass Window where
   toGObject = GObject . castForeignPtr . unWindow
   unsafeCastGObject = Window . castForeignPtr . unGObject
@@ -2338,6 +2594,7 @@
 instance BinClass Assistant
 instance ContainerClass Assistant
 instance WidgetClass Assistant
+instance ObjectClass Assistant
 instance GObjectClass Assistant where
   toGObject = GObject . castForeignPtr . unAssistant
   unsafeCastGObject = Assistant . castForeignPtr . unGObject
@@ -2365,6 +2622,7 @@
 instance BinClass OffscreenWindow
 instance ContainerClass OffscreenWindow
 instance WidgetClass OffscreenWindow
+instance ObjectClass OffscreenWindow
 instance GObjectClass OffscreenWindow where
   toGObject = GObject . castForeignPtr . unOffscreenWindow
   unsafeCastGObject = OffscreenWindow . castForeignPtr . unGObject
@@ -2392,6 +2650,7 @@
 instance BinClass Dialog
 instance ContainerClass Dialog
 instance WidgetClass Dialog
+instance ObjectClass Dialog
 instance GObjectClass Dialog where
   toGObject = GObject . castForeignPtr . unDialog
   unsafeCastGObject = Dialog . castForeignPtr . unGObject
@@ -2420,6 +2679,7 @@
 instance BinClass AboutDialog
 instance ContainerClass AboutDialog
 instance WidgetClass AboutDialog
+instance ObjectClass AboutDialog
 instance GObjectClass AboutDialog where
   toGObject = GObject . castForeignPtr . unAboutDialog
   unsafeCastGObject = AboutDialog . castForeignPtr . unGObject
@@ -2448,6 +2708,7 @@
 instance BinClass ColorSelectionDialog
 instance ContainerClass ColorSelectionDialog
 instance WidgetClass ColorSelectionDialog
+instance ObjectClass ColorSelectionDialog
 instance GObjectClass ColorSelectionDialog where
   toGObject = GObject . castForeignPtr . unColorSelectionDialog
   unsafeCastGObject = ColorSelectionDialog . castForeignPtr . unGObject
@@ -2459,6 +2720,35 @@
 gTypeColorSelectionDialog =
   {# call fun unsafe gtk_color_selection_dialog_get_type #}
 
+-- ************************************************************** FileSelection
+
+{#pointer *GtkFileSelection as FileSelection foreign newtype #} deriving (Eq,Ord)
+
+mkFileSelection = (FileSelection, objectUnrefFromMainloop)
+unFileSelection (FileSelection o) = o
+
+class DialogClass o => FileSelectionClass o
+toFileSelection :: FileSelectionClass o => o -> FileSelection
+toFileSelection = unsafeCastGObject . toGObject
+
+instance FileSelectionClass FileSelection
+instance DialogClass FileSelection
+instance WindowClass FileSelection
+instance BinClass FileSelection
+instance ContainerClass FileSelection
+instance WidgetClass FileSelection
+instance ObjectClass FileSelection
+instance GObjectClass FileSelection where
+  toGObject = GObject . castForeignPtr . unFileSelection
+  unsafeCastGObject = FileSelection . castForeignPtr . unGObject
+
+castToFileSelection :: GObjectClass obj => obj -> FileSelection
+castToFileSelection = castTo gTypeFileSelection "FileSelection"
+
+gTypeFileSelection :: GType
+gTypeFileSelection =
+  {# call fun unsafe gtk_file_selection_get_type #}
+
 -- ********************************************************** FileChooserDialog
 
 {#pointer *GtkFileChooserDialog as FileChooserDialog foreign newtype #} deriving (Eq,Ord)
@@ -2476,6 +2766,7 @@
 instance BinClass FileChooserDialog
 instance ContainerClass FileChooserDialog
 instance WidgetClass FileChooserDialog
+instance ObjectClass FileChooserDialog
 instance GObjectClass FileChooserDialog where
   toGObject = GObject . castForeignPtr . unFileChooserDialog
   unsafeCastGObject = FileChooserDialog . castForeignPtr . unGObject
@@ -2504,6 +2795,7 @@
 instance BinClass FontSelectionDialog
 instance ContainerClass FontSelectionDialog
 instance WidgetClass FontSelectionDialog
+instance ObjectClass FontSelectionDialog
 instance GObjectClass FontSelectionDialog where
   toGObject = GObject . castForeignPtr . unFontSelectionDialog
   unsafeCastGObject = FontSelectionDialog . castForeignPtr . unGObject
@@ -2515,6 +2807,35 @@
 gTypeFontSelectionDialog =
   {# call fun unsafe gtk_font_selection_dialog_get_type #}
 
+-- **************************************************************** InputDialog
+
+{#pointer *GtkInputDialog as InputDialog foreign newtype #} deriving (Eq,Ord)
+
+mkInputDialog = (InputDialog, objectUnrefFromMainloop)
+unInputDialog (InputDialog o) = o
+
+class DialogClass o => InputDialogClass o
+toInputDialog :: InputDialogClass o => o -> InputDialog
+toInputDialog = unsafeCastGObject . toGObject
+
+instance InputDialogClass InputDialog
+instance DialogClass InputDialog
+instance WindowClass InputDialog
+instance BinClass InputDialog
+instance ContainerClass InputDialog
+instance WidgetClass InputDialog
+instance ObjectClass InputDialog
+instance GObjectClass InputDialog where
+  toGObject = GObject . castForeignPtr . unInputDialog
+  unsafeCastGObject = InputDialog . castForeignPtr . unGObject
+
+castToInputDialog :: GObjectClass obj => obj -> InputDialog
+castToInputDialog = castTo gTypeInputDialog "InputDialog"
+
+gTypeInputDialog :: GType
+gTypeInputDialog =
+  {# call fun unsafe gtk_input_dialog_get_type #}
+
 -- ************************************************************** MessageDialog
 
 {#pointer *GtkMessageDialog as MessageDialog foreign newtype #} deriving (Eq,Ord)
@@ -2532,6 +2853,7 @@
 instance BinClass MessageDialog
 instance ContainerClass MessageDialog
 instance WidgetClass MessageDialog
+instance ObjectClass MessageDialog
 instance GObjectClass MessageDialog where
   toGObject = GObject . castForeignPtr . unMessageDialog
   unsafeCastGObject = MessageDialog . castForeignPtr . unGObject
@@ -2558,6 +2880,7 @@
 instance BinClass EventBox
 instance ContainerClass EventBox
 instance WidgetClass EventBox
+instance ObjectClass EventBox
 instance GObjectClass EventBox where
   toGObject = GObject . castForeignPtr . unEventBox
   unsafeCastGObject = EventBox . castForeignPtr . unGObject
@@ -2584,6 +2907,7 @@
 instance BinClass HandleBox
 instance ContainerClass HandleBox
 instance WidgetClass HandleBox
+instance ObjectClass HandleBox
 instance GObjectClass HandleBox where
   toGObject = GObject . castForeignPtr . unHandleBox
   unsafeCastGObject = HandleBox . castForeignPtr . unGObject
@@ -2610,6 +2934,7 @@
 instance BinClass ScrolledWindow
 instance ContainerClass ScrolledWindow
 instance WidgetClass ScrolledWindow
+instance ObjectClass ScrolledWindow
 instance GObjectClass ScrolledWindow where
   toGObject = GObject . castForeignPtr . unScrolledWindow
   unsafeCastGObject = ScrolledWindow . castForeignPtr . unGObject
@@ -2636,6 +2961,7 @@
 instance BinClass Viewport
 instance ContainerClass Viewport
 instance WidgetClass Viewport
+instance ObjectClass Viewport
 instance GObjectClass Viewport where
   toGObject = GObject . castForeignPtr . unViewport
   unsafeCastGObject = Viewport . castForeignPtr . unGObject
@@ -2662,6 +2988,7 @@
 instance BinClass Expander
 instance ContainerClass Expander
 instance WidgetClass Expander
+instance ObjectClass Expander
 instance GObjectClass Expander where
   toGObject = GObject . castForeignPtr . unExpander
   unsafeCastGObject = Expander . castForeignPtr . unGObject
@@ -2688,6 +3015,7 @@
 instance BinClass ComboBox
 instance ContainerClass ComboBox
 instance WidgetClass ComboBox
+instance ObjectClass ComboBox
 instance GObjectClass ComboBox where
   toGObject = GObject . castForeignPtr . unComboBox
   unsafeCastGObject = ComboBox . castForeignPtr . unGObject
@@ -2699,6 +3027,34 @@
 gTypeComboBox =
   {# call fun unsafe gtk_combo_box_get_type #}
 
+-- ************************************************************** ComboBoxEntry
+
+{#pointer *GtkComboBoxEntry as ComboBoxEntry foreign newtype #} deriving (Eq,Ord)
+
+mkComboBoxEntry = (ComboBoxEntry, objectUnrefFromMainloop)
+unComboBoxEntry (ComboBoxEntry o) = o
+
+class ComboBoxClass o => ComboBoxEntryClass o
+toComboBoxEntry :: ComboBoxEntryClass o => o -> ComboBoxEntry
+toComboBoxEntry = unsafeCastGObject . toGObject
+
+instance ComboBoxEntryClass ComboBoxEntry
+instance ComboBoxClass ComboBoxEntry
+instance BinClass ComboBoxEntry
+instance ContainerClass ComboBoxEntry
+instance WidgetClass ComboBoxEntry
+instance ObjectClass ComboBoxEntry
+instance GObjectClass ComboBoxEntry where
+  toGObject = GObject . castForeignPtr . unComboBoxEntry
+  unsafeCastGObject = ComboBoxEntry . castForeignPtr . unGObject
+
+castToComboBoxEntry :: GObjectClass obj => obj -> ComboBoxEntry
+castToComboBoxEntry = castTo gTypeComboBoxEntry "ComboBoxEntry"
+
+gTypeComboBoxEntry :: GType
+gTypeComboBoxEntry =
+  {# call fun unsafe gtk_combo_box_entry_get_type #}
+
 -- ******************************************************************* ToolItem
 
 {#pointer *GtkToolItem as ToolItem foreign newtype #} deriving (Eq,Ord)
@@ -2714,6 +3070,7 @@
 instance BinClass ToolItem
 instance ContainerClass ToolItem
 instance WidgetClass ToolItem
+instance ObjectClass ToolItem
 instance GObjectClass ToolItem where
   toGObject = GObject . castForeignPtr . unToolItem
   unsafeCastGObject = ToolItem . castForeignPtr . unGObject
@@ -2741,6 +3098,7 @@
 instance BinClass ToolButton
 instance ContainerClass ToolButton
 instance WidgetClass ToolButton
+instance ObjectClass ToolButton
 instance GObjectClass ToolButton where
   toGObject = GObject . castForeignPtr . unToolButton
   unsafeCastGObject = ToolButton . castForeignPtr . unGObject
@@ -2769,6 +3127,7 @@
 instance BinClass MenuToolButton
 instance ContainerClass MenuToolButton
 instance WidgetClass MenuToolButton
+instance ObjectClass MenuToolButton
 instance GObjectClass MenuToolButton where
   toGObject = GObject . castForeignPtr . unMenuToolButton
   unsafeCastGObject = MenuToolButton . castForeignPtr . unGObject
@@ -2797,6 +3156,7 @@
 instance BinClass ToggleToolButton
 instance ContainerClass ToggleToolButton
 instance WidgetClass ToggleToolButton
+instance ObjectClass ToggleToolButton
 instance GObjectClass ToggleToolButton where
   toGObject = GObject . castForeignPtr . unToggleToolButton
   unsafeCastGObject = ToggleToolButton . castForeignPtr . unGObject
@@ -2826,6 +3186,7 @@
 instance BinClass RadioToolButton
 instance ContainerClass RadioToolButton
 instance WidgetClass RadioToolButton
+instance ObjectClass RadioToolButton
 instance GObjectClass RadioToolButton where
   toGObject = GObject . castForeignPtr . unRadioToolButton
   unsafeCastGObject = RadioToolButton . castForeignPtr . unGObject
@@ -2853,6 +3214,7 @@
 instance BinClass SeparatorToolItem
 instance ContainerClass SeparatorToolItem
 instance WidgetClass SeparatorToolItem
+instance ObjectClass SeparatorToolItem
 instance GObjectClass SeparatorToolItem where
   toGObject = GObject . castForeignPtr . unSeparatorToolItem
   unsafeCastGObject = SeparatorToolItem . castForeignPtr . unGObject
@@ -2878,6 +3240,7 @@
 instance BoxClass Box
 instance ContainerClass Box
 instance WidgetClass Box
+instance ObjectClass Box
 instance GObjectClass Box where
   toGObject = GObject . castForeignPtr . unBox
   unsafeCastGObject = Box . castForeignPtr . unGObject
@@ -2904,6 +3267,7 @@
 instance BoxClass ButtonBox
 instance ContainerClass ButtonBox
 instance WidgetClass ButtonBox
+instance ObjectClass ButtonBox
 instance GObjectClass ButtonBox where
   toGObject = GObject . castForeignPtr . unButtonBox
   unsafeCastGObject = ButtonBox . castForeignPtr . unGObject
@@ -2931,6 +3295,7 @@
 instance BoxClass HButtonBox
 instance ContainerClass HButtonBox
 instance WidgetClass HButtonBox
+instance ObjectClass HButtonBox
 instance GObjectClass HButtonBox where
   toGObject = GObject . castForeignPtr . unHButtonBox
   unsafeCastGObject = HButtonBox . castForeignPtr . unGObject
@@ -2958,6 +3323,7 @@
 instance BoxClass VButtonBox
 instance ContainerClass VButtonBox
 instance WidgetClass VButtonBox
+instance ObjectClass VButtonBox
 instance GObjectClass VButtonBox where
   toGObject = GObject . castForeignPtr . unVButtonBox
   unsafeCastGObject = VButtonBox . castForeignPtr . unGObject
@@ -2984,6 +3350,7 @@
 instance BoxClass VBox
 instance ContainerClass VBox
 instance WidgetClass VBox
+instance ObjectClass VBox
 instance GObjectClass VBox where
   toGObject = GObject . castForeignPtr . unVBox
   unsafeCastGObject = VBox . castForeignPtr . unGObject
@@ -3011,6 +3378,7 @@
 instance BoxClass RecentChooserWidget
 instance ContainerClass RecentChooserWidget
 instance WidgetClass RecentChooserWidget
+instance ObjectClass RecentChooserWidget
 instance GObjectClass RecentChooserWidget where
   toGObject = GObject . castForeignPtr . unRecentChooserWidget
   unsafeCastGObject = RecentChooserWidget . castForeignPtr . unGObject
@@ -3038,6 +3406,7 @@
 instance BoxClass ColorSelection
 instance ContainerClass ColorSelection
 instance WidgetClass ColorSelection
+instance ObjectClass ColorSelection
 instance GObjectClass ColorSelection where
   toGObject = GObject . castForeignPtr . unColorSelection
   unsafeCastGObject = ColorSelection . castForeignPtr . unGObject
@@ -3065,6 +3434,7 @@
 instance BoxClass FontSelection
 instance ContainerClass FontSelection
 instance WidgetClass FontSelection
+instance ObjectClass FontSelection
 instance GObjectClass FontSelection where
   toGObject = GObject . castForeignPtr . unFontSelection
   unsafeCastGObject = FontSelection . castForeignPtr . unGObject
@@ -3092,6 +3462,7 @@
 instance BoxClass FileChooserWidget
 instance ContainerClass FileChooserWidget
 instance WidgetClass FileChooserWidget
+instance ObjectClass FileChooserWidget
 instance GObjectClass FileChooserWidget where
   toGObject = GObject . castForeignPtr . unFileChooserWidget
   unsafeCastGObject = FileChooserWidget . castForeignPtr . unGObject
@@ -3118,6 +3489,7 @@
 instance BoxClass HBox
 instance ContainerClass HBox
 instance WidgetClass HBox
+instance ObjectClass HBox
 instance GObjectClass HBox where
   toGObject = GObject . castForeignPtr . unHBox
   unsafeCastGObject = HBox . castForeignPtr . unGObject
@@ -3145,6 +3517,7 @@
 instance BoxClass InfoBar
 instance ContainerClass InfoBar
 instance WidgetClass InfoBar
+instance ObjectClass InfoBar
 instance GObjectClass InfoBar where
   toGObject = GObject . castForeignPtr . unInfoBar
   unsafeCastGObject = InfoBar . castForeignPtr . unGObject
@@ -3156,6 +3529,34 @@
 gTypeInfoBar =
   {# call fun unsafe gtk_info_bar_get_type #}
 
+-- ********************************************************************** Combo
+
+{#pointer *GtkCombo as Combo foreign newtype #} deriving (Eq,Ord)
+
+mkCombo = (Combo, objectUnrefFromMainloop)
+unCombo (Combo o) = o
+
+class HBoxClass o => ComboClass o
+toCombo :: ComboClass o => o -> Combo
+toCombo = unsafeCastGObject . toGObject
+
+instance ComboClass Combo
+instance HBoxClass Combo
+instance BoxClass Combo
+instance ContainerClass Combo
+instance WidgetClass Combo
+instance ObjectClass Combo
+instance GObjectClass Combo where
+  toGObject = GObject . castForeignPtr . unCombo
+  unsafeCastGObject = Combo . castForeignPtr . unGObject
+
+castToCombo :: GObjectClass obj => obj -> Combo
+castToCombo = castTo gTypeCombo "Combo"
+
+gTypeCombo :: GType
+gTypeCombo =
+  {# call fun unsafe gtk_combo_get_type #}
+
 -- ********************************************************** FileChooserButton
 
 {#pointer *GtkFileChooserButton as FileChooserButton foreign newtype #} deriving (Eq,Ord)
@@ -3172,6 +3573,7 @@
 instance BoxClass FileChooserButton
 instance ContainerClass FileChooserButton
 instance WidgetClass FileChooserButton
+instance ObjectClass FileChooserButton
 instance GObjectClass FileChooserButton where
   toGObject = GObject . castForeignPtr . unFileChooserButton
   unsafeCastGObject = FileChooserButton . castForeignPtr . unGObject
@@ -3199,6 +3601,7 @@
 instance BoxClass Statusbar
 instance ContainerClass Statusbar
 instance WidgetClass Statusbar
+instance ObjectClass Statusbar
 instance GObjectClass Statusbar where
   toGObject = GObject . castForeignPtr . unStatusbar
   unsafeCastGObject = Statusbar . castForeignPtr . unGObject
@@ -3210,6 +3613,59 @@
 gTypeStatusbar =
   {# call fun unsafe gtk_statusbar_get_type #}
 
+-- ********************************************************************** CList
+
+{#pointer *GtkCList as CList foreign newtype #} deriving (Eq,Ord)
+
+mkCList = (CList, objectUnrefFromMainloop)
+unCList (CList o) = o
+
+class ContainerClass o => CListClass o
+toCList :: CListClass o => o -> CList
+toCList = unsafeCastGObject . toGObject
+
+instance CListClass CList
+instance ContainerClass CList
+instance WidgetClass CList
+instance ObjectClass CList
+instance GObjectClass CList where
+  toGObject = GObject . castForeignPtr . unCList
+  unsafeCastGObject = CList . castForeignPtr . unGObject
+
+castToCList :: GObjectClass obj => obj -> CList
+castToCList = castTo gTypeCList "CList"
+
+gTypeCList :: GType
+gTypeCList =
+  {# call fun unsafe gtk_clist_get_type #}
+
+-- ********************************************************************** CTree
+
+{#pointer *GtkCTree as CTree foreign newtype #} deriving (Eq,Ord)
+
+mkCTree = (CTree, objectUnrefFromMainloop)
+unCTree (CTree o) = o
+
+class CListClass o => CTreeClass o
+toCTree :: CTreeClass o => o -> CTree
+toCTree = unsafeCastGObject . toGObject
+
+instance CTreeClass CTree
+instance CListClass CTree
+instance ContainerClass CTree
+instance WidgetClass CTree
+instance ObjectClass CTree
+instance GObjectClass CTree where
+  toGObject = GObject . castForeignPtr . unCTree
+  unsafeCastGObject = CTree . castForeignPtr . unGObject
+
+castToCTree :: GObjectClass obj => obj -> CTree
+castToCTree = castTo gTypeCTree "CTree"
+
+gTypeCTree :: GType
+gTypeCTree =
+  {# call fun unsafe gtk_ctree_get_type #}
+
 -- ********************************************************************** Fixed
 
 {#pointer *GtkFixed as Fixed foreign newtype #} deriving (Eq,Ord)
@@ -3224,6 +3680,7 @@
 instance FixedClass Fixed
 instance ContainerClass Fixed
 instance WidgetClass Fixed
+instance ObjectClass Fixed
 instance GObjectClass Fixed where
   toGObject = GObject . castForeignPtr . unFixed
   unsafeCastGObject = Fixed . castForeignPtr . unGObject
@@ -3249,6 +3706,7 @@
 instance PanedClass Paned
 instance ContainerClass Paned
 instance WidgetClass Paned
+instance ObjectClass Paned
 instance GObjectClass Paned where
   toGObject = GObject . castForeignPtr . unPaned
   unsafeCastGObject = Paned . castForeignPtr . unGObject
@@ -3275,6 +3733,7 @@
 instance PanedClass HPaned
 instance ContainerClass HPaned
 instance WidgetClass HPaned
+instance ObjectClass HPaned
 instance GObjectClass HPaned where
   toGObject = GObject . castForeignPtr . unHPaned
   unsafeCastGObject = HPaned . castForeignPtr . unGObject
@@ -3301,6 +3760,7 @@
 instance PanedClass VPaned
 instance ContainerClass VPaned
 instance WidgetClass VPaned
+instance ObjectClass VPaned
 instance GObjectClass VPaned where
   toGObject = GObject . castForeignPtr . unVPaned
   unsafeCastGObject = VPaned . castForeignPtr . unGObject
@@ -3326,6 +3786,7 @@
 instance IconViewClass IconView
 instance ContainerClass IconView
 instance WidgetClass IconView
+instance ObjectClass IconView
 instance GObjectClass IconView where
   toGObject = GObject . castForeignPtr . unIconView
   unsafeCastGObject = IconView . castForeignPtr . unGObject
@@ -3351,6 +3812,7 @@
 instance LayoutClass Layout
 instance ContainerClass Layout
 instance WidgetClass Layout
+instance ObjectClass Layout
 instance GObjectClass Layout where
   toGObject = GObject . castForeignPtr . unLayout
   unsafeCastGObject = Layout . castForeignPtr . unGObject
@@ -3362,6 +3824,32 @@
 gTypeLayout =
   {# call fun unsafe gtk_layout_get_type #}
 
+-- *********************************************************************** List
+
+{#pointer *GtkList as List foreign newtype #} deriving (Eq,Ord)
+
+mkList = (List, objectUnrefFromMainloop)
+unList (List o) = o
+
+class ContainerClass o => ListClass o
+toList :: ListClass o => o -> List
+toList = unsafeCastGObject . toGObject
+
+instance ListClass List
+instance ContainerClass List
+instance WidgetClass List
+instance ObjectClass List
+instance GObjectClass List where
+  toGObject = GObject . castForeignPtr . unList
+  unsafeCastGObject = List . castForeignPtr . unGObject
+
+castToList :: GObjectClass obj => obj -> List
+castToList = castTo gTypeList "List"
+
+gTypeList :: GType
+gTypeList =
+  {# call fun unsafe gtk_list_get_type #}
+
 -- ****************************************************************** MenuShell
 
 {#pointer *GtkMenuShell as MenuShell foreign newtype #} deriving (Eq,Ord)
@@ -3376,6 +3864,7 @@
 instance MenuShellClass MenuShell
 instance ContainerClass MenuShell
 instance WidgetClass MenuShell
+instance ObjectClass MenuShell
 instance GObjectClass MenuShell where
   toGObject = GObject . castForeignPtr . unMenuShell
   unsafeCastGObject = MenuShell . castForeignPtr . unGObject
@@ -3402,6 +3891,7 @@
 instance MenuShellClass Menu
 instance ContainerClass Menu
 instance WidgetClass Menu
+instance ObjectClass Menu
 instance GObjectClass Menu where
   toGObject = GObject . castForeignPtr . unMenu
   unsafeCastGObject = Menu . castForeignPtr . unGObject
@@ -3429,6 +3919,7 @@
 instance MenuShellClass RecentChooserMenu
 instance ContainerClass RecentChooserMenu
 instance WidgetClass RecentChooserMenu
+instance ObjectClass RecentChooserMenu
 instance GObjectClass RecentChooserMenu where
   toGObject = GObject . castForeignPtr . unRecentChooserMenu
   unsafeCastGObject = RecentChooserMenu . castForeignPtr . unGObject
@@ -3455,6 +3946,7 @@
 instance MenuShellClass MenuBar
 instance ContainerClass MenuBar
 instance WidgetClass MenuBar
+instance ObjectClass MenuBar
 instance GObjectClass MenuBar where
   toGObject = GObject . castForeignPtr . unMenuBar
   unsafeCastGObject = MenuBar . castForeignPtr . unGObject
@@ -3480,6 +3972,7 @@
 instance NotebookClass Notebook
 instance ContainerClass Notebook
 instance WidgetClass Notebook
+instance ObjectClass Notebook
 instance GObjectClass Notebook where
   toGObject = GObject . castForeignPtr . unNotebook
   unsafeCastGObject = Notebook . castForeignPtr . unGObject
@@ -3505,6 +3998,7 @@
 instance TableClass Table
 instance ContainerClass Table
 instance WidgetClass Table
+instance ObjectClass Table
 instance GObjectClass Table where
   toGObject = GObject . castForeignPtr . unTable
   unsafeCastGObject = Table . castForeignPtr . unGObject
@@ -3530,6 +4024,7 @@
 instance TextViewClass TextView
 instance ContainerClass TextView
 instance WidgetClass TextView
+instance ObjectClass TextView
 instance GObjectClass TextView where
   toGObject = GObject . castForeignPtr . unTextView
   unsafeCastGObject = TextView . castForeignPtr . unGObject
@@ -3555,6 +4050,7 @@
 instance ToolbarClass Toolbar
 instance ContainerClass Toolbar
 instance WidgetClass Toolbar
+instance ObjectClass Toolbar
 instance GObjectClass Toolbar where
   toGObject = GObject . castForeignPtr . unToolbar
   unsafeCastGObject = Toolbar . castForeignPtr . unGObject
@@ -3580,6 +4076,7 @@
 instance TreeViewClass TreeView
 instance ContainerClass TreeView
 instance WidgetClass TreeView
+instance ObjectClass TreeView
 instance GObjectClass TreeView where
   toGObject = GObject . castForeignPtr . unTreeView
   unsafeCastGObject = TreeView . castForeignPtr . unGObject
@@ -3604,6 +4101,7 @@
 
 instance CalendarClass Calendar
 instance WidgetClass Calendar
+instance ObjectClass Calendar
 instance GObjectClass Calendar where
   toGObject = GObject . castForeignPtr . unCalendar
   unsafeCastGObject = Calendar . castForeignPtr . unGObject
@@ -3628,6 +4126,7 @@
 
 instance CellViewClass CellView
 instance WidgetClass CellView
+instance ObjectClass CellView
 instance GObjectClass CellView where
   toGObject = GObject . castForeignPtr . unCellView
   unsafeCastGObject = CellView . castForeignPtr . unGObject
@@ -3652,6 +4151,7 @@
 
 instance DrawingAreaClass DrawingArea
 instance WidgetClass DrawingArea
+instance ObjectClass DrawingArea
 instance GObjectClass DrawingArea where
   toGObject = GObject . castForeignPtr . unDrawingArea
   unsafeCastGObject = DrawingArea . castForeignPtr . unGObject
@@ -3677,6 +4177,7 @@
 instance SpinnerClass Spinner
 instance DrawingAreaClass Spinner
 instance WidgetClass Spinner
+instance ObjectClass Spinner
 instance GObjectClass Spinner where
   toGObject = GObject . castForeignPtr . unSpinner
   unsafeCastGObject = Spinner . castForeignPtr . unGObject
@@ -3701,6 +4202,7 @@
 
 instance EntryClass Entry
 instance WidgetClass Entry
+instance ObjectClass Entry
 instance GObjectClass Entry where
   toGObject = GObject . castForeignPtr . unEntry
   unsafeCastGObject = Entry . castForeignPtr . unGObject
@@ -3726,6 +4228,7 @@
 instance SpinButtonClass SpinButton
 instance EntryClass SpinButton
 instance WidgetClass SpinButton
+instance ObjectClass SpinButton
 instance GObjectClass SpinButton where
   toGObject = GObject . castForeignPtr . unSpinButton
   unsafeCastGObject = SpinButton . castForeignPtr . unGObject
@@ -3737,6 +4240,83 @@
 gTypeSpinButton =
   {# call fun unsafe gtk_spin_button_get_type #}
 
+-- ********************************************************************** Ruler
+
+{#pointer *GtkRuler as Ruler foreign newtype #} deriving (Eq,Ord)
+
+mkRuler = (Ruler, objectUnrefFromMainloop)
+unRuler (Ruler o) = o
+
+class WidgetClass o => RulerClass o
+toRuler :: RulerClass o => o -> Ruler
+toRuler = unsafeCastGObject . toGObject
+
+instance RulerClass Ruler
+instance WidgetClass Ruler
+instance ObjectClass Ruler
+instance GObjectClass Ruler where
+  toGObject = GObject . castForeignPtr . unRuler
+  unsafeCastGObject = Ruler . castForeignPtr . unGObject
+
+castToRuler :: GObjectClass obj => obj -> Ruler
+castToRuler = castTo gTypeRuler "Ruler"
+
+gTypeRuler :: GType
+gTypeRuler =
+  {# call fun unsafe gtk_ruler_get_type #}
+
+-- ********************************************************************* HRuler
+
+{#pointer *GtkHRuler as HRuler foreign newtype #} deriving (Eq,Ord)
+
+mkHRuler = (HRuler, objectUnrefFromMainloop)
+unHRuler (HRuler o) = o
+
+class RulerClass o => HRulerClass o
+toHRuler :: HRulerClass o => o -> HRuler
+toHRuler = unsafeCastGObject . toGObject
+
+instance HRulerClass HRuler
+instance RulerClass HRuler
+instance WidgetClass HRuler
+instance ObjectClass HRuler
+instance GObjectClass HRuler where
+  toGObject = GObject . castForeignPtr . unHRuler
+  unsafeCastGObject = HRuler . castForeignPtr . unGObject
+
+castToHRuler :: GObjectClass obj => obj -> HRuler
+castToHRuler = castTo gTypeHRuler "HRuler"
+
+gTypeHRuler :: GType
+gTypeHRuler =
+  {# call fun unsafe gtk_hruler_get_type #}
+
+-- ********************************************************************* VRuler
+
+{#pointer *GtkVRuler as VRuler foreign newtype #} deriving (Eq,Ord)
+
+mkVRuler = (VRuler, objectUnrefFromMainloop)
+unVRuler (VRuler o) = o
+
+class RulerClass o => VRulerClass o
+toVRuler :: VRulerClass o => o -> VRuler
+toVRuler = unsafeCastGObject . toGObject
+
+instance VRulerClass VRuler
+instance RulerClass VRuler
+instance WidgetClass VRuler
+instance ObjectClass VRuler
+instance GObjectClass VRuler where
+  toGObject = GObject . castForeignPtr . unVRuler
+  unsafeCastGObject = VRuler . castForeignPtr . unGObject
+
+castToVRuler :: GObjectClass obj => obj -> VRuler
+castToVRuler = castTo gTypeVRuler "VRuler"
+
+gTypeVRuler :: GType
+gTypeVRuler =
+  {# call fun unsafe gtk_vruler_get_type #}
+
 -- ********************************************************************** Range
 
 {#pointer *GtkRange as Range foreign newtype #} deriving (Eq,Ord)
@@ -3750,6 +4330,7 @@
 
 instance RangeClass Range
 instance WidgetClass Range
+instance ObjectClass Range
 instance GObjectClass Range where
   toGObject = GObject . castForeignPtr . unRange
   unsafeCastGObject = Range . castForeignPtr . unGObject
@@ -3775,6 +4356,7 @@
 instance ScaleClass Scale
 instance RangeClass Scale
 instance WidgetClass Scale
+instance ObjectClass Scale
 instance GObjectClass Scale where
   toGObject = GObject . castForeignPtr . unScale
   unsafeCastGObject = Scale . castForeignPtr . unGObject
@@ -3801,6 +4383,7 @@
 instance ScaleClass HScale
 instance RangeClass HScale
 instance WidgetClass HScale
+instance ObjectClass HScale
 instance GObjectClass HScale where
   toGObject = GObject . castForeignPtr . unHScale
   unsafeCastGObject = HScale . castForeignPtr . unGObject
@@ -3827,6 +4410,7 @@
 instance ScaleClass VScale
 instance RangeClass VScale
 instance WidgetClass VScale
+instance ObjectClass VScale
 instance GObjectClass VScale where
   toGObject = GObject . castForeignPtr . unVScale
   unsafeCastGObject = VScale . castForeignPtr . unGObject
@@ -3852,6 +4436,7 @@
 instance ScrollbarClass Scrollbar
 instance RangeClass Scrollbar
 instance WidgetClass Scrollbar
+instance ObjectClass Scrollbar
 instance GObjectClass Scrollbar where
   toGObject = GObject . castForeignPtr . unScrollbar
   unsafeCastGObject = Scrollbar . castForeignPtr . unGObject
@@ -3878,6 +4463,7 @@
 instance ScrollbarClass HScrollbar
 instance RangeClass HScrollbar
 instance WidgetClass HScrollbar
+instance ObjectClass HScrollbar
 instance GObjectClass HScrollbar where
   toGObject = GObject . castForeignPtr . unHScrollbar
   unsafeCastGObject = HScrollbar . castForeignPtr . unGObject
@@ -3904,6 +4490,7 @@
 instance ScrollbarClass VScrollbar
 instance RangeClass VScrollbar
 instance WidgetClass VScrollbar
+instance ObjectClass VScrollbar
 instance GObjectClass VScrollbar where
   toGObject = GObject . castForeignPtr . unVScrollbar
   unsafeCastGObject = VScrollbar . castForeignPtr . unGObject
@@ -3928,6 +4515,7 @@
 
 instance SeparatorClass Separator
 instance WidgetClass Separator
+instance ObjectClass Separator
 instance GObjectClass Separator where
   toGObject = GObject . castForeignPtr . unSeparator
   unsafeCastGObject = Separator . castForeignPtr . unGObject
@@ -3953,6 +4541,7 @@
 instance HSeparatorClass HSeparator
 instance SeparatorClass HSeparator
 instance WidgetClass HSeparator
+instance ObjectClass HSeparator
 instance GObjectClass HSeparator where
   toGObject = GObject . castForeignPtr . unHSeparator
   unsafeCastGObject = HSeparator . castForeignPtr . unGObject
@@ -3978,6 +4567,7 @@
 instance VSeparatorClass VSeparator
 instance SeparatorClass VSeparator
 instance WidgetClass VSeparator
+instance ObjectClass VSeparator
 instance GObjectClass VSeparator where
   toGObject = GObject . castForeignPtr . unVSeparator
   unsafeCastGObject = VSeparator . castForeignPtr . unGObject
@@ -4002,6 +4592,7 @@
 
 instance InvisibleClass Invisible
 instance WidgetClass Invisible
+instance ObjectClass Invisible
 instance GObjectClass Invisible where
   toGObject = GObject . castForeignPtr . unInvisible
   unsafeCastGObject = Invisible . castForeignPtr . unGObject
@@ -4013,6 +4604,31 @@
 gTypeInvisible =
   {# call fun unsafe gtk_invisible_get_type #}
 
+-- ******************************************************************** Preview
+
+{#pointer *GtkPreview as Preview foreign newtype #} deriving (Eq,Ord)
+
+mkPreview = (Preview, objectUnrefFromMainloop)
+unPreview (Preview o) = o
+
+class WidgetClass o => PreviewClass o
+toPreview :: PreviewClass o => o -> Preview
+toPreview = unsafeCastGObject . toGObject
+
+instance PreviewClass Preview
+instance WidgetClass Preview
+instance ObjectClass Preview
+instance GObjectClass Preview where
+  toGObject = GObject . castForeignPtr . unPreview
+  unsafeCastGObject = Preview . castForeignPtr . unGObject
+
+castToPreview :: GObjectClass obj => obj -> Preview
+castToPreview = castTo gTypePreview "Preview"
+
+gTypePreview :: GType
+gTypePreview =
+  {# call fun unsafe gtk_preview_get_type #}
+
 -- **************************************************************** ProgressBar
 
 {#pointer *GtkProgressBar as ProgressBar foreign newtype #} deriving (Eq,Ord)
@@ -4026,6 +4642,7 @@
 
 instance ProgressBarClass ProgressBar
 instance WidgetClass ProgressBar
+instance ObjectClass ProgressBar
 instance GObjectClass ProgressBar where
   toGObject = GObject . castForeignPtr . unProgressBar
   unsafeCastGObject = ProgressBar . castForeignPtr . unGObject
@@ -4037,30 +4654,6 @@
 gTypeProgressBar =
   {# call fun unsafe gtk_progress_bar_get_type #}
 
--- ******************************************************************* LevelBar
-
-{#pointer *GtkLevelBar as LevelBar foreign newtype #} deriving (Eq,Ord)
-
-mkLevelBar = (LevelBar, objectUnrefFromMainloop)
-unLevelBar (LevelBar o) = o
-
-class WidgetClass o => LevelBarClass o
-toLevelBar :: LevelBarClass o => o -> LevelBar
-toLevelBar = unsafeCastGObject . toGObject
-
-instance LevelBarClass LevelBar
-instance WidgetClass LevelBar
-instance GObjectClass LevelBar where
-  toGObject = GObject . castForeignPtr . unLevelBar
-  unsafeCastGObject = LevelBar . castForeignPtr . unGObject
-
-castToLevelBar :: GObjectClass obj => obj -> LevelBar
-castToLevelBar = castTo gTypeLevelBar "LevelBar"
-
-gTypeLevelBar :: GType
-gTypeLevelBar =
-  {# call fun unsafe gtk_level_bar_get_type #}
-
 -- ***************************************************************** Adjustment
 
 {#pointer *GtkAdjustment as Adjustment foreign newtype #} deriving (Eq,Ord)
@@ -4068,11 +4661,12 @@
 mkAdjustment = (Adjustment, objectUnrefFromMainloop)
 unAdjustment (Adjustment o) = o
 
-class GObjectClass o => AdjustmentClass o
+class ObjectClass o => AdjustmentClass o
 toAdjustment :: AdjustmentClass o => o -> Adjustment
 toAdjustment = unsafeCastGObject . toGObject
 
 instance AdjustmentClass Adjustment
+instance ObjectClass Adjustment
 instance GObjectClass Adjustment where
   toGObject = GObject . castForeignPtr . unAdjustment
   unsafeCastGObject = Adjustment . castForeignPtr . unGObject
@@ -4091,11 +4685,12 @@
 mkIMContext = (IMContext, objectUnrefFromMainloop)
 unIMContext (IMContext o) = o
 
-class GObjectClass o => IMContextClass o
+class ObjectClass o => IMContextClass o
 toIMContext :: IMContextClass o => o -> IMContext
 toIMContext = unsafeCastGObject . toGObject
 
 instance IMContextClass IMContext
+instance ObjectClass IMContext
 instance GObjectClass IMContext where
   toGObject = GObject . castForeignPtr . unIMContext
   unsafeCastGObject = IMContext . castForeignPtr . unGObject
@@ -4120,6 +4715,7 @@
 
 instance IMMulticontextClass IMMulticontext
 instance IMContextClass IMMulticontext
+instance ObjectClass IMMulticontext
 instance GObjectClass IMMulticontext where
   toGObject = GObject . castForeignPtr . unIMMulticontext
   unsafeCastGObject = IMMulticontext . castForeignPtr . unGObject
@@ -4144,6 +4740,7 @@
 
 instance IMContextSimpleClass IMContextSimple
 instance IMContextClass IMContextSimple
+instance ObjectClass IMContextSimple
 instance GObjectClass IMContextSimple where
   toGObject = GObject . castForeignPtr . unIMContextSimple
   unsafeCastGObject = IMContextSimple . castForeignPtr . unGObject
@@ -4155,6 +4752,54 @@
 gTypeIMContextSimple =
   {# call fun unsafe gtk_im_context_simple_get_type #}
 
+-- **************************************************************** ItemFactory
+
+{#pointer *GtkItemFactory as ItemFactory foreign newtype #} deriving (Eq,Ord)
+
+mkItemFactory = (ItemFactory, objectUnrefFromMainloop)
+unItemFactory (ItemFactory o) = o
+
+class ObjectClass o => ItemFactoryClass o
+toItemFactory :: ItemFactoryClass o => o -> ItemFactory
+toItemFactory = unsafeCastGObject . toGObject
+
+instance ItemFactoryClass ItemFactory
+instance ObjectClass ItemFactory
+instance GObjectClass ItemFactory where
+  toGObject = GObject . castForeignPtr . unItemFactory
+  unsafeCastGObject = ItemFactory . castForeignPtr . unGObject
+
+castToItemFactory :: GObjectClass obj => obj -> ItemFactory
+castToItemFactory = castTo gTypeItemFactory "ItemFactory"
+
+gTypeItemFactory :: GType
+gTypeItemFactory =
+  {# call fun unsafe gtk_item_factory_get_type #}
+
+-- ******************************************************************* Tooltips
+
+{#pointer *GtkTooltips as Tooltips foreign newtype #} deriving (Eq,Ord)
+
+mkTooltips = (Tooltips, objectUnrefFromMainloop)
+unTooltips (Tooltips o) = o
+
+class ObjectClass o => TooltipsClass o
+toTooltips :: TooltipsClass o => o -> Tooltips
+toTooltips = unsafeCastGObject . toGObject
+
+instance TooltipsClass Tooltips
+instance ObjectClass Tooltips
+instance GObjectClass Tooltips where
+  toGObject = GObject . castForeignPtr . unTooltips
+  unsafeCastGObject = Tooltips . castForeignPtr . unGObject
+
+castToTooltips :: GObjectClass obj => obj -> Tooltips
+castToTooltips = castTo gTypeTooltips "Tooltips"
+
+gTypeTooltips :: GType
+gTypeTooltips =
+  {# call fun unsafe gtk_tooltips_get_type #}
+
 -- ************************************************************* TreeViewColumn
 
 {#pointer *GtkTreeViewColumn as TreeViewColumn foreign newtype #} deriving (Eq,Ord)
@@ -4162,11 +4807,12 @@
 mkTreeViewColumn = (TreeViewColumn, objectUnrefFromMainloop)
 unTreeViewColumn (TreeViewColumn o) = o
 
-class GObjectClass o => TreeViewColumnClass o
+class ObjectClass o => TreeViewColumnClass o
 toTreeViewColumn :: TreeViewColumnClass o => o -> TreeViewColumn
 toTreeViewColumn = unsafeCastGObject . toGObject
 
 instance TreeViewColumnClass TreeViewColumn
+instance ObjectClass TreeViewColumn
 instance GObjectClass TreeViewColumn where
   toGObject = GObject . castForeignPtr . unTreeViewColumn
   unsafeCastGObject = TreeViewColumn . castForeignPtr . unGObject
@@ -4185,11 +4831,12 @@
 mkCellRenderer = (CellRenderer, objectUnrefFromMainloop)
 unCellRenderer (CellRenderer o) = o
 
-class GObjectClass o => CellRendererClass o
+class ObjectClass o => CellRendererClass o
 toCellRenderer :: CellRendererClass o => o -> CellRenderer
 toCellRenderer = unsafeCastGObject . toGObject
 
 instance CellRendererClass CellRenderer
+instance ObjectClass CellRenderer
 instance GObjectClass CellRenderer where
   toGObject = GObject . castForeignPtr . unCellRenderer
   unsafeCastGObject = CellRenderer . castForeignPtr . unGObject
@@ -4214,6 +4861,7 @@
 
 instance CellRendererSpinnerClass CellRendererSpinner
 instance CellRendererClass CellRendererSpinner
+instance ObjectClass CellRendererSpinner
 instance GObjectClass CellRendererSpinner where
   toGObject = GObject . castForeignPtr . unCellRendererSpinner
   unsafeCastGObject = CellRendererSpinner . castForeignPtr . unGObject
@@ -4238,6 +4886,7 @@
 
 instance CellRendererPixbufClass CellRendererPixbuf
 instance CellRendererClass CellRendererPixbuf
+instance ObjectClass CellRendererPixbuf
 instance GObjectClass CellRendererPixbuf where
   toGObject = GObject . castForeignPtr . unCellRendererPixbuf
   unsafeCastGObject = CellRendererPixbuf . castForeignPtr . unGObject
@@ -4262,6 +4911,7 @@
 
 instance CellRendererTextClass CellRendererText
 instance CellRendererClass CellRendererText
+instance ObjectClass CellRendererText
 instance GObjectClass CellRendererText where
   toGObject = GObject . castForeignPtr . unCellRendererText
   unsafeCastGObject = CellRendererText . castForeignPtr . unGObject
@@ -4287,6 +4937,7 @@
 instance CellRendererAccelClass CellRendererAccel
 instance CellRendererTextClass CellRendererAccel
 instance CellRendererClass CellRendererAccel
+instance ObjectClass CellRendererAccel
 instance GObjectClass CellRendererAccel where
   toGObject = GObject . castForeignPtr . unCellRendererAccel
   unsafeCastGObject = CellRendererAccel . castForeignPtr . unGObject
@@ -4312,6 +4963,7 @@
 instance CellRendererSpinClass CellRendererSpin
 instance CellRendererTextClass CellRendererSpin
 instance CellRendererClass CellRendererSpin
+instance ObjectClass CellRendererSpin
 instance GObjectClass CellRendererSpin where
   toGObject = GObject . castForeignPtr . unCellRendererSpin
   unsafeCastGObject = CellRendererSpin . castForeignPtr . unGObject
@@ -4337,6 +4989,7 @@
 instance CellRendererComboClass CellRendererCombo
 instance CellRendererTextClass CellRendererCombo
 instance CellRendererClass CellRendererCombo
+instance ObjectClass CellRendererCombo
 instance GObjectClass CellRendererCombo where
   toGObject = GObject . castForeignPtr . unCellRendererCombo
   unsafeCastGObject = CellRendererCombo . castForeignPtr . unGObject
@@ -4361,6 +5014,7 @@
 
 instance CellRendererToggleClass CellRendererToggle
 instance CellRendererClass CellRendererToggle
+instance ObjectClass CellRendererToggle
 instance GObjectClass CellRendererToggle where
   toGObject = GObject . castForeignPtr . unCellRendererToggle
   unsafeCastGObject = CellRendererToggle . castForeignPtr . unGObject
@@ -4385,6 +5039,7 @@
 
 instance CellRendererProgressClass CellRendererProgress
 instance CellRendererClass CellRendererProgress
+instance ObjectClass CellRendererProgress
 instance GObjectClass CellRendererProgress where
   toGObject = GObject . castForeignPtr . unCellRendererProgress
   unsafeCastGObject = CellRendererProgress . castForeignPtr . unGObject
@@ -4403,11 +5058,12 @@
 mkFileFilter = (FileFilter, objectUnrefFromMainloop)
 unFileFilter (FileFilter o) = o
 
-class GObjectClass o => FileFilterClass o
+class ObjectClass o => FileFilterClass o
 toFileFilter :: FileFilterClass o => o -> FileFilter
 toFileFilter = unsafeCastGObject . toGObject
 
 instance FileFilterClass FileFilter
+instance ObjectClass FileFilter
 instance GObjectClass FileFilter where
   toGObject = GObject . castForeignPtr . unFileFilter
   unsafeCastGObject = FileFilter . castForeignPtr . unGObject
@@ -4426,11 +5082,12 @@
 mkBuilder = (Builder, objectUnrefFromMainloop)
 unBuilder (Builder o) = o
 
-class GObjectClass o => BuilderClass o
+class ObjectClass o => BuilderClass o
 toBuilder :: BuilderClass o => o -> Builder
 toBuilder = unsafeCastGObject . toGObject
 
 instance BuilderClass Builder
+instance ObjectClass Builder
 instance GObjectClass Builder where
   toGObject = GObject . castForeignPtr . unBuilder
   unsafeCastGObject = Builder . castForeignPtr . unGObject
@@ -4442,75 +5099,6 @@
 gTypeBuilder =
   {# call fun unsafe gtk_builder_get_type #}
 
--- *************************************************************** StyleContext
-
-{#pointer *GtkStyleContext as StyleContext foreign newtype #} deriving (Eq,Ord)
-
-mkStyleContext = (StyleContext, objectUnrefFromMainloop)
-unStyleContext (StyleContext o) = o
-
-class GObjectClass o => StyleContextClass o
-toStyleContext :: StyleContextClass o => o -> StyleContext
-toStyleContext = unsafeCastGObject . toGObject
-
-instance StyleContextClass StyleContext
-instance GObjectClass StyleContext where
-  toGObject = GObject . castForeignPtr . unStyleContext
-  unsafeCastGObject = StyleContext . castForeignPtr . unGObject
-
-castToStyleContext :: GObjectClass obj => obj -> StyleContext
-castToStyleContext = castTo gTypeStyleContext "StyleContext"
-
-gTypeStyleContext :: GType
-gTypeStyleContext =
-  {# call fun unsafe gtk_style_context_get_type #}
-
--- ************************************************************** StyleProvider
-
-{#pointer *GtkStyleProvider as StyleProvider foreign newtype #} deriving (Eq,Ord)
-
-mkStyleProvider = (StyleProvider, objectUnrefFromMainloop)
-unStyleProvider (StyleProvider o) = o
-
-class GObjectClass o => StyleProviderClass o
-toStyleProvider :: StyleProviderClass o => o -> StyleProvider
-toStyleProvider = unsafeCastGObject . toGObject
-
-instance StyleProviderClass StyleProvider
-instance GObjectClass StyleProvider where
-  toGObject = GObject . castForeignPtr . unStyleProvider
-  unsafeCastGObject = StyleProvider . castForeignPtr . unGObject
-
-castToStyleProvider :: GObjectClass obj => obj -> StyleProvider
-castToStyleProvider = castTo gTypeStyleProvider "StyleProvider"
-
-gTypeStyleProvider :: GType
-gTypeStyleProvider =
-  {# call fun unsafe gtk_style_provider_get_type #}
-
--- **************************************************************** CssProvider
-
-{#pointer *GtkCssProvider as CssProvider foreign newtype #} deriving (Eq,Ord)
-
-mkCssProvider = (CssProvider, objectUnrefFromMainloop)
-unCssProvider (CssProvider o) = o
-
-class GObjectClass o => CssProviderClass o
-toCssProvider :: CssProviderClass o => o -> CssProvider
-toCssProvider = unsafeCastGObject . toGObject
-
-instance CssProviderClass CssProvider
-instance GObjectClass CssProvider where
-  toGObject = GObject . castForeignPtr . unCssProvider
-  unsafeCastGObject = CssProvider . castForeignPtr . unGObject
-
-castToCssProvider :: GObjectClass obj => obj -> CssProvider
-castToCssProvider = castTo gTypeCssProvider "CssProvider"
-
-gTypeCssProvider :: GType
-gTypeCssProvider =
-  {# call fun unsafe gtk_css_provider_get_type #}
-
 -- ***************************************************************** CellLayout
 
 {#pointer *GtkCellLayout as CellLayout foreign newtype #} deriving (Eq,Ord)
@@ -5161,4 +5749,27 @@
 gTypeFileChooser :: GType
 gTypeFileChooser =
   {# call fun unsafe gtk_file_chooser_get_type #}
+
+-- ************************************************************************* GC
+
+{#pointer *GdkGC as GC foreign newtype #} deriving (Eq,Ord)
+
+mkGC = (GC, objectUnrefFromMainloop)
+unGC (GC o) = o
+
+class GObjectClass o => GCClass o
+toGC :: GCClass o => o -> GC
+toGC = unsafeCastGObject . toGObject
+
+instance GCClass GC
+instance GObjectClass GC where
+  toGObject = GObject . castForeignPtr . unGC
+  unsafeCastGObject = GC . castForeignPtr . unGObject
+
+castToGC :: GObjectClass obj => obj -> GC
+castToGC = castTo gTypeGC "GC"
+
+gTypeGC :: GType
+gTypeGC =
+  {# call fun unsafe gdk_gc_get_type #}
 
diff --git a/gtk3.cabal b/gtk3.cabal
--- a/gtk3.cabal
+++ b/gtk3.cabal
@@ -1,5 +1,5 @@
 Name:           gtk3
-Version:        0.13.2
+Version:        0.13.3
 License:        LGPL-2.1
 License-file:   COPYING
 Copyright:      (c) 2001-2010 The Gtk2Hs Team
@@ -387,7 +387,7 @@
     main-is: ActionMenu.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base, transformers, text
+    build-depends: gtk3==0.13.3, base, transformers, text
 
 Executable gtk2hs-demo-buttonBox
     default-language: Haskell98
@@ -395,7 +395,7 @@
     main-is: ButtonBox.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base, transformers
+    build-depends: gtk3==0.13.3, base, transformers
 
 Executable gtk2hs-demo-carsim
     default-language: Haskell98
@@ -403,7 +403,7 @@
     main-is: CarSim.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base, transformers, time, cairo
+    build-depends: gtk3==0.13.3, base, transformers, time, cairo
 
 Executable gtk2hs-demo-progress
     default-language: Haskell98
@@ -411,7 +411,7 @@
     main-is: Progress.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base, transformers
+    build-depends: gtk3==0.13.3, base, transformers
 
 Executable gtk2hs-demo-progressThreadedRTS
     default-language: Haskell98
@@ -419,7 +419,7 @@
     main-is: ProgressThreadedRTS.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base, transformers
+    build-depends: gtk3==0.13.3, base, transformers
     ghc-options: -threaded
 
 Executable gtk2hs-demo-fastDraw
@@ -428,7 +428,7 @@
     main-is: FastDraw.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base, transformers, array, cairo
+    build-depends: gtk3==0.13.3, base, transformers, array, cairo
 
 Executable gtk2hs-demo-fonts
     default-language: Haskell98
@@ -436,7 +436,7 @@
     main-is: Fonts.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base
+    build-depends: gtk3==0.13.3, base
 
 Executable gtk2hs-demo-builder
     default-language: Haskell98
@@ -444,7 +444,7 @@
     main-is: GtkBuilderTest.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base, transformers
+    build-depends: gtk3==0.13.3, base, transformers
 
 Executable gtk2hs-demo-helloworld
     default-language: Haskell98
@@ -452,7 +452,7 @@
     main-is: World.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base, transformers
+    build-depends: gtk3==0.13.3, base, transformers
 
 Executable gtk2hs-demo-layout
     default-language: Haskell98
@@ -460,7 +460,7 @@
     main-is: Layout.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base, transformers, cairo, text
+    build-depends: gtk3==0.13.3, base, transformers, cairo, text
 
 Executable gtk2hs-demo-menudemo
     default-language: Haskell98
@@ -468,7 +468,7 @@
     main-is: MenuDemo.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base, transformers, text
+    build-depends: gtk3==0.13.3, base, transformers, text
 
 Executable gtk2hs-demo-combodemo
     default-language: Haskell98
@@ -476,7 +476,7 @@
     main-is: ComboDemo.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, text, base, transformers
+    build-depends: gtk3==0.13.3, text, base, transformers
 
 Executable gtk2hs-demo-notebook
     default-language: Haskell98
@@ -484,7 +484,7 @@
     main-is: Notebook.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base, transformers, text
+    build-depends: gtk3==0.13.3, base, transformers, text
 
 Executable gtk2hs-demo-statusIcon
     default-language: Haskell98
@@ -492,7 +492,7 @@
     main-is: StatusIcon.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base, transformers
+    build-depends: gtk3==0.13.3, base, transformers
 
 Executable gtk2hs-demo-arabic
     default-language: Haskell98
@@ -500,7 +500,7 @@
     main-is: Arabic.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base, transformers, text
+    build-depends: gtk3==0.13.3, base, transformers, text
 
 Executable gtk2hs-demo-overlay
     default-language: Haskell98
@@ -508,4 +508,4 @@
     main-is: Overlay.hs
     if !flag(build-demos)
       buildable: False
-    build-depends: gtk3==0.13.2, base, transformers
+    build-depends: gtk3==0.13.3, base, transformers
