cabal-version:  2.2
Name:           gtk3
Version:        0.15.10
License:        LGPL-2.1-only
License-file:   COPYING
Copyright:      (c) 2001-2010 The Gtk2Hs Team
Author:         Axel Simon, Duncan Coutts and many others
Maintainer:     gtk2hs-users@lists.sourceforge.net
Build-Type:     Custom
Stability:      provisional
homepage:       http://projects.haskell.org/gtk2hs/
bug-reports:    https://github.com/gtk2hs/gtk2hs/issues
Synopsis:       Binding to the Gtk+ 3 graphical user interface library
Description: This is the core library of the Gtk2Hs suite of libraries for Haskell
             based on Gtk+. Gtk+ is an extensive and mature multi-platform toolkit
             for creating graphical user interfaces.
Category:       Graphics
Tested-With:    GHC == 9.12.2, GHC == 9.10.1, GHC == 9.8.4, GHC == 9.6.6, GHC == 9.4.8, GHC == 9.2.8, GHC==9.0.2, GHC==8.10.7
Extra-Source-Files: hsgtk.h
                    Graphics/UI/Gtk/ModelView/Gtk2HsStore.h
                    Graphics/UI/Gtk/General/hsgthread.h
                    template-hsc-gtk2hs.h
                    marshal.list
                    hierarchy3.list

x-Types-File:       Graphics/UI/Gtk/Types.chs
x-Types-ModName:    Graphics.UI.Gtk.Types
x-Types-Forward:    *System.Glib.GObject Graphics.UI.Gtk.General.Threading
x-Types-Destructor: objectUnrefFromMainloop

Data-Dir:       demo
Data-Files:     actionMenu/ActionMenu.hs
                actionMenu/Makefile

                buttonbox/ButtonBox.hs
                buttonbox/Makefile

                carsim/CarSim.hs
                carsim/Makefile

                concurrent/Makefile
                concurrent/Progress.hs
                concurrent/ProgressThreadedRTS.hs

                embedded/Embedded.hs
                embedded/Makefile
                embedded/MPlayer.hs
                embedded/Notes.txt
                embedded/Uzbl.hs

                fastdraw/FastDraw.hs
                fastdraw/Makefile

                filechooser/FileChooserDemo.glade
                filechooser/FileChooserDemo.hs
                filechooser/Makefile

                fonts/Fonts.hs
                fonts/Makefile

                graphic/Drawing.hs
                graphic/Makefile

                gtkbuilder/GtkBuilderTest.hs
                gtkbuilder/Makefile
                gtkbuilder/simple.ui

                hello/Makefile
                hello/World.hs

                inputmethod/Layout.hs
                inputmethod/Makefile

                menu/ComboDemo.hs
                menu/Makefile
                menu/MenuDemo.hs

                notebook/Notebook.hs
                notebook/Makefile

                statusicon/Makefile
                statusicon/StatusIcon.hs

                treelist/Completion.hs
                treelist/DirList.hs
                treelist/FilterDemo.hs
                treelist/ListDemo.hs
                treelist/ListDND.hs
                treelist/ListTest.glade
                treelist/ListTest.hs
                treelist/ListText.hs
                treelist/Makefile
                treelist/rgb.txt
                treelist/TreeDemo.hs
                treelist/TreeSort.hs
                treelist/TreeTest.glade
                treelist/TreeTest.hs

                treelist/resListDND/desktop.png
                treelist/resListDND/laptop.png
                treelist/resListDND/laptopSmall.png
                treelist/resListDND/printer.png
                treelist/resListDND/server.png
                treelist/resListDND/tower.png

                unicode/Arabic.hs
                unicode/Makefile

                demos.txt

Source-Repository head
  type:         git
  location:     https://github.com/gtk2hs/gtk2hs
  subdir:       gtk

Flag have-gio
  Description: Depend on GIO package, thereby enabling certain features.
  Default:  True

Flag build-demos
  Description: Build the demo executables
  Default: False

Flag fmode-binary
  Description: Set the default file translation mode for file I/O operations to _O_BINARY.
               Some GTK libraries open image files without specifying binary mode.
               If you have trouble loading gtk in ghci, then it may help to turn this
               option off.
  Default: True

custom-setup
  setup-depends: base >= 4.6 && < 5,
                 Cabal >= 3.0 && < 3.15,
                 gtk2hs-buildtools >= 0.13.2.0 && < 0.14

Library
        build-depends:  base >= 4 && < 5,
                        array < 0.6,
                        bytestring < 0.13,
                        containers < 0.8,
                        mtl < 2.4,
                        text >= 0.11.0.6 && < 2.2,
                        glib  >= 0.13.0.0 && < 0.14,
                        pango >= 0.13.0.0 && < 0.14,
                        cairo >= 0.13.0.0 && < 0.14
        if flag(have-gio)
          build-depends: gio >= 0.13.0 && < 0.14
          cpp-options:    -DHAVE_GIO

        exposed-modules:
          Graphics.UI.Gtk
          Graphics.UI.GtkInternals
          Graphics.UI.Gtk.Abstract.Bin
          Graphics.UI.Gtk.Abstract.Box
          Graphics.UI.Gtk.Abstract.ButtonBox
          Graphics.UI.Gtk.Abstract.Container
          Graphics.UI.Gtk.Abstract.IMContext
          Graphics.UI.Gtk.Abstract.Misc
          Graphics.UI.Gtk.Abstract.Object
          Graphics.UI.Gtk.Abstract.Paned
          Graphics.UI.Gtk.Abstract.Range
          Graphics.UI.Gtk.Abstract.Scale
          Graphics.UI.Gtk.Abstract.Scrollbar
          Graphics.UI.Gtk.Abstract.Separator
          Graphics.UI.Gtk.Abstract.Widget
          Graphics.UI.Gtk.ActionMenuToolbar.Action
          Graphics.UI.Gtk.ActionMenuToolbar.ActionGroup
          Graphics.UI.Gtk.ActionMenuToolbar.RadioAction
          Graphics.UI.Gtk.ActionMenuToolbar.RecentAction
          Graphics.UI.Gtk.ActionMenuToolbar.ToggleAction
          Graphics.UI.Gtk.ActionMenuToolbar.UIManager
          Graphics.UI.Gtk.Builder
          Graphics.UI.Gtk.Buttons.Button
          Graphics.UI.Gtk.Buttons.CheckButton
          Graphics.UI.Gtk.Buttons.RadioButton
          Graphics.UI.Gtk.Buttons.ToggleButton
          Graphics.UI.Gtk.Buttons.LinkButton
          Graphics.UI.Gtk.Buttons.ScaleButton
          Graphics.UI.Gtk.Buttons.VolumeButton
          Graphics.UI.Gtk.Cairo
          Graphics.UI.Gtk.Display.AccelLabel
          Graphics.UI.Gtk.Display.Image
          Graphics.UI.Gtk.Display.Label
          Graphics.UI.Gtk.Display.ProgressBar
          Graphics.UI.Gtk.Display.LevelBar
          Graphics.UI.Gtk.Display.Spinner
          Graphics.UI.Gtk.Display.Statusbar
          Graphics.UI.Gtk.Display.StatusIcon
          Graphics.UI.Gtk.Display.InfoBar
          Graphics.UI.Gtk.Embedding.Plug
          Graphics.UI.Gtk.Embedding.Socket
          Graphics.UI.Gtk.Embedding.Types
          Graphics.UI.Gtk.Entry.Editable
          Graphics.UI.Gtk.Entry.Entry
          Graphics.UI.Gtk.Entry.EntryBuffer
          Graphics.UI.Gtk.Entry.EntryCompletion
          Graphics.UI.Gtk.Entry.HScale
          Graphics.UI.Gtk.Entry.SpinButton
          Graphics.UI.Gtk.Entry.VScale
          Graphics.UI.Gtk.Gdk.AppLaunchContext
          Graphics.UI.Gtk.Gdk.Cursor
          Graphics.UI.Gtk.Gdk.Keymap
          Graphics.UI.Gtk.Gdk.Display
          Graphics.UI.Gtk.Gdk.DisplayManager
          Graphics.UI.Gtk.Gdk.DrawWindow
          Graphics.UI.Gtk.Gdk.EventM
          Graphics.UI.Gtk.Gdk.Events
          Graphics.UI.Gtk.Gdk.Gdk
          Graphics.UI.Gtk.Gdk.GLContext
          Graphics.UI.Gtk.Gdk.Keys
          Graphics.UI.Gtk.Gdk.Pixbuf
          Graphics.UI.Gtk.Gdk.PixbufAnimation
          Graphics.UI.Gtk.Gdk.Screen
          Graphics.UI.Gtk.General.Clipboard
          Graphics.UI.Gtk.General.CssProvider
          Graphics.UI.Gtk.General.Drag
          Graphics.UI.Gtk.General.General
          Graphics.UI.Gtk.General.IconFactory
          Graphics.UI.Gtk.General.IconTheme
          Graphics.UI.Gtk.General.RcStyle
          Graphics.UI.Gtk.General.Selection
          Graphics.UI.Gtk.General.Settings
          Graphics.UI.Gtk.General.StockItems
          Graphics.UI.Gtk.General.Style
          Graphics.UI.Gtk.General.StyleContext
          Graphics.UI.Gtk.General.StyleProvider
          Graphics.UI.Gtk.Layout.Alignment
          Graphics.UI.Gtk.Layout.AspectFrame
          Graphics.UI.Gtk.Layout.Expander
          Graphics.UI.Gtk.Layout.Fixed
          Graphics.UI.Gtk.Layout.Grid
          Graphics.UI.Gtk.Layout.HBox
          Graphics.UI.Gtk.Layout.HButtonBox
          Graphics.UI.Gtk.Layout.HPaned
          Graphics.UI.Gtk.Layout.Layout
          Graphics.UI.Gtk.Layout.Notebook
          Graphics.UI.Gtk.Layout.Overlay
          Graphics.UI.Gtk.Layout.Table
          Graphics.UI.Gtk.Layout.VBox
          Graphics.UI.Gtk.Layout.VButtonBox
          Graphics.UI.Gtk.Layout.VPaned
          Graphics.UI.Gtk.Layout.Stack
          Graphics.UI.Gtk.Layout.StackSwitcher
          Graphics.UI.Gtk.MenuComboToolbar.CheckMenuItem
          Graphics.UI.Gtk.MenuComboToolbar.ComboBox
          Graphics.UI.Gtk.MenuComboToolbar.ImageMenuItem
          Graphics.UI.Gtk.MenuComboToolbar.Menu
          Graphics.UI.Gtk.MenuComboToolbar.MenuBar
          Graphics.UI.Gtk.MenuComboToolbar.MenuItem
          Graphics.UI.Gtk.MenuComboToolbar.MenuShell
          Graphics.UI.Gtk.MenuComboToolbar.MenuToolButton
          Graphics.UI.Gtk.MenuComboToolbar.RadioMenuItem
          Graphics.UI.Gtk.MenuComboToolbar.RadioToolButton
          Graphics.UI.Gtk.MenuComboToolbar.SeparatorMenuItem
          Graphics.UI.Gtk.MenuComboToolbar.SeparatorToolItem
          Graphics.UI.Gtk.MenuComboToolbar.TearoffMenuItem
          Graphics.UI.Gtk.MenuComboToolbar.ToggleToolButton
          Graphics.UI.Gtk.MenuComboToolbar.Toolbar
          Graphics.UI.Gtk.MenuComboToolbar.ToolButton
          Graphics.UI.Gtk.MenuComboToolbar.ToolItem
          Graphics.UI.Gtk.MenuComboToolbar.ToolItemGroup
          Graphics.UI.Gtk.MenuComboToolbar.ToolPalette
          Graphics.UI.Gtk.Misc.Accessible
          Graphics.UI.Gtk.Misc.Adjustment
          Graphics.UI.Gtk.Misc.Arrow
          Graphics.UI.Gtk.Misc.Calendar
          Graphics.UI.Gtk.Misc.DrawingArea
          Graphics.UI.Gtk.Misc.GLArea
          Graphics.UI.Gtk.Misc.EventBox
          Graphics.UI.Gtk.Misc.HandleBox
          Graphics.UI.Gtk.Misc.IMMulticontext
          Graphics.UI.Gtk.Misc.IMContextSimple
          Graphics.UI.Gtk.Misc.SizeGroup
          Graphics.UI.Gtk.Misc.Switch
          Graphics.UI.Gtk.Misc.Tooltip
          Graphics.UI.Gtk.Misc.Viewport
          Graphics.UI.Gtk.ModelView
          Graphics.UI.Gtk.ModelView.CellEditable
          Graphics.UI.Gtk.ModelView.CellLayout
          Graphics.UI.Gtk.ModelView.CellRenderer
          Graphics.UI.Gtk.ModelView.CellRendererSpinner
          Graphics.UI.Gtk.ModelView.CellRendererCombo
          Graphics.UI.Gtk.ModelView.CellRendererPixbuf
          Graphics.UI.Gtk.ModelView.CellRendererProgress
          Graphics.UI.Gtk.ModelView.CellRendererText
          Graphics.UI.Gtk.ModelView.CellRendererAccel
          Graphics.UI.Gtk.ModelView.CellRendererSpin
          Graphics.UI.Gtk.ModelView.CellRendererToggle
          Graphics.UI.Gtk.ModelView.CellView
          Graphics.UI.Gtk.ModelView.CustomStore
          Graphics.UI.Gtk.ModelView.IconView
          Graphics.UI.Gtk.ModelView.ListStore
          Graphics.UI.Gtk.ModelView.TreeDrag
          Graphics.UI.Gtk.ModelView.TreeModel
          Graphics.UI.Gtk.ModelView.TreeModelFilter
          Graphics.UI.Gtk.ModelView.TreeModelSort
          Graphics.UI.Gtk.ModelView.TreeRowReference
          Graphics.UI.Gtk.ModelView.TreeSelection
          Graphics.UI.Gtk.ModelView.TreeSortable
          Graphics.UI.Gtk.ModelView.TreeStore
          Graphics.UI.Gtk.ModelView.TreeView
          Graphics.UI.Gtk.ModelView.TreeViewColumn
          Graphics.UI.Gtk.Multiline.TextBuffer
          Graphics.UI.Gtk.Multiline.TextIter
          Graphics.UI.Gtk.Multiline.TextMark
          Graphics.UI.Gtk.Multiline.TextTag
          Graphics.UI.Gtk.Multiline.TextTagTable
          Graphics.UI.Gtk.Multiline.TextView
          Graphics.UI.Gtk.Ornaments.Frame
          Graphics.UI.Gtk.Ornaments.HSeparator
          Graphics.UI.Gtk.Ornaments.VSeparator
          Graphics.UI.Gtk.Printing.PaperSize
          Graphics.UI.Gtk.Printing.PageSetup
          Graphics.UI.Gtk.Printing.PrintContext
          Graphics.UI.Gtk.Printing.PrintOperation
          Graphics.UI.Gtk.Printing.PrintSettings
          Graphics.UI.Gtk.Recent.RecentChooserMenu
          Graphics.UI.Gtk.Recent.RecentChooserWidget
          Graphics.UI.Gtk.Recent.RecentFilter
          Graphics.UI.Gtk.Recent.RecentManager
          Graphics.UI.Gtk.Recent.RecentInfo
          Graphics.UI.Gtk.Recent.RecentChooser
          Graphics.UI.Gtk.Scrolling.HScrollbar
          Graphics.UI.Gtk.Scrolling.ScrolledWindow
          Graphics.UI.Gtk.Scrolling.VScrollbar
          Graphics.UI.Gtk.Selectors.ColorButton
          Graphics.UI.Gtk.Selectors.ColorSelection
          Graphics.UI.Gtk.Selectors.ColorSelectionDialog
          Graphics.UI.Gtk.Selectors.FileChooser
          Graphics.UI.Gtk.Selectors.FileChooserButton
          Graphics.UI.Gtk.Selectors.FileChooserDialog
          Graphics.UI.Gtk.Selectors.FileChooserWidget
          Graphics.UI.Gtk.Selectors.FileFilter
          Graphics.UI.Gtk.Selectors.FontButton
          Graphics.UI.Gtk.Selectors.FontSelection
          Graphics.UI.Gtk.Selectors.FontSelectionDialog
          Graphics.UI.Gtk.Selectors.HSV
          Graphics.UI.Gtk.Windows.AboutDialog
          Graphics.UI.Gtk.Windows.Assistant
          Graphics.UI.Gtk.Windows.Dialog
          Graphics.UI.Gtk.Windows.Invisible
          Graphics.UI.Gtk.Windows.MessageDialog
          Graphics.UI.Gtk.Windows.Window
          Graphics.UI.Gtk.Windows.OffscreenWindow
          Graphics.UI.Gtk.Windows.WindowGroup
          Graphics.UI.Gtk.General.Enums
          Graphics.UI.Gtk.Types
        other-modules:
          Graphics.UI.Gtk.Gdk.Enums
          Graphics.UI.Gtk.Gdk.PixbufData
          Graphics.UI.Gtk.General.Structs
          Graphics.UI.Gtk.ModelView.Types
          Graphics.UI.Gtk.ModelView.Sequence
          Graphics.UI.Gtk.Multiline.Types
          Graphics.UI.Gtk.Abstract.ContainerChildProperties
          Graphics.UI.Gtk.General.DNDTypes
          Graphics.UI.Gtk.General.Threading
          Graphics.UI.Gtk.Signals
        autogen-modules:
          Graphics.UI.Gtk.Signals
          Graphics.UI.Gtk.Types

        default-language:   Haskell98
        default-extensions: ForeignFunctionInterface
        c-sources: Graphics/UI/Gtk/ModelView/Gtk2HsStore.c
                   Graphics/UI/Gtk/General/hsgthread.c
          -- Due to http://hackage.haskell.org/trac/ghc/ticket/781
        -- we need to compile the hsgthread.c module with -fPIC to ensure that a global
        -- variable in GLib that holds the address for the mutex lock and unlock functions
        -- is accessed correctly. This bug only exists on x86-64 platforms.
        if arch(x86_64)
          cc-options:      -fPIC
        x-Signals-File:  Graphics/UI/Gtk/Signals.chs
        x-Signals-Modname: Graphics.UI.Gtk.Signals
        x-Signals-Types: marshal.list
        -- the following field is only needed because the gtk package may have callbacks that
        -- take 'Widget's as arguments which, in turn, need gObjectUnrefFromMainloop which
        -- needs to be imported from this module:
        x-Signals-Import: Graphics.UI.Gtk.General.Threading
        include-dirs:   .
        cpp-options: -DDISABLE_DEPRECATED -U__BLOCKS__ -DGLIB_DISABLE_DEPRECATION_WARNINGS
        if os(darwin) || os(freebsd)
          cpp-options: -D_Nullable= -D_Nonnull= -D_Noreturn= -D__attribute__(x)=
        if os(windows)
          cpp-options:    -DWIN32
          cc-options:     -fno-exceptions
          extra-libraries: kernel32

        if os(windows)
          cpp-options: -D__USE_MINGW_ANSI_STDIO=1

        x-c2hs-Header:  hsgtk.h
        x-Types-Hierarchy:  hierarchy3.list

        x-Types-Tag: default

        if os(windows) && flag(fmode-binary)
          cc-options: -DGTK2HS_SET_FMODE_BINARY

        pkgconfig-depends: gthread-2.0, gtk+-3.0

Executable gtk2hs-demo-actionMenu
    default-language: Haskell98
    hs-source-dirs: demo/actionMenu
    main-is: ActionMenu.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base, transformers, text

Executable gtk2hs-demo-buttonBox
    default-language: Haskell98
    hs-source-dirs: demo/buttonbox
    main-is: ButtonBox.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base, transformers

Executable gtk2hs-demo-carsim
    default-language: Haskell98
    hs-source-dirs: demo/carsim
    main-is: CarSim.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base, transformers, time, cairo

Executable gtk2hs-demo-progress
    default-language: Haskell98
    hs-source-dirs: demo/concurrent
    main-is: Progress.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base, transformers

Executable gtk2hs-demo-progressThreadedRTS
    default-language: Haskell98
    hs-source-dirs: demo/concurrent
    main-is: ProgressThreadedRTS.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base, transformers
    ghc-options: -threaded

Executable gtk2hs-demo-fastDraw
    default-language: Haskell98
    hs-source-dirs: demo/fastdraw
    main-is: FastDraw.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base, transformers, array, cairo

Executable gtk2hs-demo-fonts
    default-language: Haskell98
    hs-source-dirs: demo/fonts
    main-is: Fonts.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base

Executable gtk2hs-demo-builder
    default-language: Haskell98
    hs-source-dirs: demo/gtkbuilder
    main-is: GtkBuilderTest.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base, transformers

Executable gtk2hs-demo-helloworld
    default-language: Haskell98
    hs-source-dirs: demo/hello
    main-is: World.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base, transformers

Executable gtk2hs-demo-layout
    default-language: Haskell98
    hs-source-dirs: demo/inputmethod
    main-is: Layout.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base, transformers, cairo, text

Executable gtk2hs-demo-menudemo
    default-language: Haskell98
    hs-source-dirs: demo/menu
    main-is: MenuDemo.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base, transformers, text

Executable gtk2hs-demo-combodemo
    default-language: Haskell98
    hs-source-dirs: demo/menu
    main-is: ComboDemo.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, text, base, transformers

Executable gtk2hs-demo-notebook
    default-language: Haskell98
    hs-source-dirs: demo/notebook
    main-is: Notebook.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base, transformers, text

Executable gtk2hs-demo-statusIcon
    default-language: Haskell98
    hs-source-dirs: demo/statusicon
    main-is: StatusIcon.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base, transformers

Executable gtk2hs-demo-arabic
    default-language: Haskell98
    hs-source-dirs: demo/unicode
    main-is: Arabic.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base, transformers, text

Executable gtk2hs-demo-overlay
    default-language: Haskell98
    hs-source-dirs: demo/overlay
    main-is: Overlay.hs
    if !flag(build-demos)
      buildable: False
    build-depends: gtk3, base, transformers