packages feed

qtah-generator-0.8.0: src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMessageBox.hs

-- This file is part of Qtah.
--
-- Copyright 2015-2021 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.QMessageBox (
  aModule,
  ) where

import Foreign.Hoppy.Generator.Spec (
  addReqIncludes,
  classSetEntityPrefix,
  ident,
  ident1,
  includeStd,
  makeClass,
  mkConstMethod,
  mkCtor,
  mkMethod,
  mkMethod',
  mkProp,
  mkStaticMethod,
  mkStaticMethod',
  np,
  )
import Foreign.Hoppy.Generator.Types (enumT, objT, ptrT, voidT)
import Foreign.Hoppy.Generator.Version (collect, just, test)
import Graphics.UI.Qtah.Generator.Config (qtVersion)
import Graphics.UI.Qtah.Generator.Flags (flagsT)
import Graphics.UI.Qtah.Generator.Interface.Core.QList (c_QListQAbstractButton)
import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
import Graphics.UI.Qtah.Generator.Interface.Core.Types (
  e_TextFormat,
  fl_TextInteractionFlags,
  e_WindowModality,
  )
import Graphics.UI.Qtah.Generator.Interface.Internal.Listener (listenerPtrQAbstractButton)
import Graphics.UI.Qtah.Generator.Interface.Gui.QPixmap (c_QPixmap)
import Graphics.UI.Qtah.Generator.Interface.Widgets.QAbstractButton (c_QAbstractButton)
import Graphics.UI.Qtah.Generator.Interface.Widgets.QCheckBox (c_QCheckBox)
import Graphics.UI.Qtah.Generator.Interface.Widgets.QDialog (c_QDialog)
import Graphics.UI.Qtah.Generator.Interface.Widgets.QPushButton (c_QPushButton)
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", "QMessageBox"]
  [ QtExportClassAndSignals c_QMessageBox signals
  , qtExport e_ButtonRole
  , qtExport e_Icon
  , qtExport e_StandardButton
  , qtExport fl_StandardButtons
  ]

(c_QMessageBox, signals) =
  makeQtClassAndSignals signalGens $
  addReqIncludes [includeStd "QMessageBox"] $
  classSetEntityPrefix "" $
  makeClass (ident "QMessageBox") Nothing [c_QDialog] $
  collect
  [ just $ mkCtor "new" np
  , just $ mkCtor "newWithParent" [ptrT $ objT c_QWidget]
  , just $ mkStaticMethod "about" [ptrT $ objT c_QWidget, objT c_QString, objT c_QString] voidT
  , just $ mkStaticMethod "aboutQt" [ptrT $ objT c_QWidget, objT c_QString] voidT
  , test (qtVersion >= [4, 2]) $ mkMethod' "addButton" "addButton"
    [ptrT $ objT c_QAbstractButton, enumT e_ButtonRole] voidT
  , test (qtVersion >= [4, 2]) $ mkMethod' "addButton" "addNewButton"
    [objT c_QString, enumT e_ButtonRole] $ ptrT $ objT c_QPushButton
  , test (qtVersion >= [4, 2]) $ mkMethod' "addButton" "addStandardButton"
    [enumT e_StandardButton] $ ptrT $ objT c_QPushButton
  , test (qtVersion >= [4, 2]) $ mkConstMethod "button"
    [enumT e_StandardButton] $ ptrT $ objT c_QAbstractButton
  , test (qtVersion >= [4, 5]) $ mkConstMethod "buttonRole"
    [ptrT $ objT c_QAbstractButton] $ enumT e_ButtonRole
  , test (qtVersion >= [4, 5]) $ mkConstMethod "buttons" np $ objT c_QListQAbstractButton
  , test (qtVersion >= [5, 2]) $ mkProp "checkBox" $ ptrT $ objT c_QCheckBox
  , test (qtVersion >= [4, 2]) $ mkConstMethod "clickedButton" np $ ptrT $ objT c_QAbstractButton
  , test (qtVersion >= [4, 2]) $ mkStaticMethod' "critical" "critical"
    [ptrT $ objT c_QWidget, objT c_QString, objT c_QString] $ enumT e_StandardButton
  , test (qtVersion >= [4, 2]) $ mkStaticMethod' "critical" "criticalWithButtons"
    [ptrT $ objT c_QWidget, objT c_QString, objT c_QString,
     flagsT fl_StandardButtons, enumT e_StandardButton] $
    enumT e_StandardButton
  , just $ mkConstMethod "defaultButton" np $ ptrT $ objT c_QPushButton
  , test (qtVersion >= [4, 2]) $ mkProp "detailedText" $ objT c_QString
  , test (qtVersion >= [4, 2]) $ mkConstMethod "escapeButton" np $ ptrT $ objT c_QAbstractButton
  , just $ mkProp "icon" $ enumT e_Icon
  , just $ mkProp "iconPixmap" $ objT c_QPixmap
  , test (qtVersion >= [4, 2]) $ mkStaticMethod' "information" "information"
    [ptrT $ objT c_QWidget, objT c_QString, objT c_QString] $ enumT e_StandardButton
  , test (qtVersion >= [4, 2]) $ mkStaticMethod' "information" "informationWithButtons"
    [ptrT $ objT c_QWidget, objT c_QString, objT c_QString,
     flagsT fl_StandardButtons, enumT e_StandardButton] $
    enumT e_StandardButton
    -- OMIT open
  , test (qtVersion >= [4, 2]) $ mkProp "informativeText" $ objT c_QString
  , test (qtVersion >= [4, 2]) $ mkStaticMethod' "question" "question"
    [ptrT $ objT c_QWidget, objT c_QString, objT c_QString] $ enumT e_StandardButton
  , test (qtVersion >= [4, 2]) $ mkStaticMethod' "question" "questionWithButtons"
    [ptrT $ objT c_QWidget, objT c_QString, objT c_QString,
     flagsT fl_StandardButtons, enumT e_StandardButton] $
    enumT e_StandardButton
  , test (qtVersion >= [4, 2]) $ mkMethod "removeButton" [ptrT $ objT c_QAbstractButton] voidT
  , test (qtVersion >= [4, 2]) $ mkMethod' "setDefaultButton" "setDefaultButton"
    [ptrT $ objT c_QPushButton] voidT
  , test (qtVersion >= [4, 3]) $ mkMethod' "setDefaultButton" "setDefaultButtonStandard"
    [enumT e_StandardButton] voidT
  , test (qtVersion >= [4, 2]) $ mkMethod' "setEscapeButton" "setEscapeButton"
    [ptrT $ objT c_QPushButton] voidT
  , test (qtVersion >= [4, 3]) $ mkMethod' "setEscapeButton" "setEscapeButtonStandard"
    [enumT e_StandardButton] voidT
  , test (qtVersion >= [4, 2]) $ mkMethod "setWindowModality" [enumT e_WindowModality] voidT
  , test (qtVersion >= [4, 2]) $ mkMethod "setWindowTitle" [objT c_QString] voidT
  , test (qtVersion >= [4, 2]) $ mkConstMethod "standardButton"
    [ptrT $ objT c_QAbstractButton] $ enumT e_StandardButton
  , test (qtVersion >= [4, 2]) $ mkProp "standardButtons" $ flagsT fl_StandardButtons
  , just $ mkProp "text" $ objT c_QString
  , just $ mkProp "textFormat" $ enumT e_TextFormat
  , test (qtVersion >= [5, 1]) $ mkProp "textInteractionFlags" $ flagsT fl_TextInteractionFlags
  , test (qtVersion >= [4, 2]) $ mkStaticMethod' "warning" "warning"
    [ptrT $ objT c_QWidget, objT c_QString, objT c_QString] $ enumT e_StandardButton
  , test (qtVersion >= [4, 2]) $ mkStaticMethod' "warning" "warningWithButtons"
    [ptrT $ objT c_QWidget, objT c_QString, objT c_QString,
     flagsT fl_StandardButtons, enumT e_StandardButton] $
    enumT e_StandardButton
  ]

signalGens :: [SignalGen]
signalGens =
  [ makeSignal "buttonClicked" listenerPtrQAbstractButton
  ]

e_ButtonRole =
  makeQtEnum (ident1 "QMessageBox" "ButtonRole") [includeStd "QMessageBox"]
  [ "InvalidRole"
  , "AcceptRole"
  , "RejectRole"
  , "DestructiveRole"
  , "ActionRole"
  , "HelpRole"
  , "YesRole"
  , "NoRole"
  , "ApplyRole"
  , "ResetRole"
  ]

e_Icon =
  makeQtEnum (ident1 "QMessageBox" "Icon") [includeStd "QMessageBox"]
  [ "NoIcon"
  , "Information"
  , "Warning"
  , "Critical"
  , "Question"
  ]

(e_StandardButton, fl_StandardButtons) =
  makeQtEnumAndFlags (ident1 "QMessageBox" "StandardButton") "StandardButtons"
  [includeStd "QMessageBox"]
  [ "Ok"
  , "Open"
  , "Save"
  , "Cancel"
  , "Close"
  , "Discard"
  , "Apply"
  , "Reset"
  , "RestoreDefaults"
  , "Help"
  , "SaveAll"
  , "Yes"
  , "YesToAll"
  , "No"
  , "NoToAll"
  , "Abort"
  , "Retry"
  , "Ignore"
  , "NoButton"
  ]