packages feed

qtah-generator-0.4.0: src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractItemView.hs

-- This file is part of Qtah.
--
-- Copyright 2015-2018 The Qtah Authors.
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU Lesser General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public License
-- along with this program.  If not, see <http://www.gnu.org/licenses/>.

module Graphics.UI.Qtah.Generator.Interface.Widgets.QAbstractItemView (
  aModule,
  c_QAbstractItemView,
  ) where

import Foreign.Hoppy.Generator.Spec (
  Export (ExportBitspace, ExportEnum, ExportClass),
  addReqIncludes,
  classSetEntityPrefix,
  ident,
  ident1,
  includeStd,
  makeClass,
  mkBoolHasProp,
  mkConstMethod,
  mkMethod,
  mkMethod',
  mkProp,
  )
import Foreign.Hoppy.Generator.Types (
  bitspaceT,
  boolT,
  enumT,
  intT,
  objT,
  ptrT,
  voidT,
  )
import Graphics.UI.Qtah.Generator.Interface.Core.QAbstractItemModel (c_QAbstractItemModel)
import Graphics.UI.Qtah.Generator.Interface.Core.QItemSelectionModel (c_QItemSelectionModel)
import Graphics.UI.Qtah.Generator.Interface.Core.QModelIndex (c_QModelIndex)
import Graphics.UI.Qtah.Generator.Interface.Core.QPoint (c_QPoint)
import Graphics.UI.Qtah.Generator.Interface.Core.QRect (c_QRect)
import Graphics.UI.Qtah.Generator.Interface.Core.QSize (c_QSize)
import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
import Graphics.UI.Qtah.Generator.Interface.Core.Types (
  e_DropAction,
  e_TextElideMode,
  )
import Graphics.UI.Qtah.Generator.Interface.Internal.Listener (
  c_Listener,
  c_ListenerQModelIndex,
  c_ListenerQSize,
  )
import Graphics.UI.Qtah.Generator.Interface.Widgets.QAbstractScrollArea (c_QAbstractScrollArea)
import Graphics.UI.Qtah.Generator.Interface.Widgets.QWidget (c_QWidget)
import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModule)
import Graphics.UI.Qtah.Generator.Types

{-# ANN module "HLint: ignore Use camelCase" #-}

aModule =
  AQtModule $
  makeQtModule ["Widgets", "QAbstractItemView"] $
  QtExport (ExportClass c_QAbstractItemView) :
  map QtExportSignal signals ++
  [ QtExport $ ExportEnum e_DragDropMode
  , QtExport $ ExportEnum e_EditTrigger
  , QtExport $ ExportBitspace bs_EditTriggers
  , QtExport $ ExportEnum e_ScrollHint
  , QtExport $ ExportEnum e_ScrollMode
  , QtExport $ ExportEnum e_SelectionBehavior
  , QtExport $ ExportEnum e_SelectionMode
  ]

c_QAbstractItemView =
  addReqIncludes [includeStd "QAbstractItemView"] $
  classSetEntityPrefix "" $
  makeClass (ident "QAbstractItemView") Nothing [c_QAbstractScrollArea] $
  [ mkProp "alternatingRowColors" boolT
  , mkBoolHasProp "autoScroll"
  , mkProp "autoScrollMargin" intT
  , mkMethod "clearSelection" [] voidT
  , mkMethod "closePersistentEditor" [objT c_QModelIndex] voidT
  , mkProp "currentIndex" $ objT c_QModelIndex
  , mkProp "defaultDropAction" $ enumT e_DropAction
  , mkProp "dragDropMode" $ enumT e_DragDropMode
  , mkProp "dragDropOverwriteMode" boolT
  , mkProp "dragEnabled" boolT
  , mkMethod "edit" [objT c_QModelIndex] voidT
  , mkProp "editTriggers" $ bitspaceT bs_EditTriggers
  , mkProp "horizontalScrollMode" $ enumT e_ScrollMode
  , mkProp "iconSize" $ objT c_QSize
  , mkConstMethod "indexAt" [objT c_QPoint] $ objT c_QModelIndex
  , mkConstMethod "indexWidget" [objT c_QModelIndex] $ ptrT $ objT c_QWidget
    -- TODO mkConstMethod' "itemDelegate" "itemDelegate" [] $ ptrT $ objT c_QAbstractItemDelegate
    -- TODO mkConstMethod' "itemDelegate" "itemDelegateAt" [objT c_QModelIndex] $
    --      ptrT $ objT c_QAbstractItemDelegate
    -- TODO mkConstMethod "itemDelegateForColumn" [intT] $ ptrT $ objT c_QAbstractItemDelegate
    -- TODO mkConstMethod "itemDelegateForRow" [intT] $ ptrT $ objT c_QAbstractItemDelegate
  , mkMethod "keyboardSearch" [objT c_QString] voidT
  , mkProp "model" $ ptrT $ objT c_QAbstractItemModel
  , mkMethod "openPersistentEditor" [objT c_QModelIndex] voidT
  , mkMethod "reset" [] voidT
  , mkProp "rootIndex" $ objT c_QModelIndex
  , mkMethod' "scrollTo" "scrollTo" [objT c_QModelIndex] voidT
  , mkMethod' "scrollTo" "scrollToWithHint" [objT c_QModelIndex, enumT e_ScrollHint] voidT
  , mkMethod "scrollToBottom" [] voidT
  , mkMethod "scrollToTop" [] voidT
  , mkMethod "selectAll" [] voidT
  , mkProp "selectionBehavior" $ enumT e_SelectionBehavior
  , mkProp "selectionMode" $ enumT e_SelectionMode
  , mkProp "selectionModel" $ ptrT $ objT c_QItemSelectionModel
  , mkMethod "setDropIndicatorShown" [boolT] voidT
  , mkMethod "setIndexWidget" [objT c_QModelIndex, ptrT $ objT c_QWidget] voidT
    -- TODO mkMethod "setItemDelegate" [ptrT $ objT c_QAbstractItemDelegate] voidT
    -- TODO mkMethod "setItemDelegateForColumn" [intT, ptrT $ objT c_QAbstractItemDelegate] voidT
    -- TODO mkMethod "setItemDelegateForRow" [intT, ptrT $ objT c_QAbstractItemDelegate] voidT
  , mkConstMethod "showDropIndicator" [] boolT
  , mkConstMethod "sizeHintForColumn" [intT] intT
  , mkConstMethod "sizeHintForIndex" [objT c_QModelIndex] $ objT c_QSize
  , mkConstMethod "sizeHintForRow" [intT] intT
  , mkProp "tabKeyNavigation" boolT
  , mkProp "textElideMode" $ enumT e_TextElideMode
  , mkMethod "update" [objT c_QModelIndex] voidT
  , mkProp "verticalScrollMode" $ enumT e_ScrollMode
  , mkConstMethod "visualRect" [objT c_QModelIndex] $ objT c_QRect
  ]

signals =
  [ makeSignal c_QAbstractItemView "activated" c_ListenerQModelIndex
  , makeSignal c_QAbstractItemView "clicked" c_ListenerQModelIndex
  , makeSignal c_QAbstractItemView "doubleClicked" c_ListenerQModelIndex
  , makeSignal c_QAbstractItemView "entered" c_ListenerQModelIndex
  , makeSignal c_QAbstractItemView "iconSizeChanged" c_ListenerQSize
  , makeSignal c_QAbstractItemView "pressed" c_ListenerQModelIndex
  , makeSignal c_QAbstractItemView "viewportEntered" c_Listener
  ]

e_DragDropMode =
  makeQtEnum (ident1 "QAbstractItemView" "DragDropMode") [includeStd "QAbstractItemView"]
  [ (0, ["no", "drag", "drop"])
  , (1, ["drag", "only"])
  , (2, ["drop", "only"])
  , (3, ["drag", "drop"])
  , (4, ["internal", "move"])
  ]

(e_EditTrigger, bs_EditTriggers) =
  makeQtEnumBitspace (ident1 "QAbstractItemView" "EditTrigger") "EditTriggers"
  [includeStd "QAbstractItemView"]
  [ (0, ["no", "edit", "triggers"])
  , (1, ["current", "changed"])
  , (2, ["double", "clicked"])
  , (4, ["selected", "clicked"])
  , (8, ["edit", "key", "pressed"])
  , (16, ["any", "key", "pressed"])
  , (31, ["all", "edit", "triggers"])
  ]

e_ScrollHint =
  makeQtEnum (ident1 "QAbstractItemView" "ScrollHint") [includeStd "QAbstractItemView"]
  [ (0, ["ensure", "visible"])
  , (1, ["position", "at", "top"])
  , (2, ["position", "at", "bottom"])
  , (3, ["position", "at", "center"])
  ]

e_ScrollMode =
  makeQtEnum (ident1 "QAbstractItemView" "ScrollMode") [includeStd "QAbstractItemView"]
  [ (0, ["scroll", "per", "item"])
  , (1, ["scroll", "per", "pixel"])
  ]

e_SelectionBehavior =
  makeQtEnum (ident1 "QAbstractItemView" "SelectionBehavior") [includeStd "QAbstractItemView"]
  [ (0, ["select", "items"])
  , (1, ["select", "rows"])
  , (2, ["select", "columns"])
  ]

e_SelectionMode =
  makeQtEnum (ident1 "QAbstractItemView" "SelectionMode") [includeStd "QAbstractItemView"]
  [ (0, ["no", "selection"])
  , (1, ["single", "selection"])
  , (2, ["multi", "selection"])
  , (3, ["extended", "selection"])
  , (4, ["contiguous", "selection"])
  ]