-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Gdk bindings
--   
--   Bindings for Gdk, autogenerated by haskell-gi.
@package gi-gdk4
@version 4.0.10


-- | Build time configuration used during code generation.
module GI.Gdk.Config

-- | Overrides used when generating these bindings.
overrides :: Text

-- | Modules in this package
modules :: [Text]


module GI.Gdk.Constants

-- | This is the priority that the idle handler processing surface updates
--   is given in the main loop.
pattern PRIORITY_REDRAW :: Int32

-- | A mask covering all entries in <tt>GdkModifierType</tt>.
pattern MODIFIER_MASK :: Int32

-- | <i>No description available in the introspection data.</i>
pattern KEY_zstroke :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_zerosuperior :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_zerosubscript :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_zcaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_zacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_zabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_z :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ytilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_yhook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ygrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_yen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ydiaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ycircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ybelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_yacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_y :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_xabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_x :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_wgrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_wdiaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_wcircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_wacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_w :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_vt :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_voicedsound :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_vertconnector :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_vertbar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_variation :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_v :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_utilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_uring :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_uptack :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_upstile :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_upshoe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_uprightcorner :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_upleftcorner :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_upcaret :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_uparrow :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_uogonek :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_union :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_underscore :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_underbar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_umacron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_uhorntilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_uhornhook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_uhorngrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_uhornbelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_uhornacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_uhorn :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_uhook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ugrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_udoubleacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_udiaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ucircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ubreve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ubelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_uacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_u :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_twothirds :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_twosuperior :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_twosubscript :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_twofifths :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_tslash :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_trademarkincircle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_trademark :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_topvertsummationconnector :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_topt :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_toprightsummation :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_toprightsqbracket :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_toprightparens :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_topleftsummation :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_topleftsqbracket :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_topleftradical :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_topleftparens :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_topintegral :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_tintegral :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_threesuperior :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_threesubscript :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_threequarters :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_threefifths :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_threeeighths :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_thorn :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_thinspace :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_therefore :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_telephonerecorder :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_telephone :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_tcedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_tcaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_tabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_t :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_stricteq :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_sterling :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ssharp :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_squareroot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_space :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_soliddiamond :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_slash :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_sixsuperior :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_sixsubscript :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_singlelowquotemark :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_similarequal :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_signifblank :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_signaturemark :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_sevensuperior :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_sevensubscript :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_seveneighths :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_semivoicedsound :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_semicolon :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_section :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_seconds :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_script_switch :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_scircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_schwa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_scedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_scaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_sacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_sabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_s :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_righttack :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_rightt :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_rightsinglequotemark :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_rightshoe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_rightpointer :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_rightopentriangle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_rightmiddlesummation :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_rightmiddlecurlybrace :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_rightdoublequotemark :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_rightcaret :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_rightarrow :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_rightanglebracket :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_registered :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_rcedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_rcaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_radical :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_racute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_r :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_quoteright :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_quoteleft :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_quotedbl :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_questiondown :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_question :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_quad :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_q :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_punctspace :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_prolongedsound :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_prescription :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_plusminus :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_plus :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_phonographcopyright :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_permille :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_periodcentered :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_period :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_percent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_partialderivative :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_partdifferential :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_parenright :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_parenleft :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_paragraph :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_pabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_p :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_overline :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_overbar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_otilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_oslash :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ordmasculine :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ordfeminine :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_opentribulletup :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_opentribulletdown :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_openstar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_openrectbullet :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ooblique :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_onethird :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_onesuperior :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_onesubscript :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_onesixth :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_onequarter :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_onehalf :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_onefifth :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_oneeighth :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_omacron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ohorntilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ohornhook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ohorngrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ohornbelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ohornacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ohorn :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ohook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ograve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ogonek :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_oe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_odoubleacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_odiaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ocircumflextilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ocircumflexhook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ocircumflexgrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ocircumflexbelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ocircumflexacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ocircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ocaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_obelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_obarred :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_oacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_o :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_numerosign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_numbersign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ntilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_notsign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_notidentical :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_notequal :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_notelementof :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_notapproxeq :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_nobreakspace :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_nl :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ninesuperior :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ninesubscript :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ncedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ncaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_nacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_nabla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_n :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_musicalsharp :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_musicalflat :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_multiply :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_mu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_minutes :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_minus :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_masculine :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_marker :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_maltesecross :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_malesymbol :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_macron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_mabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_m :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_lstroke :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_lowrightcorner :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_lowleftcorner :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_logicalor :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_logicaland :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_lf :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_lessthanequal :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_less :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_lefttack :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_leftt :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_leftsinglequotemark :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_leftshoe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_leftradical :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_leftpointer :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_leftopentriangle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_leftmiddlecurlybrace :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_leftdoublequotemark :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_leftcaret :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_leftarrow :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_leftanglebracket :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_lcedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_lcaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_lbelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_latincross :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_lacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_l :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kra :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kcedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kappa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_yu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_yo :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_ya :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_u :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_tu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_tsu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_switch :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_openingbracket :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_o :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_middledot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_i :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_fullstop :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_e :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_conjunctive :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_comma :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_closingbracket :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_a :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_YU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_YO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_YA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_WO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_WA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_U :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_TU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_TSU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_TO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_TI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_TE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_TA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_SU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_SO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_SHI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_SE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_SA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_RU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_RO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_RI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_RE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_RA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_O :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_NU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_NO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_NI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_NE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_NA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_N :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_MU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_MO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_MI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_ME :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_MA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_KU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_KO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_KI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_KE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_KA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_I :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_HU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_HO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_HI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_HE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_HA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_FU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_E :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_CHI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_kana_A :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_k :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_jot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_jcircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_j :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_itilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_iogonek :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_intersection :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_integral :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_infinity :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_includes :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_includedin :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_implies :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_imacron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ihook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_igrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ifonlyif :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_idotless :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_idiaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_identical :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_icircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ibreve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ibelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_iacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_iTouch :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_i :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hyphen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ht :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hstroke :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_horizlinescan9 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_horizlinescan7 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_horizlinescan5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_horizlinescan3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_horizlinescan1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_horizconnector :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hexagram :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_zayin :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_zain :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_zadi :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_zade :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_yod :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_waw :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_teth :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_tet :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_taw :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_taf :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_shin :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_samekh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_samech :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_resh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_qoph :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_pe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_nun :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_mem :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_lamed :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_kuf :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_kaph :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_het :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_he :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_gimmel :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_gimel :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_finalzadi :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_finalzade :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_finalpe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_finalnun :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_finalmem :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_finalkaph :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_doublelowline :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_daleth :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_dalet :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_chet :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_beth :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_bet :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_ayin :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hebrew_aleph :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_heart :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hcircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_hairspace :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_h :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_guillemotright :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_guillemotleft :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_guillemetright :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_guillemetleft :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_greaterthanequal :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_greater :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_grave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_gcircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_gcedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_gcaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_gbreve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_gabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_g :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_function :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_fourthroot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_foursuperior :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_foursubscript :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_fourfifths :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_fivesuperior :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_fivesubscript :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_fivesixths :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_fiveeighths :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_filledtribulletup :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_filledtribulletdown :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_filledrighttribullet :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_filledrectbullet :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_filledlefttribullet :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_figdash :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ff :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_femalesymbol :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_fabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_f :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ezh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_exclamdown :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_exclam :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_etilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_eth :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_equal :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_eogonek :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_enspace :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_enopensquarebullet :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_enopencircbullet :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_eng :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_enfilledsqbullet :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_enfilledcircbullet :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_endash :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_emspace :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_emptyset :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_emopenrectangle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_emopencircle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_emfilledrect :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_emfilledcircle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_emdash :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_emacron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_em4space :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_em3space :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ellipsis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_elementof :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_eightsuperior :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_eightsubscript :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ehook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_egrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ediaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ecircumflextilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ecircumflexhook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ecircumflexgrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ecircumflexbelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ecircumflexacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ecircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ecaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ebelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_eacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_eabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_e :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dstroke :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_downtack :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_downstile :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_downshoe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_downcaret :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_downarrow :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_doublelowquotemark :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_doubledagger :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_doubleacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_doubbaselinedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dollar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_division :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dintegral :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_digitspace :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_diamond :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_diaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_degree :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_decimalpoint :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_voiced_sound :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_u :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_tilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_stroke :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_small_schwa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_semivoiced_sound :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_schwa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_psili :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_perispomeni :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_ogonek :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_o :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_macron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_lowline :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_longsolidusoverlay :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_iota :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_invertedbreve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_i :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_horn :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_hook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_hamza :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_greek :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_grave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_e :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_doublegrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_doubleacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_diaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_dasia :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_currency :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_circumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_cedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_caron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_capital_schwa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_breve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_belowverticalline :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_belowtilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_belowring :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_belowmacron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_belowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_belowdiaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_belowcomma :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_belowcircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_belowbreve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_acute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_aboveverticalline :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_abovering :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_abovereversedcomma :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_abovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_abovecomma :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_a :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_U :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_SCHWA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_O :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_I :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_E :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dead_A :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dcaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dagger :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_dabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_d :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_cursor :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_currency :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_cuberoot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_crossinglines :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_cr :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_copyright :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_containsas :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_comma :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_combining_tilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_combining_hook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_combining_grave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_combining_belowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_combining_acute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_colon :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_club :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_circle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_checkmark :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_checkerboard :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ch :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_cent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_cedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ccircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ccedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ccaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_caron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_caret :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_careof :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_cacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_cabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_c_h :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_c :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_brokenbar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_breve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_8 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_78 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_7 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_68 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_67 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_6 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_58 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_57 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_5678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_56 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_48 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_478 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_47 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_468 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_4678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_467 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_46 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_458 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_4578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_457 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_4568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_45678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_4567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_456 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_45 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_38 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_378 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_37 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_368 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_3678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_367 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_36 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_358 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_3578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_357 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_3568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_35678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_3567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_356 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_35 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_348 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_3478 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_347 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_3468 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_34678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_3467 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_346 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_3458 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_34578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_3457 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_34568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_345678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_34567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_3456 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_345 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_34 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_28 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_278 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_27 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_268 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_267 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_26 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_258 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_257 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_25678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_256 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_25 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_248 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2478 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_247 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2468 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_24678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2467 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_246 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2458 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_24578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2457 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_24568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_245678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_24567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2456 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_245 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_24 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_238 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2378 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_237 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2368 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_23678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2367 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_236 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2358 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_23578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2357 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_23568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_235678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_23567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2356 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_235 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2348 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_23478 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2347 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_23468 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_234678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_23467 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2346 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_23458 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_234578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_23457 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_234568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2345678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_234567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_23456 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2345 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_234 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_23 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_18 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_178 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_17 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_168 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_167 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_16 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_158 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_157 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_15678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_156 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_15 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_148 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1478 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_147 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1468 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_14678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1467 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_146 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1458 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_14578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1457 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_14568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_145678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_14567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1456 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_145 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_14 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_138 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1378 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_137 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1368 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_13678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1367 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_136 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1358 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_13578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1357 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_13568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_135678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_13567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1356 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_135 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1348 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_13478 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1347 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_13468 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_134678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_13467 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1346 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_13458 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_134578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_13457 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_134568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1345678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_134567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_13456 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1345 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_134 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_13 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_128 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1278 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_127 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1268 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1267 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_126 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1258 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1257 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_125678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1256 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_125 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1248 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12478 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1247 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12468 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_124678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12467 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1246 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12458 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_124578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12457 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_124568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1245678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_124567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12456 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1245 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_124 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1238 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12378 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1237 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12368 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_123678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12367 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1236 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12358 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_123578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12357 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_123568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1235678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_123567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12356 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1235 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12348 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_123478 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12347 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_123468 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1234678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_123467 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12346 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_123458 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1234578 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_123457 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1234568 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12345678 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1234567 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_123456 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12345 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1234 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_123 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_12 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dots_1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dot_9 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dot_8 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dot_7 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dot_6 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dot_5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dot_4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dot_3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dot_2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dot_10 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_dot_1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braille_blank :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_bracketright :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_bracketleft :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braceright :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_braceleft :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_botvertsummationconnector :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_bott :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_botrightsummation :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_botrightsqbracket :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_botrightparens :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_botleftsummation :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_botleftsqbracket :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_botleftparens :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_botintegral :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_blank :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_because :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_bar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ballotcross :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_backslash :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_babovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_b :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_atilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_at :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_asterisk :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_asciitilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_asciicircum :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_aring :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_approximate :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_approxeq :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_apostrophe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_aogonek :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ampersand :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_amacron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ahook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_agrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ae :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_adiaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_acute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_acircumflextilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_acircumflexhook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_acircumflexgrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_acircumflexbelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_acircumflexacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_acircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_abrevetilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_abrevehook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_abrevegrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_abrevebelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_abreveacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_abreve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_abovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_abelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_aacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_a :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Zstroke :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ZoomReset :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ZoomOut :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ZoomIn :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Zenkaku_Hankaku :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Zenkaku :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Zen_Koho :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Zcaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Zacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Zabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Z :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ytilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Yhook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ygrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Yellow :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ydiaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ycircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ybelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Yacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Y :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Xfer :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Xabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_X :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Word :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_WonSign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_WindowClear :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_WheelButton :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Wgrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_WebCam :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Wdiaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Wcircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_WakeUp :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Wacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_WWW :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_WWAN :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_WPSButton :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_WLAN :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_W :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_VoidSymbol :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Voicemail :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_VoiceCommand :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_View :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_VideoPhone :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Video :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_VendorHome :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_VOD :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_V :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Utilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_UserPB :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_User2KB :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_User1KB :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Uring :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Up :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Uogonek :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Unmute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ungrab :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Undo :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Umacron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ukranian_yi :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ukranian_je :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ukranian_i :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ukranian_YI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ukranian_JE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ukranian_I :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ukrainian_yi :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ukrainian_ie :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ukrainian_i :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ukrainian_ghe_with_upturn :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ukrainian_YI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ukrainian_IE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ukrainian_I :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ukrainian_GHE_WITH_UPTURN :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Uhorntilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Uhornhook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Uhorngrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Uhornbelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Uhornacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Uhorn :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Uhook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ugrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Udoubleacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Udiaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ucircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ubreve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ubelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Uacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_UWB :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_U :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Tslash :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Travel :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_TraditionalSonar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Touroku :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_TouchpadToggle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_TouchpadOn :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_TouchpadOff :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_TopMenu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Tools :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ToDoList :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Time :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thorn :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_yoying :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_yoyak :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_wowaen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_totao :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_topatak :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_thothung :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_thothong :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_thothan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_thothahan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_thophuthao :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_thonangmontho :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_thanthakhat :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_sosua :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_soso :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_sosala :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_sorusi :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_sarauu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_sarauee :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_saraue :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_sarau :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_sarao :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_saraii :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_sarai :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_sarae :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_saraam :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_saraaimaimuan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_saraaimaimalai :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_saraae :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_saraaa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_saraa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_ru :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_rorua :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_popla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_phosamphao :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_phophung :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_phophan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_phinthu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_paiyannoi :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_oang :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_nonu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_nonen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_nikhahit :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_ngongu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_moma :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_maiyamok :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_maitri :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_maitho :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_maitaikhu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_maihanakat_maitho :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_maihanakat :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_maiek :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_maichattawa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_lu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_loling :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_lochula :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_leksun :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_leksong :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_leksi :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_leksam :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_lekpaet :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_leknung :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_lekkao :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_lekhok :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_lekha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_lekchet :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_lakkhangyao :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_kokai :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_khorakhang :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_khokhwai :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_khokhuat :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_khokhon :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_khokhai :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_honokhuk :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_hohip :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_fofan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_fofa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_dodek :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_dochada :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_chochoe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_choching :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_chochang :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_chochan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_bobaimai :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Thai_baht :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Terminate_Server :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Terminal :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Tcedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Tcaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Taskmanager :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_TaskPane :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Tabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Tab :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_THORN :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_T :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sys_Req :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Switch_VT_9 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Switch_VT_8 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Switch_VT_7 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Switch_VT_6 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Switch_VT_5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Switch_VT_4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Switch_VT_3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Switch_VT_2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Switch_VT_12 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Switch_VT_11 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Switch_VT_10 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Switch_VT_1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Suspend :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Support :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Super_R :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Super_L :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Subtitle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_StopRecord :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Stop :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_StickyKeys_Enable :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Start :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Standby :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_SplitScreen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_SpellCheck :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Spell :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sos :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_SlowReverse :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_SlowKeys_Enable :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sleep :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ya :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_va :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_uu2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_uu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_u2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_u :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ttha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_tta :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_thha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_tha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ssha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_sha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_sa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ruu2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ru2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_rii :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ri :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ra :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_pha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_pa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_oo2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_oo :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_o2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_o :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_nya :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_nna :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_nja :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_nga :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ng2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ng :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ndha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ndda :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_na :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_mba :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ma :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_luu2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_luu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_lu2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_lu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_lla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_la :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_kunddaliya :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_kha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ka :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_jnya :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_jha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ja :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ii2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ii :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_i2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_i :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_h2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_gha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ga :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_fa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ee2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ee :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_e2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_e :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_dhha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_dha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ddha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_dda :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_cha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ca :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_bha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ba :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_au2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_au :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_al :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ai2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ai :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_aee2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_aee :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ae2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_ae :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_aa2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_aa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sinh_a :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_SingleRangeRadar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_SingleCandidate :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_SidevuSonar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Shop :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Shift_R :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Shift_Lock :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Shift_L :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Serbian_tshe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Serbian_nje :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Serbian_lje :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Serbian_je :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Serbian_dze :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Serbian_dje :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Serbian_TSHE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Serbian_NJE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Serbian_LJE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Serbian_JE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Serbian_DZE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Serbian_DJE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Send :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_SelectiveScreenshot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_SelectButton :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Select :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Search :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Scroll_Lock :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ScrollUp :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ScrollDown :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ScrollClick :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Screensaver :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ScreenSaver :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Scircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Scedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Scaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Save :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Sabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_SCHWA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_S :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RupeeSign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RotationPB :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RotationLockToggle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RotationKB :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RotateWindows :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RootMenu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Romaji :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RockerUp :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RockerEnter :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RockerDown :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RightUp :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RightDown :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Right :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Return :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Reply :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RepeatKeys_Enable :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Reload :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RefreshRateToggle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Refresh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Redo :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Red :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Rcedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Rcaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RadarOverlay :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Racute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_RFKill :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R9 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R8 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R7 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R6 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R15 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R14 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R13 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R12 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R11 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R10 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_R :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Q :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_PrivacyScreenToggle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Prior :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Print :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_PreviousElement :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_PreviousCandidate :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Prev_Virtual_Screen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Prev_VMode :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Presentation :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_PowerOff :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_PowerDown :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_UpRight :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_UpLeft :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Up :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Right :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Left :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_EnableKeys :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Drag_Dflt :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Drag5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Drag4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Drag3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Drag2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Drag1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_DownRight :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_DownLeft :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Down :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_DfltBtnPrev :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_DfltBtnNext :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_DblClick_Dflt :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_DblClick5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_DblClick4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_DblClick3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_DblClick2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_DblClick1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Button_Dflt :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Button5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Button4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Button3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Button2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Button1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pointer_Accelerate :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pictures :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_PickupPhone :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Phone :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_PesetaSign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_PauseRecord :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pause :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Paste :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Page_Up :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Page_Down :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Pabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_P :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Overlay2_Enable :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Overlay1_Enable :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Otilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Oslash :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Option :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_OpenURL :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Open :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ooblique :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_OnScreenKeyboard :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Omacron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ohorntilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ohornhook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ohorngrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ohornbelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ohornacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ohorn :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ohook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ograve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_OfficeHome :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Odoubleacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Odiaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ocircumflextilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ocircumflexhook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ocircumflexgrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ocircumflexbelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ocircumflexacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ocircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ocaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Obelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Obarred :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Oacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_OE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_O :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_NumericStar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_NumericPound :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_NumericD :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_NumericC :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_NumericB :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_NumericA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Numeric9 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Numeric8 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Numeric7 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Numeric6 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Numeric5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Numeric4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Numeric3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Numeric2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Numeric12 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Numeric11 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Numeric1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Numeric0 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Num_Lock :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ntilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_NotificationCenter :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Next_Virtual_Screen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Next_VMode :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_NextFavorite :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_NextElement :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Next :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_News :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_NewSheqelSign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_New :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ncedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ncaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_NavInfo :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_NavChart :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_NairaSign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Nacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_N :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MySites :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MyComputer :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Music :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MultipleCandidate :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Multi_key :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Muhenkan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MouseKeys_Enable :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MouseKeys_Accel_Enable :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MonBrightnessUp :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MonBrightnessDown :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MonBrightnessCycle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Mode_switch :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ModeLock :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MillSign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Meta_R :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Meta_L :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Messenger :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MenuPB :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MenuKB :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Menu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Memo :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Meeting :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MediaTopMenu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MediaRepeat :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Massyo :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Market :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MarkWaypoint :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MailForward :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Mail :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Mae_Koho :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MacroRecordStop :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MacroRecordStart :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MacroPresetCycle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MacroPreset3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MacroPreset2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_MacroPreset1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro9 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro8 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro7 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro6 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro30 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro29 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro28 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro27 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro26 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro25 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro24 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro23 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro22 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro21 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro20 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro19 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro18 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro17 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro16 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro15 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro14 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro13 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro12 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro11 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro10 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macro1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macedonia_kje :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macedonia_gje :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macedonia_dse :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macedonia_KJE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macedonia_GJE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Macedonia_DSE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Mabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_M :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Lstroke :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_LogWindowTree :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_LogOff :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_LogGrabInfo :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_LiraSign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Linefeed :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_LightsToggle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_LightBulb :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_LeftUp :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_LeftDown :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Left :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Lcedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Lcaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Lbelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_LaunchF :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_LaunchE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_LaunchD :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_LaunchC :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_LaunchB :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_LaunchA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Launch9 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Launch8 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Launch7 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Launch6 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Launch5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Launch4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Launch3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Launch2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Launch1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Launch0 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Last_Virtual_Screen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Lacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_L9 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_L8 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_L7 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_L6 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_L5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_L4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_L3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_L2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_L10 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_L1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_L :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Korean_Won :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Keyboard :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Kcedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KbdLightOnOff :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KbdLcdMenu5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KbdLcdMenu4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KbdLcdMenu3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KbdLcdMenu2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KbdLcdMenu1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KbdInputAssistPrevgroup :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KbdInputAssistPrev :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KbdInputAssistNextgroup :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KbdInputAssistNext :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KbdInputAssistCancel :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KbdInputAssistAccept :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KbdBrightnessUp :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KbdBrightnessDown :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Katakana :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Kanji_Bangou :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Kanji :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Kana_Shift :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Kana_Lock :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Up :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Tab :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Subtract :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Space :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Separator :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Right :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Prior :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Page_Up :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Page_Down :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Next :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Multiply :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Left :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Insert :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Home :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_F4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_F3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_F2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_F1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Equal :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Enter :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_End :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Down :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Divide :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Delete :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Decimal :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Begin :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_Add :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_9 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_8 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_7 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_6 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_KP_0 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_K :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Journal :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Jcircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_J :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Itilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Iogonek :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Insert :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Info :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Images :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Imacron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ihook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Igrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Idiaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Icircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ibreve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ibelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Iacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Iabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Set_Margin_Right :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Set_Margin_Left :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Release_Margin_Right :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Release_Margin_Left :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Release_Both_Margins :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Prev_Group_Lock :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Prev_Group :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Partial_Space_Right :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Partial_Space_Left :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Partial_Line_Up :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Partial_Line_Down :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Next_Group_Lock :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Next_Group :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Move_Line_Up :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Move_Line_Down :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Lock :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Level5_Shift :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Level5_Lock :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Level5_Latch :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Level3_Shift :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Level3_Lock :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Level3_Latch :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Level2_Latch :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Left_Tab :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Last_Group_Lock :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Last_Group :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Group_Shift :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Group_Lock :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Group_Latch :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_First_Group_Lock :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_First_Group :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Fast_Cursor_Up :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Fast_Cursor_Right :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Fast_Cursor_Left :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Fast_Cursor_Down :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Enter :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Emphasize :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Discontinuous_Underline :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Continuous_Underline :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ISO_Center_Object :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_I :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hyper_R :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hyper_L :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hstroke :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_HotLinks :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_HomePage :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Home :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_History :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hiragana_Katakana :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hiragana :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hibernate :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Henkan_Mode :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Henkan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Help :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hebrew_switch :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hcircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hankaku :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_HangupPhone :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_switch :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_YeorinHieuh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_YU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_YO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_YI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_YEO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_YE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_YAE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_YA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_WI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_WEO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_WE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_WAE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_WA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_U :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Tieut :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_SunkyeongeumPieub :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_SunkyeongeumPhieuf :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_SunkyeongeumMieum :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Start :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_SsangSios :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_SsangPieub :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_SsangKiyeog :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_SsangJieuj :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_SsangDikeud :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Special :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Sios :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_SingleCandidate :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Romaja :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_RieulYeorinHieuh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_RieulTieut :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_RieulSios :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_RieulPieub :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_RieulPhieuf :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_RieulMieum :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_RieulKiyeog :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_RieulHieuh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Rieul :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_PreviousCandidate :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_PreHanja :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_PostHanja :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_PieubSios :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Pieub :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Phieuf :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_PanSios :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_OE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_O :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_NieunJieuj :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_NieunHieuh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Nieun :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_MultipleCandidate :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Mieum :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_KkogjiDalrinIeung :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_KiyeogSios :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Kiyeog :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Khieuq :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Jieuj :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Jeonja :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Jamo :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_YeorinHieuh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_Tieut :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_SsangSios :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_SsangKiyeog :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_Sios :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_RieulTieut :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_RieulSios :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_RieulPieub :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_RieulPhieuf :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_RieulMieum :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_RieulKiyeog :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_RieulHieuh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_Rieul :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_PieubSios :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_Pieub :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_Phieuf :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_PanSios :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_NieunJieuj :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_NieunHieuh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_Nieun :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_Mieum :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_KkogjiDalrinIeung :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_KiyeogSios :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_Kiyeog :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_Khieuq :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_Jieuj :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_Ieung :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_Hieuh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_Dikeud :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_J_Cieuc :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Ieung :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_I :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Hieuh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Hanja :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_End :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_EU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_EO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_E :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Dikeud :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Codeinput :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Cieuc :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_Banja :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_AraeAE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_AraeA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_AE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul_A :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Hangul :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_H :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Green :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_zeta :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_xi :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_upsilondieresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_upsilonaccentdieresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_upsilonaccent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_upsilon :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_theta :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_tau :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_switch :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_sigma :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_rho :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_psi :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_pi :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_phi :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_omicronaccent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_omicron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_omegaaccent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_omega :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_nu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_mu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_lamda :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_lambda :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_kappa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_iotadieresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_iotaaccentdieresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_iotaaccent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_iota :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_horizbar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_gamma :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_finalsmallsigma :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_etaaccent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_eta :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_epsilonaccent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_epsilon :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_delta :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_chi :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_beta :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_alphaaccent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_alpha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_accentdieresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_ZETA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_XI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_UPSILONdieresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_UPSILONaccent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_UPSILON :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_THETA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_TAU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_SIGMA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_RHO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_PSI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_PI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_PHI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_OMICRONaccent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_OMICRON :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_OMEGAaccent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_OMEGA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_NU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_MU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_LAMDA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_LAMBDA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_KAPPA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_IOTAdieresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_IOTAdiaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_IOTAaccent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_IOTA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_GAMMA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_ETAaccent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_ETA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_EPSILONaccent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_EPSILON :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_DELTA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_CHI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_BETA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_ALPHAaccent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Greek_ALPHA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_GraphicsEditor :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Go :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_zhar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_zen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_xan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_we :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_vin :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_un :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_tar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_tan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_shin :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_san :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_rae :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_qar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_phar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_par :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_on :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_nar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_man :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_las :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_khar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_kan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_jil :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_jhan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_in :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_hoe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_hie :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_he :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_har :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_hae :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_ghan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_gan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_fi :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_en :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_don :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_cil :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_chin :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_char :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_can :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_ban :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Georgian_an :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Gcircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Gcedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Gcaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Gbreve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Game :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Gabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_G :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_FullScreen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_FrameForward :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_FrameBack :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Forward :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Fn_Esc :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_FnRightShift :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Fn :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_FishingChart :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_First_Virtual_Screen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Find :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Finance :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Favorites :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_FastReverse :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Farsi_yeh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Farsi_9 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Farsi_8 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Farsi_7 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Farsi_6 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Farsi_5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Farsi_4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Farsi_3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Farsi_2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Farsi_1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Farsi_0 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Fabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_FFrancSign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F9 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F8 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F7 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F6 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F35 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F34 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F33 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F32 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F31 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F30 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F29 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F28 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F27 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F26 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F25 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F24 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F23 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F22 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F21 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F20 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F19 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F18 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F17 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F16 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F15 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F14 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F13 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F12 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F11 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F10 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_F :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Explorer :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Execute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Excel :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_EuroSign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Etilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Eth :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Escape :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Eogonek :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_End :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_EmojiPicker :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Emacron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Eject :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Eisu_toggle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Eisu_Shift :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ehook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Egrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Editor :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ediaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_EcuSign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ecircumflextilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ecircumflexhook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ecircumflexgrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ecircumflexbelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ecircumflexacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ecircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ecaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ebelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Eacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Eabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_EZH :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ETH :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ENG :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_E :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_DualRangeRadar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Dstroke :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Down :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_DongSign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Documents :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_DoNotDisturb :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_DisplayToggle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_DisplayOff :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Display :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Dictate :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Delete :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Dcaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Database :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Data :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Dabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_DVD :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_DOS :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_D :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_zhe_descender :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_zhe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ze :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_yu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_yeru :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ya :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_u_straight_bar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_u_straight :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_u_macron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_u :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_tse :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_te :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_softsign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_shorti :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_shha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_shcha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_sha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_schwa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_pe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_o_bar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_o :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_nje :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_lje :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ka_vertstroke :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ka_descender :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ka :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_je :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_io :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ie :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_i_macron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_i :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_hardsign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ha_descender :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ghe_bar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ghe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_es :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_er :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_en_descender :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_en :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_em :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_el :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ef :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_e :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_dzhe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_de :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_che_vertstroke :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_che_descender :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_che :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_be :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_a :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ZHE_descender :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ZHE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ZE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_YU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_YERU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_YA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_VE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_U_straight_bar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_U_straight :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_U_macron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_U :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_TSE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_TE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_SOFTSIGN :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_SHORTI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_SHHA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_SHCHA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_SHA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_SCHWA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_PE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_O_bar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_O :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_NJE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_LJE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_KA_vertstroke :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_KA_descender :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_KA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_JE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_I_macron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_IO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_IE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_I :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_HA_descender :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_HARDSIGN :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_HA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_GHE_bar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_GHE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ES :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_ER :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_EN_descender :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_EN :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_EM :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_EL :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_EF :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_E :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_DZHE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_DE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_CHE_vertstroke :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_CHE_descender :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_CHE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_BE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cyrillic_A :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_CycleAngle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cut :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_CruzeiroSign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Copy :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Control_R :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Control_L :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ControlPanel :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ContrastAdjust :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ContextMenu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Community :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ColonSign :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Codeinput :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Close :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ClearvuSonar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ClearGrab :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Clear :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ChannelUp :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ChannelDown :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ch :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ccircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ccedilla :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ccaron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Caps_Lock :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cancel :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_CameraZoomOut :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_CameraZoomIn :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_CameraUp :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_CameraRight :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_CameraLeft :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_CameraFocus :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_CameraDown :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_CameraAccessToggle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_CameraAccessEnable :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_CameraAccessDisable :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Calendar :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Calculator :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Cabovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_C_h :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_C_H :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_CH :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_CD :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_C :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Byelorussian_shortu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Byelorussian_SHORTU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Buttonconfig :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_BrightnessMin :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_BrightnessMax :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_BrightnessAuto :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_BrightnessAdjust :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Break :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_BounceKeys_Enable :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Book :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Bluetooth :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Blue :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Begin :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Battery :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_BackSpace :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_BackForward :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Back :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Babovedot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_B :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Away :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AutopilotEngageToggle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioStop :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioRewind :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioRepeat :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioRecord :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioRandomPlay :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioRaiseVolume :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioPrev :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioPreset :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioPlay :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioPause :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioNext :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioMute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioMicMute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioMedia :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioLowerVolume :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioForward :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioDesc :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudioCycleTrack :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Audio :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AudibleBell_Enable :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AttendantToggle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AttendantOn :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AttendantOff :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Atilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Assistant :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AspectRatio :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_zhe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_za :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_yentamna :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_yech :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_vyun :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_vo :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_vev :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_verjaket :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_tyun :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_tso :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_tsa :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_to :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_tche :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_shesht :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_sha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_separation_mark :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_se :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_re :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_ra :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_question :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_pyur :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_pe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_paruyk :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_o :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_nu :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_men :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_lyun :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_ligature_ew :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_khe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_ken :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_ke :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_je :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_ini :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_hyphen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_ho :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_hi :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_gim :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_ghat :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_full_stop :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_fe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_exclam :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_e :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_dza :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_da :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_cha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_but :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_ben :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_ayb :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_at :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_apostrophe :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_amanak :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_accent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_ZHE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_ZA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_YECH :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_VYUN :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_VO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_VEV :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_TYUN :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_TSO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_TSA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_TO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_TCHE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_SHA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_SE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_RE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_RA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_PYUR :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_PE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_O :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_NU :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_MEN :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_LYUN :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_KHE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_KEN :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_KE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_JE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_INI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_HO :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_HI :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_GIM :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_GHAT :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_FE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_E :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_DZA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_DA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_CHA :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_BEN :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_AYB :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Armenian_AT :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Aring :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_zain :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_zah :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_yeh_baree :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_yeh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_waw :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_veh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_tteh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_theh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_thal :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_tehmarbuta :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_teh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_tcheh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_tatweel :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_tah :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_switch :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_superscript_alef :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_sukun :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_sheen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_shadda :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_semicolon :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_seen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_sad :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_rreh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_ra :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_question_mark :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_qaf :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_percent :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_peh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_noon_ghunna :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_noon :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_meem :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_maddaonalef :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_madda_above :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_lam :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_khah :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_keheh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_kasratan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_kasra :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_kaf :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_jeh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_jeem :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_heh_goal :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_heh_doachashmee :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_heh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_hamzaunderalef :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_hamzaonyeh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_hamzaonwaw :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_hamzaonalef :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_hamza_below :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_hamza_above :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_hamza :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_hah :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_ha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_ghain :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_gaf :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_fullstop :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_feh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_fathatan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_fatha :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_farsi_yeh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_ddal :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_dammatan :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_damma :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_dal :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_dad :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_comma :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_beh :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_alefmaksura :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_alef :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_ain :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_9 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_8 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_7 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_6 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Arabic_0 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ApplicationRight :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ApplicationLeft :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AppSelect :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Aogonek :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Amacron :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Alt_R :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Alt_L :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Ahook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Agrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Adiaeresis :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Addressbook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AddFavorite :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Acircumflextilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Acircumflexhook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Acircumflexgrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Acircumflexbelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Acircumflexacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Acircumflex :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Accessibility :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AccessX_Feedback_Enable :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AccessX_Enable :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Abrevetilde :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Abrevehook :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Abrevegrave :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Abrevebelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Abreveacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Abreve :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Abelowdot :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_Aacute :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_ALSToggle :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_AE :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_A :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_9 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_8 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_7 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_6 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_5 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_4 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3DMode :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Test :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Setup :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Rule :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Right2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Reset :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Record :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Quit :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_PrintScreen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Play :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_PA3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_PA2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_PA1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Left2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_KeyClick :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Jump :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Ident :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_FieldMark :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_ExSelect :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_EraseInput :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_EraseEOF :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Enter :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Duplicate :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_DeleteWord :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_CursorSelect :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_CursorBlink :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Copy :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_ChangeScreen :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_BackTab :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_Attn :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3270_AltCursor :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_3 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_2 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_10ChannelsUp :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_10ChannelsDown :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_1 :: Word32

-- | <i>No description available in the introspection data.</i>
pattern KEY_0 :: Word32

-- | Use this macro as the return value for stopping the propagation of an
--   event handler.
pattern EVENT_STOP :: Bool

-- | Use this macro as the return value for continuing the propagation of
--   an event handler.
pattern EVENT_PROPAGATE :: Bool

-- | Represents the current time, and can be used anywhere a time is
--   expected.
pattern CURRENT_TIME :: Int32

-- | The secondary button. This is typically the right mouse button, or the
--   left button in a left-handed setup.
pattern BUTTON_SECONDARY :: Int32

-- | The primary button. This is typically the left mouse button, or the
--   right button in a left-handed setup.
pattern BUTTON_PRIMARY :: Int32

-- | The middle button.
pattern BUTTON_MIDDLE :: Int32

-- | Defines all possible DND actions.
--   
--   This can be used in <a>dropStatus</a> messages when any drop can be
--   accepted or a more specific drop method is not yet known.
pattern ACTION_ALL :: Int32


module GI.Gdk.Enums

-- | Defines how device axes are interpreted by GTK.
--   
--   Note that the X and Y axes are not really needed; pointer devices
--   report their location via the x/y members of events regardless.
--   Whether X and Y are present as axes depends on the GDK backend.
data AxisUse

-- | the axis is ignored.
AxisUseIgnore :: AxisUse

-- | the axis is used as the x axis.
AxisUseX :: AxisUse

-- | the axis is used as the y axis.
AxisUseY :: AxisUse

-- | the axis is used as the scroll x delta
AxisUseDeltaX :: AxisUse

-- | the axis is used as the scroll y delta
AxisUseDeltaY :: AxisUse

-- | the axis is used for pressure information.
AxisUsePressure :: AxisUse

-- | the axis is used for x tilt information.
AxisUseXtilt :: AxisUse

-- | the axis is used for y tilt information.
AxisUseYtilt :: AxisUse

-- | the axis is used for wheel information.
AxisUseWheel :: AxisUse

-- | the axis is used for pen/tablet distance information
AxisUseDistance :: AxisUse

-- | the axis is used for pen rotation information
AxisUseRotation :: AxisUse

-- | the axis is used for pen slider information
AxisUseSlider :: AxisUse

-- | a constant equal to the numerically highest axis value.
AxisUseLast :: AxisUse

-- | Catch-all for unknown values
AnotherAxisUse :: Int -> AxisUse

-- | The values of this enumeration describe whether image data uses the
--   full range of 8-bit values.
--   
--   In digital broadcasting, it is common to reserve the lowest and
--   highest values. Typically the allowed values for the narrow range are
--   16-235 for Y and 16-240 for u,v (when dealing with YUV data).
--   
--   <i>Since: 4.16</i>
data CicpRange

-- | The values use the range of 16-235 (for Y) and 16-240 for u and v.
CicpRangeNarrow :: CicpRange

-- | The values use the full range.
CicpRangeFull :: CicpRange

-- | Catch-all for unknown values
AnotherCicpRange :: Int -> CicpRange

-- | Enumerates the color channels of RGBA values as used in
--   <tt>GdkColor</tt> and OpenGL/Vulkan shaders.
--   
--   Note that this is not the order of pixel values in Cairo and
--   <tt>GdkMemoryFormat</tt> can have many different orders.
--   
--   <i>Since: 4.22</i>
data ColorChannel

-- | The red color channel, aka 0
ColorChannelRed :: ColorChannel

-- | The green color channel, aka 1
ColorChannelGreen :: ColorChannel

-- | The blue color channel, aka 2
ColorChannelBlue :: ColorChannel

-- | The alpha color channel, aka 3
ColorChannelAlpha :: ColorChannel

-- | Catch-all for unknown values
AnotherColorChannel :: Int -> ColorChannel

-- | Specifies the crossing mode for enter and leave events.
data CrossingMode

-- | crossing because of pointer motion.
CrossingModeNormal :: CrossingMode

-- | crossing because a grab is activated.
CrossingModeGrab :: CrossingMode

-- | crossing because a grab is deactivated.
CrossingModeUngrab :: CrossingMode

-- | crossing because a GTK grab is activated.
CrossingModeGtkGrab :: CrossingMode

-- | crossing because a GTK grab is deactivated.
CrossingModeGtkUngrab :: CrossingMode

-- | crossing because a GTK widget changed state (e.g. sensitivity).
CrossingModeStateChanged :: CrossingMode

-- | crossing because a touch sequence has begun, this event is synthetic
--   as the pointer might have not left the surface.
CrossingModeTouchBegin :: CrossingMode

-- | crossing because a touch sequence has ended, this event is synthetic
--   as the pointer might have not left the surface.
CrossingModeTouchEnd :: CrossingMode

-- | crossing because of a device switch (i.e. a mouse taking control of
--   the pointer after a touch device), this event is synthetic as the
--   pointer didn’t leave the surface.
CrossingModeDeviceSwitch :: CrossingMode

-- | Catch-all for unknown values
AnotherCrossingMode :: Int -> CrossingMode

-- | A pad feature.
data DevicePadFeature

-- | a button
DevicePadFeatureButton :: DevicePadFeature

-- | a ring-shaped interactive area
DevicePadFeatureRing :: DevicePadFeature

-- | a straight interactive area
DevicePadFeatureStrip :: DevicePadFeature

-- | Catch-all for unknown values
AnotherDevicePadFeature :: Int -> DevicePadFeature

-- | Indicates the specific type of tool being used being a tablet. Such as
--   an airbrush, pencil, etc.
data DeviceToolType

-- | Tool is of an unknown type.
DeviceToolTypeUnknown :: DeviceToolType

-- | Tool is a standard tablet stylus.
DeviceToolTypePen :: DeviceToolType

-- | Tool is standard tablet eraser.
DeviceToolTypeEraser :: DeviceToolType

-- | Tool is a brush stylus.
DeviceToolTypeBrush :: DeviceToolType

-- | Tool is a pencil stylus.
DeviceToolTypePencil :: DeviceToolType

-- | Tool is an airbrush stylus.
DeviceToolTypeAirbrush :: DeviceToolType

-- | Tool is a mouse.
DeviceToolTypeMouse :: DeviceToolType

-- | Tool is a lens cursor.
DeviceToolTypeLens :: DeviceToolType

-- | Catch-all for unknown values
AnotherDeviceToolType :: Int -> DeviceToolType

-- | Error enumeration for <tt>GdkDmabufTexture</tt>.
--   
--   <i>Since: 4.14</i>
data DmabufError

-- | Dmabuf support is not available, because the OS is not Linux, or it
--   was explicitly disabled at compile- or runtime
DmabufErrorNotAvailable :: DmabufError

-- | The requested format is not supported
DmabufErrorUnsupportedFormat :: DmabufError

-- | GTK failed to create the resource for other reasons
DmabufErrorCreationFailed :: DmabufError

-- | Catch-all for unknown values
AnotherDmabufError :: Int -> DmabufError

-- | Catch exceptions of type <a>DmabufError</a>. This is a specialized
--   version of <a>catchGErrorJustDomain</a>.
catchDmabufError :: IO a -> (DmabufError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type <a>DmabufError</a>. This is a specialized
--   version of <a>handleGErrorJustDomain</a>.
handleDmabufError :: (DmabufError -> GErrorMessage -> IO a) -> IO a -> IO a

-- | Used in <tt>GdkDrag</tt> to the reason of a cancelled DND operation.
data DragCancelReason

-- | There is no suitable drop target.
DragCancelReasonNoTarget :: DragCancelReason

-- | Drag cancelled by the user
DragCancelReasonUserCancelled :: DragCancelReason

-- | Unspecified error.
DragCancelReasonError :: DragCancelReason

-- | Catch-all for unknown values
AnotherDragCancelReason :: Int -> DragCancelReason

-- | Specifies the type of the event.
data EventType

-- | the window manager has requested that the toplevel surface be hidden
--   or destroyed, usually when the user clicks on a special icon in the
--   title bar.
EventTypeDelete :: EventType

-- | the pointer (usually a mouse) has moved.
EventTypeMotionNotify :: EventType

-- | a mouse button has been pressed.
EventTypeButtonPress :: EventType

-- | a mouse button has been released.
EventTypeButtonRelease :: EventType

-- | a key has been pressed.
EventTypeKeyPress :: EventType

-- | a key has been released.
EventTypeKeyRelease :: EventType

-- | the pointer has entered the surface.
EventTypeEnterNotify :: EventType

-- | the pointer has left the surface.
EventTypeLeaveNotify :: EventType

-- | the keyboard focus has entered or left the surface.
EventTypeFocusChange :: EventType

-- | an input device has moved into contact with a sensing surface (e.g. a
--   touchscreen or graphics tablet).
EventTypeProximityIn :: EventType

-- | an input device has moved out of contact with a sensing surface.
EventTypeProximityOut :: EventType

-- | the mouse has entered the surface while a drag is in progress.
EventTypeDragEnter :: EventType

-- | the mouse has left the surface while a drag is in progress.
EventTypeDragLeave :: EventType

-- | the mouse has moved in the surface while a drag is in progress.
EventTypeDragMotion :: EventType

-- | a drop operation onto the surface has started.
EventTypeDropStart :: EventType

-- | the scroll wheel was turned
EventTypeScroll :: EventType

-- | a pointer or keyboard grab was broken.
EventTypeGrabBroken :: EventType

-- | A new touch event sequence has just started.
EventTypeTouchBegin :: EventType

-- | A touch event sequence has been updated.
EventTypeTouchUpdate :: EventType

-- | A touch event sequence has finished.
EventTypeTouchEnd :: EventType

-- | A touch event sequence has been canceled.
EventTypeTouchCancel :: EventType

-- | A touchpad swipe gesture event, the current state is determined by its
--   phase field.
EventTypeTouchpadSwipe :: EventType

-- | A touchpad pinch gesture event, the current state is determined by its
--   phase field.
EventTypeTouchpadPinch :: EventType

-- | A tablet pad button press event.
EventTypePadButtonPress :: EventType

-- | A tablet pad button release event.
EventTypePadButtonRelease :: EventType

-- | A tablet pad axis event from a "ring".
EventTypePadRing :: EventType

-- | A tablet pad axis event from a "strip".
EventTypePadStrip :: EventType

-- | A tablet pad group mode change.
EventTypePadGroupMode :: EventType

-- | A touchpad hold gesture event, the current state is determined by its
--   phase field.
--   
--   <i>Since: 4.6</i>
EventTypeTouchpadHold :: EventType

-- | A tablet pad axis event from a "dial".
EventTypePadDial :: EventType

-- | marks the end of the GdkEventType enumeration.
EventTypeEventLast :: EventType

-- | Catch-all for unknown values
AnotherEventType :: Int -> EventType

-- | Indicates which monitor a surface should span over when in fullscreen
--   mode.
data FullscreenMode

-- | Fullscreen on current monitor only.
FullscreenModeCurrentMonitor :: FullscreenMode

-- | Span across all monitors when fullscreen.
FullscreenModeAllMonitors :: FullscreenMode

-- | Catch-all for unknown values
AnotherFullscreenMode :: Int -> FullscreenMode

-- | Error enumeration for <tt>GdkGLContext</tt>.
data GLError

-- | OpenGL support is not available
GLErrorNotAvailable :: GLError

-- | The requested visual format is not supported
GLErrorUnsupportedFormat :: GLError

-- | The requested profile is not supported
GLErrorUnsupportedProfile :: GLError

-- | The shader compilation failed
GLErrorCompilationFailed :: GLError

-- | The shader linking failed
GLErrorLinkFailed :: GLError

-- | Catch-all for unknown values
AnotherGLError :: Int -> GLError

-- | Catch exceptions of type <a>GLError</a>. This is a specialized version
--   of <a>catchGErrorJustDomain</a>.
catchGLError :: IO a -> (GLError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type <a>GLError</a>. This is a specialized
--   version of <a>handleGErrorJustDomain</a>.
handleGLError :: (GLError -> GErrorMessage -> IO a) -> IO a -> IO a

-- | Defines the reference point of a surface and is used in
--   <tt>GdkPopupLayout</tt>.
data Gravity

-- | the reference point is at the top left corner.
GravityNorthWest :: Gravity

-- | the reference point is in the middle of the top edge.
GravityNorth :: Gravity

-- | the reference point is at the top right corner.
GravityNorthEast :: Gravity

-- | the reference point is at the middle of the left edge.
GravityWest :: Gravity

-- | the reference point is at the center of the surface.
GravityCenter :: Gravity

-- | the reference point is at the middle of the right edge.
GravityEast :: Gravity

-- | the reference point is at the lower left corner.
GravitySouthWest :: Gravity

-- | the reference point is at the middle of the lower edge.
GravitySouth :: Gravity

-- | the reference point is at the lower right corner.
GravitySouthEast :: Gravity

-- | the reference point is at the top left corner of the surface itself,
--   ignoring window manager decorations.
GravityStatic :: Gravity

-- | Catch-all for unknown values
AnotherGravity :: Int -> Gravity

-- | An enumeration describing the type of an input device in general
--   terms.
data InputSource

-- | the device is a mouse. (This will be reported for the core pointer,
--   even if it is something else, such as a trackball.)
InputSourceMouse :: InputSource

-- | the device is a stylus of a graphics tablet or similar device.
InputSourcePen :: InputSource

-- | the device is a keyboard.
InputSourceKeyboard :: InputSource

-- | the device is a direct-input touch device, such as a touchscreen or
--   tablet
InputSourceTouchscreen :: InputSource

-- | the device is an indirect touch device, such as a touchpad
InputSourceTouchpad :: InputSource

-- | the device is a trackpoint
InputSourceTrackpoint :: InputSource

-- | the device is a "pad", a collection of buttons, rings and strips found
--   in drawing tablets
InputSourceTabletPad :: InputSource

-- | Catch-all for unknown values
AnotherInputSource :: Int -> InputSource

-- | Describes how well an event matches a given keyval and modifiers.
--   
--   <tt>GdkKeyMatch</tt> values are returned by <a>keyEventMatches</a>.
data KeyMatch

-- | The key event does not match
KeyMatchNone :: KeyMatch

-- | The key event matches if keyboard state (specifically, the currently
--   active group) is ignored
KeyMatchPartial :: KeyMatch

-- | The key event matches
KeyMatchExact :: KeyMatch

-- | Catch-all for unknown values
AnotherKeyMatch :: Int -> KeyMatch

-- | Describes formats that image data can have in memory.
--   
--   It describes formats by listing the contents of the memory passed to
--   it. So <tt>GDK_MEMORY_A8R8G8B8</tt> will be 1 byte (8 bits) of alpha,
--   followed by a byte each of red, green and blue. It is not
--   endian-dependent, so <tt>CAIRO_FORMAT_ARGB32</tt> is represented by
--   different <tt>GdkMemoryFormats</tt> on architectures with different
--   endiannesses.
--   
--   Its naming is modelled after <a>VkFormat</a> for details).
data MemoryFormat

-- | 4 bytes; for blue, green, red, alpha. The color values are
--   premultiplied with the alpha value.
MemoryFormatB8g8r8a8Premultiplied :: MemoryFormat

-- | 4 bytes; for alpha, red, green, blue. The color values are
--   premultiplied with the alpha value.
MemoryFormatA8r8g8b8Premultiplied :: MemoryFormat

-- | 4 bytes; for red, green, blue, alpha The color values are
--   premultiplied with the alpha value.
MemoryFormatR8g8b8a8Premultiplied :: MemoryFormat

-- | 4 bytes; for blue, green, red, alpha.
MemoryFormatB8g8r8a8 :: MemoryFormat

-- | 4 bytes; for alpha, red, green, blue.
MemoryFormatA8r8g8b8 :: MemoryFormat

-- | 4 bytes; for red, green, blue, alpha.
MemoryFormatR8g8b8a8 :: MemoryFormat

-- | 4 bytes; for alpha, blue, green, red.
MemoryFormatA8b8g8r8 :: MemoryFormat

-- | 3 bytes; for red, green, blue. The data is opaque.
MemoryFormatR8g8b8 :: MemoryFormat

-- | 3 bytes; for blue, green, red. The data is opaque.
MemoryFormatB8g8r8 :: MemoryFormat

-- | 3 guint16 values; for red, green, blue.
--   
--   <i>Since: 4.6</i>
MemoryFormatR16g16b16 :: MemoryFormat

-- | 4 guint16 values; for red, green, blue, alpha. The color values are
--   premultiplied with the alpha value.
--   
--   <i>Since: 4.6</i>
MemoryFormatR16g16b16a16Premultiplied :: MemoryFormat

-- | 4 guint16 values; for red, green, blue, alpha.
--   
--   <i>Since: 4.6</i>
MemoryFormatR16g16b16a16 :: MemoryFormat

-- | 3 half-float values; for red, green, blue. The data is opaque.
--   
--   <i>Since: 4.6</i>
MemoryFormatR16g16b16Float :: MemoryFormat

-- | 4 half-float values; for red, green, blue and alpha. The color values
--   are premultiplied with the alpha value.
--   
--   <i>Since: 4.6</i>
MemoryFormatR16g16b16a16FloatPremultiplied :: MemoryFormat

-- | 4 half-float values; for red, green, blue and alpha.
--   
--   <i>Since: 4.6</i>
MemoryFormatR16g16b16a16Float :: MemoryFormat

-- | 3 float values; for red, green, blue.
MemoryFormatR32g32b32Float :: MemoryFormat

-- | 4 float values; for red, green, blue and alpha. The color values are
--   premultiplied with the alpha value.
--   
--   <i>Since: 4.6</i>
MemoryFormatR32g32b32a32FloatPremultiplied :: MemoryFormat

-- | 4 float values; for red, green, blue and alpha.
--   
--   <i>Since: 4.6</i>
MemoryFormatR32g32b32a32Float :: MemoryFormat

-- | 2 bytes; for grayscale, alpha. The color values are premultiplied with
--   the alpha value.
--   
--   <i>Since: 4.12</i>
MemoryFormatG8a8Premultiplied :: MemoryFormat

-- | 2 bytes; for grayscale, alpha.
--   
--   <i>Since: 4.12</i>
MemoryFormatG8a8 :: MemoryFormat

-- | One byte; for grayscale. The data is opaque.
--   
--   <i>Since: 4.12</i>
MemoryFormatG8 :: MemoryFormat

-- | 2 guint16 values; for grayscale, alpha. The color values are
--   premultiplied with the alpha value.
--   
--   <i>Since: 4.12</i>
MemoryFormatG16a16Premultiplied :: MemoryFormat

-- | 2 guint16 values; for grayscale, alpha.
--   
--   <i>Since: 4.12</i>
MemoryFormatG16a16 :: MemoryFormat

-- | One guint16 value; for grayscale. The data is opaque.
--   
--   <i>Since: 4.12</i>
MemoryFormatG16 :: MemoryFormat

-- | One byte; for alpha.
--   
--   <i>Since: 4.12</i>
MemoryFormatA8 :: MemoryFormat

-- | One guint16 value; for alpha.
--   
--   <i>Since: 4.12</i>
MemoryFormatA16 :: MemoryFormat

-- | One half-float value; for alpha.
--   
--   <i>Since: 4.12</i>
MemoryFormatA16Float :: MemoryFormat

-- | One float value; for alpha.
--   
--   <i>Since: 4.12</i>
MemoryFormatA32Float :: MemoryFormat

-- | 4 bytes; for alpha, blue, green, red, The color values are
--   premultiplied with the alpha value.
--   
--   <i>Since: 4.14</i>
MemoryFormatA8b8g8r8Premultiplied :: MemoryFormat

-- | 4 bytes; for blue, green, red, unused.
--   
--   <i>Since: 4.14</i>
MemoryFormatB8g8r8x8 :: MemoryFormat

-- | 4 bytes; for unused, red, green, blue.
--   
--   <i>Since: 4.14</i>
MemoryFormatX8r8g8b8 :: MemoryFormat

-- | 4 bytes; for red, green, blue, unused.
--   
--   <i>Since: 4.14</i>
MemoryFormatR8g8b8x8 :: MemoryFormat

-- | 4 bytes; for unused, blue, green, red.
--   
--   <i>Since: 4.14</i>
MemoryFormatX8b8g8r8 :: MemoryFormat

-- | Multiplane format with 2 planes.
--   
--   The first plane contains the first channel, usually containing luma
--   values. The second plane with interleaved chroma values, Cb followed
--   by Cr. Subsampled in both the X and Y direction.
--   
--   Commonly known by the fourcc "NV12".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8B8r8420 :: MemoryFormat

-- | Multiplane format with 2 planes.
--   
--   The first plane contains the first channel, usually containing luma
--   values. The second plane with interleaved chroma values, Cr followed
--   by Cb. Subsampled in both the X and Y direction.
--   
--   Commonly known by the fourcc "NV21".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8R8b8420 :: MemoryFormat

-- | Multiplane format with 2 planes.
--   
--   The first plane contains the first channel, usually containing luma
--   values. The second plane with interleaved chroma values, Cb followed
--   by Cr. Subsampled in the X direction.
--   
--   Commonly known by the fourcc "NV16".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8B8r8422 :: MemoryFormat

-- | Multiplane format with 2 planes.
--   
--   The first plane contains the first channel, usually containing luma
--   values. The second plane with interleaved chroma values, Cr followed
--   by Cb. Subsampled in the X direction.
--   
--   Commonly known by the fourcc "NV61".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8R8b8422 :: MemoryFormat

-- | Multiplane format with 2 planes.
--   
--   The first plane contains the first channel, usually containing luma
--   values. The second plane with interleaved chroma values, Cb followed
--   by Cr. This format is not subsampled.
--   
--   Commonly known by the fourcc "NV24".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8B8r8444 :: MemoryFormat

-- | Multiplane format with 2 planes.
--   
--   The first plane contains the first channel, usually containing luma
--   values. The second plane with interleaved chroma values, Cr followed
--   by Cb. This format is not subsampled.
--   
--   Commonly known by the fourcc "NV42".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8R8b8444 :: MemoryFormat

-- | Multiplane format with 2 planes.
--   
--   Each channel is a 16 bit integer, but only the highest 10 bits are
--   used.
--   
--   The first plane contains the first channel, usually containing luma
--   values. The second plane with interleaved chroma values, Cr followed
--   by Cb. This format is not subsampled.
--   
--   Commonly known by the fourcc "P010".
--   
--   <i>Since: 4.20</i>
MemoryFormatG10x6B10x6r10x6420 :: MemoryFormat

-- | Multiplane format with 2 planes.
--   
--   Each channel is a 16 bit integer, but only the highest 10 bits are
--   used.
--   
--   The first plane contains the first channel, usually containing luma
--   values. The second plane with interleaved chroma values, Cr followed
--   by Cb. This format is not subsampled.
--   
--   Commonly known by the fourcc "P012".
--   
--   <i>Since: 4.20</i>
MemoryFormatG12x4B12x4r12x4420 :: MemoryFormat

-- | Multiplane format with 2 planes.
--   
--   Each channel is a 16 bit integer.
--   
--   The first plane contains the first channel, usually containing luma
--   values. The second plane with interleaved chroma values, Cr followed
--   by Cb. This format is not subsampled.
--   
--   Commonly known by the fourcc "P016".
--   
--   <i>Since: 4.20</i>
MemoryFormatG16B16r16420 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 8 bit integer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the first chroma chanel. Subsampled
--   in both the X and Y direction with 4:1 ratio. It is mapped into the
--   3rd channel.
--   
--   The third plane usually contains the second chroma channel. Subsampled
--   in both the X and Y direction with 4:1 ratio. It is mapped into the
--   1st channel.
--   
--   Commonly known by the fourcc "YUV410".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8B8R8410 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 8 bit integer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the second chroma chanel. Subsampled
--   in both the X and Y direction with 4:1 ratio. It is mapped into the
--   1st channel.
--   
--   The third plane usually contains the first chroma channel. Subsampled
--   in both the X and Y direction with 4:1 ratio. It is mapped into the
--   3rd channel.
--   
--   Commonly known by the fourcc "YVU410".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8R8B8410 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 8 bit integer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the first chroma chanel. Subsampled
--   in the X direction with 4:1 ratio. It is mapped into the 3rd channel.
--   
--   The third plane usually contains the second chroma channel. Subsampled
--   in the X direction with 4:1 ratio. It is mapped into the 1st channel.
--   
--   Commonly known by the fourcc "YUV411".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8B8R8411 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 8 bit integer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the second chroma chanel. Subsampled
--   in the X direction with 4:1 ratio. It is mapped into the 1st channel.
--   
--   The third plane usually contains the first chroma channel. Subsampled
--   in the X direction with 4:1 ratio. It is mapped into the 3rd channel.
--   
--   Commonly known by the fourcc "YVU411".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8R8B8411 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 8 bit integer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the first chroma chanel. Subsampled
--   in both the X and Y direction. It is mapped into the 3rd channel.
--   
--   The third plane usually contains the second chroma channel. Subsampled
--   in both the X and Y direction. It is mapped into the 1st channel.
--   
--   Commonly known by the fourcc "YUV420".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8B8R8420 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 8 bit integer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the second chroma chanel. Subsampled
--   in both the X and Y direction. It is mapped into the 1st channel.
--   
--   The third plane usually contains the first chroma channel. Subsampled
--   in both the X and Y direction. It is mapped into the 3rd channel.
--   
--   Commonly known by the fourcc "YVU420".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8R8B8420 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 8 bit integer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the first chroma chanel. Subsampled
--   in the X direction. It is mapped into the 3rd channel.
--   
--   The third plane usually contains the second chroma channel. Subsampled
--   in the X direction. It is mapped into the 1st channel.
--   
--   Commonly known by the fourcc "YUV422".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8B8R8422 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 8 bit integer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the second chroma chanel. Subsampled
--   in the X direction. It is mapped into the 1st channel.
--   
--   The third plane usually contains the first chroma channel. Subsampled
--   in the X direction. It is mapped into the 3rd channel.
--   
--   Commonly known by the fourcc "YVU422".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8R8B8422 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 8 bit integer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the first chroma chanel. It is
--   mapped into the 3rd channel.
--   
--   The third plane usually contains the second chroma channel. It is
--   mapped into the 1st channel.
--   
--   Commonly known by the fourcc "YUV444".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8B8R8444 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 8 bit integer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the second chroma chanel. Subsampled
--   in the X direction. It is mapped into the 1st channel.
--   
--   The third plane usually contains the first chroma channel. Subsampled
--   in the X direction. It is mapped into the 3rd channel.
--   
--   Commonly known by the fourcc "YVU444".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8R8B8444 :: MemoryFormat

-- | Packed format with subsampled channels.
--   
--   Each channel is a 8 bit integer. The red and blue/chroma channels are
--   subsampled and interleaved with the green/luma channel.
--   
--   Each block contains 2 pixels, so the width must be a multiple of 2.
--   
--   Commonly known by the fourcc "YUYV".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8b8g8r8422 :: MemoryFormat

-- | Packed format with subsampled channels.
--   
--   Each channel is a 8 bit integer. The red and blue/chroma channels are
--   subsampled and interleaved with the green/luma channel.
--   
--   Each block contains 2 pixels, so the width must be a multiple of 2.
--   
--   Commonly known by the fourcc "YVYU".
--   
--   <i>Since: 4.20</i>
MemoryFormatG8r8g8b8422 :: MemoryFormat

-- | Packed format with subsampled channels.
--   
--   Each channel is a 8 bit integer. The red and blue/chroma channels are
--   subsampled and interleaved with the green/luma channel.
--   
--   Each block contains 2 pixels, so the width must be a multiple of 2.
--   
--   Commonly known by the fourcc "VYUY".
--   
--   <i>Since: 4.20</i>
MemoryFormatR8g8b8g8422 :: MemoryFormat

-- | Packed format with subsampled channels.
--   
--   Each channel is a 8 bit integer. The red and blue/chroma channels are
--   subsampled and interleaved with the green/luma channel.
--   
--   Each block contains 2 pixels, so the width must be a multiple of 2.
--   
--   Commonly known by the fourcc "UYVY".
--   
--   <i>Since: 4.20</i>
MemoryFormatB8g8r8g8422 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 16 bit integer.
--   
--   Only the 10 lower bits are used. The remaining ones must be set to 0
--   by the producer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the first chroma chanel. Subsampled
--   in both the X and Y direction. It is mapped into the 3rd channel.
--   
--   The third plane usually contains the second chroma channel. Subsampled
--   in both the X and Y direction. It is mapped into the 1st channel.
--   
--   Commonly known by the fourcc "S010".
--   
--   <i>Since: 4.20</i>
MemoryFormatX6g10X6b10X6r10420 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 16 bit integer.
--   
--   Only the 10 lower bits are used. The remaining ones must be set to 0
--   by the producer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the first chroma chanel. Subsampled
--   in the X direction. It is mapped into the 3rd channel.
--   
--   The third plane usually contains the second chroma channel. Subsampled
--   in the X direction. It is mapped into the 1st channel.
--   
--   Commonly known by the fourcc "S210".
--   
--   <i>Since: 4.20</i>
MemoryFormatX6g10X6b10X6r10422 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 16 bit integer.
--   
--   Only the 10 lower bits are used. The remaining ones must be set to 0
--   by the producer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the first chroma chanel. It is
--   mapped into the 3rd channel.
--   
--   The third plane usually contains the second chroma channel. It is
--   mapped into the 1st channel.
--   
--   Commonly known by the fourcc "S410".
--   
--   <i>Since: 4.20</i>
MemoryFormatX6g10X6b10X6r10444 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 16 bit integer.
--   
--   Only the 12 lower bits are used. The remaining ones must be set to 0
--   by the producer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the first chroma chanel. Subsampled
--   in both the X and Y direction. It is mapped into the 3rd channel.
--   
--   The third plane usually contains the second chroma channel. Subsampled
--   in both the X and Y direction. It is mapped into the 1st channel.
--   
--   Commonly known by the fourcc "S012".
--   
--   <i>Since: 4.20</i>
MemoryFormatX4g12X4b12X4r12420 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 16 bit integer.
--   
--   Only the 12 lower bits are used. The remaining ones must be set to 0
--   by the producer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the first chroma chanel. Subsampled
--   in the X direction. It is mapped into the 3rd channel.
--   
--   The third plane usually contains the second chroma channel. Subsampled
--   in the X direction. It is mapped into the 1st channel.
--   
--   Commonly known by the fourcc "S212".
--   
--   <i>Since: 4.20</i>
MemoryFormatX4g12X4b12X4r12422 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 16 bit integer.
--   
--   Only the 12 lower bits are used. The remaining ones must be set to 0
--   by the producer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the first chroma chanel. It is
--   mapped into the 3rd channel.
--   
--   The third plane usually contains the second chroma channel. It is
--   mapped into the 1st channel.
--   
--   Commonly known by the fourcc "S412".
--   
--   <i>Since: 4.20</i>
MemoryFormatX4g12X4b12X4r12444 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 16 bit integer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the first chroma chanel. Subsampled
--   in both the X and Y direction. It is mapped into the 3rd channel.
--   
--   The third plane usually contains the second chroma channel. Subsampled
--   in both the X and Y direction. It is mapped into the 1st channel.
--   
--   Commonly known by the fourcc "S016".
--   
--   <i>Since: 4.20</i>
MemoryFormatG16B16R16420 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 16 bit integer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the first chroma chanel. Subsampled
--   in the X direction. It is mapped into the 3rd channel.
--   
--   The third plane usually contains the second chroma channel. Subsampled
--   in the X direction. It is mapped into the 1st channel.
--   
--   Commonly known by the fourcc "S216".
--   
--   <i>Since: 4.20</i>
MemoryFormatG16B16R16422 :: MemoryFormat

-- | Multiplane format with 3 planes.
--   
--   Each channel is a 16 bit integer.
--   
--   The first plane usually contains the luma channel. It is mapped into
--   the 2nd channel.
--   
--   The second plane usually contains the first chroma chanel. It is
--   mapped into the 3rd channel.
--   
--   The third plane usually contains the second chroma channel. It is
--   mapped into the 1st channel.
--   
--   Commonly known by the fourcc "S416".
--   
--   <i>Since: 4.20</i>
MemoryFormatG16B16R16444 :: MemoryFormat

-- | The number of formats. This value will change as more formats get
--   added, so do not rely on its concrete integer.
MemoryFormatNFormats :: MemoryFormat

-- | Catch-all for unknown values
AnotherMemoryFormat :: Int -> MemoryFormat

-- | Specifies the kind of crossing for enter and leave events.
--   
--   See the X11 protocol specification of LeaveNotify for full details of
--   crossing event generation.
data NotifyType

-- | the surface is entered from an ancestor or left towards an ancestor.
NotifyTypeAncestor :: NotifyType

-- | the pointer moves between an ancestor and an inferior of the surface.
NotifyTypeVirtual :: NotifyType

-- | the surface is entered from an inferior or left towards an inferior.
NotifyTypeInferior :: NotifyType

-- | the surface is entered from or left towards a surface which is neither
--   an ancestor nor an inferior.
NotifyTypeNonlinear :: NotifyType

-- | the pointer moves between two surfaces which are not ancestors of each
--   other and the surface is part of the ancestor chain between one of
--   these surfaces and their least common ancestor.
NotifyTypeNonlinearVirtual :: NotifyType

-- | an unknown type of enter/leave event occurred.
NotifyTypeUnknown :: NotifyType

-- | Catch-all for unknown values
AnotherNotifyType :: Int -> NotifyType

-- | Specifies the direction for scroll events.
data ScrollDirection

-- | the surface is scrolled up.
ScrollDirectionUp :: ScrollDirection

-- | the surface is scrolled down.
ScrollDirectionDown :: ScrollDirection

-- | the surface is scrolled to the left.
ScrollDirectionLeft :: ScrollDirection

-- | the surface is scrolled to the right.
ScrollDirectionRight :: ScrollDirection

-- | the scrolling is determined by the delta values in scroll events. See
--   <a>scrollEventGetDeltas</a>
ScrollDirectionSmooth :: ScrollDirection

-- | Catch-all for unknown values
AnotherScrollDirection :: Int -> ScrollDirection

-- | Used in scroll events, to announce the direction relative to physical
--   motion.
--   
--   <i>Since: 4.20</i>
data ScrollRelativeDirection

-- | Physical motion and event motion are the same
ScrollRelativeDirectionIdentical :: ScrollRelativeDirection

-- | Physical motion is inverted relative to event motion
ScrollRelativeDirectionInverted :: ScrollRelativeDirection

-- | Relative motion is unknown on this device or backend
ScrollRelativeDirectionUnknown :: ScrollRelativeDirection

-- | Catch-all for unknown values
AnotherScrollRelativeDirection :: Int -> ScrollRelativeDirection

-- | Specifies the unit of scroll deltas.
--   
--   When you get <a>ScrollUnitWheel</a>, a delta of 1.0 means 1 wheel
--   detent click in the south direction, 2.0 means 2 wheel detent clicks
--   in the south direction... This is the same logic for negative values
--   but in the north direction.
--   
--   If you get <a>ScrollUnitSurface</a>, are managing a scrollable view
--   and get a value of 123, you have to scroll 123 surface logical pixels
--   right if it's <i><tt>deltaX</tt></i> or down if it's
--   <i><tt>deltaY</tt></i>. This is the same logic for negative values but
--   you have to scroll left instead of right if it's
--   <i><tt>deltaX</tt></i> and up instead of down if it's
--   <i><tt>deltaY</tt></i>.
--   
--   1 surface logical pixel is equal to 1 real screen pixel multiplied by
--   the final scale factor of your graphical interface (the product of the
--   desktop scale factor and eventually a custom scale factor in your
--   app).
--   
--   <i>Since: 4.8</i>
data ScrollUnit

-- | The delta is in number of wheel clicks.
ScrollUnitWheel :: ScrollUnit

-- | The delta is in surface pixels to scroll directly on screen.
ScrollUnitSurface :: ScrollUnit

-- | Catch-all for unknown values
AnotherScrollUnit :: Int -> ScrollUnit

-- | This enumeration describes how the red, green and blue components of
--   physical pixels on an output device are laid out.
data SubpixelLayout

-- | The layout is not known
SubpixelLayoutUnknown :: SubpixelLayout

-- | Not organized in this way
SubpixelLayoutNone :: SubpixelLayout

-- | The layout is horizontal, the order is RGB
SubpixelLayoutHorizontalRgb :: SubpixelLayout

-- | The layout is horizontal, the order is BGR
SubpixelLayoutHorizontalBgr :: SubpixelLayout

-- | The layout is vertical, the order is RGB
SubpixelLayoutVerticalRgb :: SubpixelLayout

-- | The layout is vertical, the order is BGR
SubpixelLayoutVerticalBgr :: SubpixelLayout

-- | Catch-all for unknown values
AnotherSubpixelLayout :: Int -> SubpixelLayout

-- | Determines a surface edge or corner.
data SurfaceEdge

-- | the top left corner.
SurfaceEdgeNorthWest :: SurfaceEdge

-- | the top edge.
SurfaceEdgeNorth :: SurfaceEdge

-- | the top right corner.
SurfaceEdgeNorthEast :: SurfaceEdge

-- | the left edge.
SurfaceEdgeWest :: SurfaceEdge

-- | the right edge.
SurfaceEdgeEast :: SurfaceEdge

-- | the lower left corner.
SurfaceEdgeSouthWest :: SurfaceEdge

-- | the lower edge.
SurfaceEdgeSouth :: SurfaceEdge

-- | the lower right corner.
SurfaceEdgeSouthEast :: SurfaceEdge

-- | Catch-all for unknown values
AnotherSurfaceEdge :: Int -> SurfaceEdge

-- | Possible errors that can be returned by <tt>GdkTexture</tt>
--   constructors.
--   
--   <i>Since: 4.6</i>
data TextureError

-- | Not enough memory to handle this image
TextureErrorTooLarge :: TextureError

-- | The image data appears corrupted
TextureErrorCorruptImage :: TextureError

-- | The image contains features that cannot be loaded
TextureErrorUnsupportedContent :: TextureError

-- | The image format is not supported
TextureErrorUnsupportedFormat :: TextureError

-- | Catch-all for unknown values
AnotherTextureError :: Int -> TextureError

-- | Catch exceptions of type <a>TextureError</a>. This is a specialized
--   version of <a>catchGErrorJustDomain</a>.
catchTextureError :: IO a -> (TextureError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type <a>TextureError</a>. This is a specialized
--   version of <a>handleGErrorJustDomain</a>.
handleTextureError :: (TextureError -> GErrorMessage -> IO a) -> IO a -> IO a

-- | The kind of title bar gesture to emit with
--   <a>toplevelTitlebarGesture</a>.
--   
--   <i>Since: 4.4</i>
data TitlebarGesture

-- | double click gesture
TitlebarGestureDoubleClick :: TitlebarGesture

-- | right click gesture
TitlebarGestureRightClick :: TitlebarGesture

-- | middle click gesture
TitlebarGestureMiddleClick :: TitlebarGesture

-- | Catch-all for unknown values
AnotherTitlebarGesture :: Int -> TitlebarGesture

-- | Specifies the current state of a touchpad gesture.
--   
--   All gestures are guaranteed to begin with an event with phase
--   <a>TouchpadGesturePhaseBegin</a>, followed by 0 or several events with
--   phase <a>TouchpadGesturePhaseUpdate</a>.
--   
--   A finished gesture may have 2 possible outcomes, an event with phase
--   <a>TouchpadGesturePhaseEnd</a> will be emitted when the gesture is
--   considered successful, this should be used as the hint to perform any
--   permanent changes.
--   
--   Cancelled gestures may be so for a variety of reasons, due to hardware
--   or the compositor, or due to the gesture recognition layers hinting
--   the gesture did not finish resolutely (eg. a 3rd finger being added
--   during a pinch gesture). In these cases, the last event will report
--   the phase <a>TouchpadGesturePhaseCancel</a>, this should be used as a
--   hint to undo any visible/permanent changes that were done throughout
--   the progress of the gesture.
data TouchpadGesturePhase

-- | The gesture has begun.
TouchpadGesturePhaseBegin :: TouchpadGesturePhase

-- | The gesture has been updated.
TouchpadGesturePhaseUpdate :: TouchpadGesturePhase

-- | The gesture was finished, changes should be permanently applied.
TouchpadGesturePhaseEnd :: TouchpadGesturePhase

-- | The gesture was cancelled, all changes should be undone.
TouchpadGesturePhaseCancel :: TouchpadGesturePhase

-- | Catch-all for unknown values
AnotherTouchpadGesturePhase :: Int -> TouchpadGesturePhase

-- | Error enumeration for <tt>GdkVulkanContext</tt>.
data VulkanError

-- | Vulkan is not supported on this backend or has not been compiled in.
VulkanErrorUnsupported :: VulkanError

-- | Vulkan support is not available on this Surface
VulkanErrorNotAvailable :: VulkanError

-- | Catch-all for unknown values
AnotherVulkanError :: Int -> VulkanError

-- | Catch exceptions of type <a>VulkanError</a>. This is a specialized
--   version of <a>catchGErrorJustDomain</a>.
catchVulkanError :: IO a -> (VulkanError -> GErrorMessage -> IO a) -> IO a

-- | Handle exceptions of type <a>VulkanError</a>. This is a specialized
--   version of <a>handleGErrorJustDomain</a>.
handleVulkanError :: (VulkanError -> GErrorMessage -> IO a) -> IO a -> IO a
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.AxisUse
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.CicpRange
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.ColorChannel
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.CrossingMode
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.DevicePadFeature
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.DeviceToolType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.DmabufError
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.DragCancelReason
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.EventType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.FullscreenMode
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.GLError
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.Gravity
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.InputSource
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.KeyMatch
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.MemoryFormat
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.NotifyType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.ScrollDirection
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.ScrollRelativeDirection
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.ScrollUnit
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.SubpixelLayout
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.SurfaceEdge
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.TextureError
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.TitlebarGesture
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.TouchpadGesturePhase
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Gdk.Enums.VulkanError
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.AxisUse
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.CicpRange
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.ColorChannel
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.CrossingMode
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.DevicePadFeature
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.DeviceToolType
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.DmabufError
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.DragCancelReason
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.EventType
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.FullscreenMode
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.GLError
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.Gravity
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.InputSource
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.KeyMatch
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.MemoryFormat
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.NotifyType
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.ScrollDirection
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.ScrollRelativeDirection
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.ScrollUnit
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.SubpixelLayout
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.SurfaceEdge
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.TextureError
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.TitlebarGesture
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.TouchpadGesturePhase
instance GHC.Internal.Enum.Enum GI.Gdk.Enums.VulkanError
instance GHC.Classes.Eq GI.Gdk.Enums.AxisUse
instance GHC.Classes.Eq GI.Gdk.Enums.CicpRange
instance GHC.Classes.Eq GI.Gdk.Enums.ColorChannel
instance GHC.Classes.Eq GI.Gdk.Enums.CrossingMode
instance GHC.Classes.Eq GI.Gdk.Enums.DevicePadFeature
instance GHC.Classes.Eq GI.Gdk.Enums.DeviceToolType
instance GHC.Classes.Eq GI.Gdk.Enums.DmabufError
instance GHC.Classes.Eq GI.Gdk.Enums.DragCancelReason
instance GHC.Classes.Eq GI.Gdk.Enums.EventType
instance GHC.Classes.Eq GI.Gdk.Enums.FullscreenMode
instance GHC.Classes.Eq GI.Gdk.Enums.GLError
instance GHC.Classes.Eq GI.Gdk.Enums.Gravity
instance GHC.Classes.Eq GI.Gdk.Enums.InputSource
instance GHC.Classes.Eq GI.Gdk.Enums.KeyMatch
instance GHC.Classes.Eq GI.Gdk.Enums.MemoryFormat
instance GHC.Classes.Eq GI.Gdk.Enums.NotifyType
instance GHC.Classes.Eq GI.Gdk.Enums.ScrollDirection
instance GHC.Classes.Eq GI.Gdk.Enums.ScrollRelativeDirection
instance GHC.Classes.Eq GI.Gdk.Enums.ScrollUnit
instance GHC.Classes.Eq GI.Gdk.Enums.SubpixelLayout
instance GHC.Classes.Eq GI.Gdk.Enums.SurfaceEdge
instance GHC.Classes.Eq GI.Gdk.Enums.TextureError
instance GHC.Classes.Eq GI.Gdk.Enums.TitlebarGesture
instance GHC.Classes.Eq GI.Gdk.Enums.TouchpadGesturePhase
instance GHC.Classes.Eq GI.Gdk.Enums.VulkanError
instance Data.GI.Base.GError.GErrorClass GI.Gdk.Enums.DmabufError
instance Data.GI.Base.GError.GErrorClass GI.Gdk.Enums.GLError
instance Data.GI.Base.GError.GErrorClass GI.Gdk.Enums.TextureError
instance Data.GI.Base.GError.GErrorClass GI.Gdk.Enums.VulkanError
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.AxisUse
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.CicpRange
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.ColorChannel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.CrossingMode
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.DevicePadFeature
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.DeviceToolType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.DmabufError
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.DragCancelReason
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.EventType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.FullscreenMode
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.GLError
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.Gravity
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.InputSource
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.KeyMatch
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.MemoryFormat
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.NotifyType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.ScrollDirection
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.ScrollRelativeDirection
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.ScrollUnit
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.SubpixelLayout
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.SurfaceEdge
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.TextureError
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.TitlebarGesture
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.TouchpadGesturePhase
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Enums.VulkanError
instance GHC.Classes.Ord GI.Gdk.Enums.AxisUse
instance GHC.Classes.Ord GI.Gdk.Enums.CicpRange
instance GHC.Classes.Ord GI.Gdk.Enums.ColorChannel
instance GHC.Classes.Ord GI.Gdk.Enums.CrossingMode
instance GHC.Classes.Ord GI.Gdk.Enums.DevicePadFeature
instance GHC.Classes.Ord GI.Gdk.Enums.DeviceToolType
instance GHC.Classes.Ord GI.Gdk.Enums.DmabufError
instance GHC.Classes.Ord GI.Gdk.Enums.DragCancelReason
instance GHC.Classes.Ord GI.Gdk.Enums.EventType
instance GHC.Classes.Ord GI.Gdk.Enums.FullscreenMode
instance GHC.Classes.Ord GI.Gdk.Enums.GLError
instance GHC.Classes.Ord GI.Gdk.Enums.Gravity
instance GHC.Classes.Ord GI.Gdk.Enums.InputSource
instance GHC.Classes.Ord GI.Gdk.Enums.KeyMatch
instance GHC.Classes.Ord GI.Gdk.Enums.MemoryFormat
instance GHC.Classes.Ord GI.Gdk.Enums.NotifyType
instance GHC.Classes.Ord GI.Gdk.Enums.ScrollDirection
instance GHC.Classes.Ord GI.Gdk.Enums.ScrollRelativeDirection
instance GHC.Classes.Ord GI.Gdk.Enums.ScrollUnit
instance GHC.Classes.Ord GI.Gdk.Enums.SubpixelLayout
instance GHC.Classes.Ord GI.Gdk.Enums.SurfaceEdge
instance GHC.Classes.Ord GI.Gdk.Enums.TextureError
instance GHC.Classes.Ord GI.Gdk.Enums.TitlebarGesture
instance GHC.Classes.Ord GI.Gdk.Enums.TouchpadGesturePhase
instance GHC.Classes.Ord GI.Gdk.Enums.VulkanError
instance GHC.Internal.Show.Show GI.Gdk.Enums.AxisUse
instance GHC.Internal.Show.Show GI.Gdk.Enums.CicpRange
instance GHC.Internal.Show.Show GI.Gdk.Enums.ColorChannel
instance GHC.Internal.Show.Show GI.Gdk.Enums.CrossingMode
instance GHC.Internal.Show.Show GI.Gdk.Enums.DevicePadFeature
instance GHC.Internal.Show.Show GI.Gdk.Enums.DeviceToolType
instance GHC.Internal.Show.Show GI.Gdk.Enums.DmabufError
instance GHC.Internal.Show.Show GI.Gdk.Enums.DragCancelReason
instance GHC.Internal.Show.Show GI.Gdk.Enums.EventType
instance GHC.Internal.Show.Show GI.Gdk.Enums.FullscreenMode
instance GHC.Internal.Show.Show GI.Gdk.Enums.GLError
instance GHC.Internal.Show.Show GI.Gdk.Enums.Gravity
instance GHC.Internal.Show.Show GI.Gdk.Enums.InputSource
instance GHC.Internal.Show.Show GI.Gdk.Enums.KeyMatch
instance GHC.Internal.Show.Show GI.Gdk.Enums.MemoryFormat
instance GHC.Internal.Show.Show GI.Gdk.Enums.NotifyType
instance GHC.Internal.Show.Show GI.Gdk.Enums.ScrollDirection
instance GHC.Internal.Show.Show GI.Gdk.Enums.ScrollRelativeDirection
instance GHC.Internal.Show.Show GI.Gdk.Enums.ScrollUnit
instance GHC.Internal.Show.Show GI.Gdk.Enums.SubpixelLayout
instance GHC.Internal.Show.Show GI.Gdk.Enums.SurfaceEdge
instance GHC.Internal.Show.Show GI.Gdk.Enums.TextureError
instance GHC.Internal.Show.Show GI.Gdk.Enums.TitlebarGesture
instance GHC.Internal.Show.Show GI.Gdk.Enums.TouchpadGesturePhase
instance GHC.Internal.Show.Show GI.Gdk.Enums.VulkanError
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.AxisUse
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.CicpRange
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.ColorChannel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.CrossingMode
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.DevicePadFeature
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.DeviceToolType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.DmabufError
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.DragCancelReason
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.EventType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.FullscreenMode
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.GLError
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.Gravity
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.InputSource
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.KeyMatch
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.MemoryFormat
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.NotifyType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.ScrollDirection
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.ScrollRelativeDirection
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.ScrollUnit
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.SubpixelLayout
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.SurfaceEdge
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.TextureError
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.TitlebarGesture
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.TouchpadGesturePhase
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Enums.VulkanError


module GI.Gdk.Flags

-- | Positioning hints for aligning a surface relative to a rectangle.
--   
--   These hints determine how the surface should be positioned in the case
--   that the surface would fall off-screen if placed in its ideal
--   position.
--   
--   For example, <a>AnchorHintsFlipX</a> will replace
--   <a>GravityNorthWest</a> with <a>GravityNorthEast</a> and vice versa if
--   the surface extends beyond the left or right edges of the monitor.
--   
--   If <a>AnchorHintsSlideX</a> is set, the surface can be shifted
--   horizontally to fit on-screen. If <a>AnchorHintsResizeX</a> is set,
--   the surface can be shrunken horizontally to fit.
--   
--   In general, when multiple flags are set, flipping should take
--   precedence over sliding, which should take precedence over resizing.
data AnchorHints

-- | allow flipping anchors horizontally
AnchorHintsFlipX :: AnchorHints

-- | allow flipping anchors vertically
AnchorHintsFlipY :: AnchorHints

-- | allow sliding surface horizontally
AnchorHintsSlideX :: AnchorHints

-- | allow sliding surface vertically
AnchorHintsSlideY :: AnchorHints

-- | allow resizing surface horizontally
AnchorHintsResizeX :: AnchorHints

-- | allow resizing surface vertically
AnchorHintsResizeY :: AnchorHints

-- | allow flipping anchors on both axes
AnchorHintsFlip :: AnchorHints

-- | allow sliding surface on both axes
AnchorHintsSlide :: AnchorHints

-- | allow resizing surface on both axes
AnchorHintsResize :: AnchorHints

-- | Catch-all for unknown values
AnotherAnchorHints :: Int -> AnchorHints

-- | Flags describing the current capabilities of a device/tool.
data AxisFlags

-- | X axis is present
AxisFlagsX :: AxisFlags

-- | Y axis is present
AxisFlagsY :: AxisFlags

-- | Scroll X delta axis is present
AxisFlagsDeltaX :: AxisFlags

-- | Scroll Y delta axis is present
AxisFlagsDeltaY :: AxisFlags

-- | Pressure axis is present
AxisFlagsPressure :: AxisFlags

-- | X tilt axis is present
AxisFlagsXtilt :: AxisFlags

-- | Y tilt axis is present
AxisFlagsYtilt :: AxisFlags

-- | Wheel axis is present
AxisFlagsWheel :: AxisFlags

-- | Distance axis is present
AxisFlagsDistance :: AxisFlags

-- | Z-axis rotation is present
AxisFlagsRotation :: AxisFlags

-- | Slider axis is present
AxisFlagsSlider :: AxisFlags

-- | Catch-all for unknown values
AnotherAxisFlags :: Int -> AxisFlags

-- | Used in <tt>GdkDrop</tt> and <tt>GdkDrag</tt> to indicate the actions
--   that the destination can and should do with the dropped data.
data DragAction

-- | No action.
--   
--   <i>Since: 4.20</i>
DragActionNone :: DragAction

-- | Copy the data.
DragActionCopy :: DragAction

-- | Move the data, i.e. first copy it, then delete it from the source
--   using the DELETE target of the X selection protocol.
DragActionMove :: DragAction

-- | Add a link to the data. Note that this is only useful if source and
--   destination agree on what it means, and is not supported on all
--   platforms.
DragActionLink :: DragAction

-- | Ask the user what to do with the data.
DragActionAsk :: DragAction

-- | Catch-all for unknown values
AnotherDragAction :: Int -> DragAction

-- | Used to represent the different paint clock phases that can be
--   requested.
--   
--   The elements of the enumeration correspond to the signals of
--   <tt>GdkFrameClock</tt>.
data FrameClockPhase

-- | no phase
FrameClockPhaseNone :: FrameClockPhase

-- | corresponds to GdkFrameClock<a>flushEvents</a>. Should not be handled
--   by applications.
FrameClockPhaseFlushEvents :: FrameClockPhase

-- | corresponds to GdkFrameClock<a>beforePaint</a>. Should not be handled
--   by applications.
FrameClockPhaseBeforePaint :: FrameClockPhase

-- | corresponds to GdkFrameClock<a>update</a>.
FrameClockPhaseUpdate :: FrameClockPhase

-- | corresponds to GdkFrameClock<a>layout</a>. Should not be handled by
--   applications.
FrameClockPhaseLayout :: FrameClockPhase

-- | corresponds to GdkFrameClock<a>paint</a>.
FrameClockPhasePaint :: FrameClockPhase

-- | corresponds to GdkFrameClock<a>resumeEvents</a>. Should not be handled
--   by applications.
FrameClockPhaseResumeEvents :: FrameClockPhase

-- | corresponds to GdkFrameClock<a>afterPaint</a>. Should not be handled
--   by applications.
FrameClockPhaseAfterPaint :: FrameClockPhase

-- | Catch-all for unknown values
AnotherFrameClockPhase :: Int -> FrameClockPhase

-- | The list of the different APIs that GdkGLContext can potentially
--   support.
--   
--   <i>Since: 4.6</i>
data GLAPI

-- | The OpenGL API
GLAPIGl :: GLAPI

-- | The OpenGL ES API
GLAPIGles :: GLAPI

-- | Catch-all for unknown values
AnotherGLAPI :: Int -> GLAPI

-- | Flags to indicate the state of modifier keys and mouse buttons in
--   events.
--   
--   Typical modifier keys are Shift, Control, Meta, Super, Hyper, Alt,
--   Compose, Apple, CapsLock or ShiftLock.
--   
--   Note that GDK may add internal values to events which include values
--   outside of this enumeration. Your code should preserve and ignore
--   them. You can use <a>MODIFIER_MASK</a> to remove all private values.
data ModifierType

-- | No modifier.
--   
--   <i>Since: 4.14</i>
ModifierTypeNoModifierMask :: ModifierType

-- | the Shift key.
ModifierTypeShiftMask :: ModifierType

-- | a Lock key (depending on the Windowing System configuration, this may
--   either be &lt;kbd&gt;CapsLock&lt;/kbd&gt; or
--   &lt;kbd&gt;ShiftLock&lt;/kbd&gt;).
ModifierTypeLockMask :: ModifierType

-- | the Control key.
ModifierTypeControlMask :: ModifierType

-- | the fourth modifier key (it depends on the Windowing System
--   configuration which key is interpreted as this modifier, but normally
--   it is the &lt;kbd&gt;Alt&lt;/kbd&gt; key).
ModifierTypeAltMask :: ModifierType

-- | the first mouse button.
ModifierTypeButton1Mask :: ModifierType

-- | the second mouse button.
ModifierTypeButton2Mask :: ModifierType

-- | the third mouse button.
ModifierTypeButton3Mask :: ModifierType

-- | the fourth mouse button.
ModifierTypeButton4Mask :: ModifierType

-- | the fifth mouse button.
ModifierTypeButton5Mask :: ModifierType

-- | the Super modifier.
ModifierTypeSuperMask :: ModifierType

-- | the Hyper modifier.
ModifierTypeHyperMask :: ModifierType

-- | the Meta modifier. Maps to Command on macOS.
ModifierTypeMetaMask :: ModifierType

-- | Catch-all for unknown values
AnotherModifierType :: Int -> ModifierType

-- | Flags about a paintable object.
--   
--   Implementations use these for optimizations such as caching.
data PaintableFlags

-- | The size is immutable. The <a>Paintable::invalidateSize</a> signal
--   will never be emitted.
PaintableFlagsStaticSize :: PaintableFlags

-- | The content is immutable. The <a>Paintable::invalidateContents</a>
--   signal will never be emitted.
PaintableFlagsStaticContents :: PaintableFlags

-- | Catch-all for unknown values
AnotherPaintableFlags :: Int -> PaintableFlags

-- | Flags describing the seat capabilities.
data SeatCapabilities

-- | No input capabilities
SeatCapabilitiesNone :: SeatCapabilities

-- | The seat has a pointer (e.g. mouse)
SeatCapabilitiesPointer :: SeatCapabilities

-- | The seat has touchscreen(s) attached
SeatCapabilitiesTouch :: SeatCapabilities

-- | The seat has drawing tablet(s) attached
SeatCapabilitiesTabletStylus :: SeatCapabilities

-- | The seat has keyboard(s) attached
SeatCapabilitiesKeyboard :: SeatCapabilities

-- | The seat has drawing tablet pad(s) attached
SeatCapabilitiesTabletPad :: SeatCapabilities

-- | The union of all pointing capabilities
SeatCapabilitiesAllPointing :: SeatCapabilities

-- | The union of all capabilities
SeatCapabilitiesAll :: SeatCapabilities

-- | Catch-all for unknown values
AnotherSeatCapabilities :: Int -> SeatCapabilities

-- | Reflects what features a <tt>GdkToplevel</tt> supports.
--   
--   <i>Since: 4.20</i>
data ToplevelCapabilities

-- | Whether tiled window states are supported.
--   
--   <i>Since: 4.20</i>
ToplevelCapabilitiesEdgeConstraints :: ToplevelCapabilities

-- | Whether inhibiting system shortcuts is supported. See
--   <a>toplevelInhibitSystemShortcuts</a>.
--   
--   <i>Since: 4.20</i>
ToplevelCapabilitiesInhibitShortcuts :: ToplevelCapabilities

-- | Whether titlebar gestures are supported. See
--   <a>toplevelTitlebarGesture</a>.
--   
--   <i>Since: 4.20</i>
ToplevelCapabilitiesTitlebarGestures :: ToplevelCapabilities

-- | Whether showing the window menu is supported. See
--   <a>toplevelShowWindowMenu</a>.
--   
--   <i>Since: 4.20</i>
ToplevelCapabilitiesWindowMenu :: ToplevelCapabilities

-- | Whether the toplevel can be maximized.
--   
--   <i>Since: 4.20</i>
ToplevelCapabilitiesMaximize :: ToplevelCapabilities

-- | Whether the toplevel can be made fullscreen.
--   
--   <i>Since: 4.20</i>
ToplevelCapabilitiesFullscreen :: ToplevelCapabilities

-- | Whether the toplevel can be minimized. See <a>toplevelMinimize</a>.
--   
--   <i>Since: 4.20</i>
ToplevelCapabilitiesMinimize :: ToplevelCapabilities

-- | Whether the toplevel can be lowered. See <a>toplevelLower</a>.
--   
--   <i>Since: 4.20</i>
ToplevelCapabilitiesLower :: ToplevelCapabilities

-- | Catch-all for unknown values
AnotherToplevelCapabilities :: Int -> ToplevelCapabilities

-- | Specifies the state of a toplevel surface.
--   
--   On platforms that support information about individual edges, the
--   <a>ToplevelStateTiled</a> state will be set whenever any of the
--   individual tiled states is set. On platforms that lack that support,
--   the tiled state will give an indication of tiledness without any of
--   the per-edge states being set.
data ToplevelState

-- | the surface is minimized
ToplevelStateMinimized :: ToplevelState

-- | the surface is maximized
ToplevelStateMaximized :: ToplevelState

-- | the surface is sticky
ToplevelStateSticky :: ToplevelState

-- | the surface is maximized without decorations
ToplevelStateFullscreen :: ToplevelState

-- | the surface is kept above other surfaces
ToplevelStateAbove :: ToplevelState

-- | the surface is kept below other surfaces
ToplevelStateBelow :: ToplevelState

-- | the surface is presented as focused (with active decorations)
ToplevelStateFocused :: ToplevelState

-- | the surface is in a tiled state
ToplevelStateTiled :: ToplevelState

-- | whether the top edge is tiled
ToplevelStateTopTiled :: ToplevelState

-- | whether the top edge is resizable
ToplevelStateTopResizable :: ToplevelState

-- | whether the right edge is tiled
ToplevelStateRightTiled :: ToplevelState

-- | whether the right edge is resizable
ToplevelStateRightResizable :: ToplevelState

-- | whether the bottom edge is tiled
ToplevelStateBottomTiled :: ToplevelState

-- | whether the bottom edge is resizable
ToplevelStateBottomResizable :: ToplevelState

-- | whether the left edge is tiled
ToplevelStateLeftTiled :: ToplevelState

-- | whether the left edge is resizable
ToplevelStateLeftResizable :: ToplevelState

-- | The surface is not visible to the user.
--   
--   <i>Since: 4.12</i>
ToplevelStateSuspended :: ToplevelState

-- | Catch-all for unknown values
AnotherToplevelState :: Int -> ToplevelState
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gdk.Flags.AnchorHints
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gdk.Flags.AxisFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gdk.Flags.DragAction
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gdk.Flags.FrameClockPhase
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gdk.Flags.GLAPI
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gdk.Flags.ModifierType
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gdk.Flags.PaintableFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gdk.Flags.SeatCapabilities
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gdk.Flags.ToplevelCapabilities
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Gdk.Flags.ToplevelState
instance GHC.Internal.Enum.Enum GI.Gdk.Flags.AnchorHints
instance GHC.Internal.Enum.Enum GI.Gdk.Flags.AxisFlags
instance GHC.Internal.Enum.Enum GI.Gdk.Flags.DragAction
instance GHC.Internal.Enum.Enum GI.Gdk.Flags.FrameClockPhase
instance GHC.Internal.Enum.Enum GI.Gdk.Flags.GLAPI
instance GHC.Internal.Enum.Enum GI.Gdk.Flags.ModifierType
instance GHC.Internal.Enum.Enum GI.Gdk.Flags.PaintableFlags
instance GHC.Internal.Enum.Enum GI.Gdk.Flags.SeatCapabilities
instance GHC.Internal.Enum.Enum GI.Gdk.Flags.ToplevelCapabilities
instance GHC.Internal.Enum.Enum GI.Gdk.Flags.ToplevelState
instance GHC.Classes.Eq GI.Gdk.Flags.AnchorHints
instance GHC.Classes.Eq GI.Gdk.Flags.AxisFlags
instance GHC.Classes.Eq GI.Gdk.Flags.DragAction
instance GHC.Classes.Eq GI.Gdk.Flags.FrameClockPhase
instance GHC.Classes.Eq GI.Gdk.Flags.GLAPI
instance GHC.Classes.Eq GI.Gdk.Flags.ModifierType
instance GHC.Classes.Eq GI.Gdk.Flags.PaintableFlags
instance GHC.Classes.Eq GI.Gdk.Flags.SeatCapabilities
instance GHC.Classes.Eq GI.Gdk.Flags.ToplevelCapabilities
instance GHC.Classes.Eq GI.Gdk.Flags.ToplevelState
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Flags.AnchorHints
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Flags.AxisFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Flags.DragAction
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Flags.FrameClockPhase
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Flags.GLAPI
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Flags.ModifierType
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Flags.PaintableFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Flags.SeatCapabilities
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Flags.ToplevelCapabilities
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Flags.ToplevelState
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gdk.Flags.AnchorHints
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gdk.Flags.AxisFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gdk.Flags.DragAction
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gdk.Flags.FrameClockPhase
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gdk.Flags.GLAPI
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gdk.Flags.ModifierType
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gdk.Flags.PaintableFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gdk.Flags.SeatCapabilities
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gdk.Flags.ToplevelCapabilities
instance Data.GI.Base.BasicTypes.IsGFlag GI.Gdk.Flags.ToplevelState
instance GHC.Classes.Ord GI.Gdk.Flags.AnchorHints
instance GHC.Classes.Ord GI.Gdk.Flags.AxisFlags
instance GHC.Classes.Ord GI.Gdk.Flags.DragAction
instance GHC.Classes.Ord GI.Gdk.Flags.FrameClockPhase
instance GHC.Classes.Ord GI.Gdk.Flags.GLAPI
instance GHC.Classes.Ord GI.Gdk.Flags.ModifierType
instance GHC.Classes.Ord GI.Gdk.Flags.PaintableFlags
instance GHC.Classes.Ord GI.Gdk.Flags.SeatCapabilities
instance GHC.Classes.Ord GI.Gdk.Flags.ToplevelCapabilities
instance GHC.Classes.Ord GI.Gdk.Flags.ToplevelState
instance GHC.Internal.Show.Show GI.Gdk.Flags.AnchorHints
instance GHC.Internal.Show.Show GI.Gdk.Flags.AxisFlags
instance GHC.Internal.Show.Show GI.Gdk.Flags.DragAction
instance GHC.Internal.Show.Show GI.Gdk.Flags.FrameClockPhase
instance GHC.Internal.Show.Show GI.Gdk.Flags.GLAPI
instance GHC.Internal.Show.Show GI.Gdk.Flags.ModifierType
instance GHC.Internal.Show.Show GI.Gdk.Flags.PaintableFlags
instance GHC.Internal.Show.Show GI.Gdk.Flags.SeatCapabilities
instance GHC.Internal.Show.Show GI.Gdk.Flags.ToplevelCapabilities
instance GHC.Internal.Show.Show GI.Gdk.Flags.ToplevelState
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Flags.AnchorHints
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Flags.AxisFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Flags.DragAction
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Flags.FrameClockPhase
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Flags.GLAPI
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Flags.ModifierType
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Flags.PaintableFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Flags.SeatCapabilities
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Flags.ToplevelCapabilities
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Flags.ToplevelState


-- | Deserializes content received via inter-application data transfers.
--   
--   The <tt>GdkContentDeserializer</tt> transforms serialized content that
--   is identified by a mime type into an object identified by a GType.
--   
--   GTK provides serializers and deserializers for common data types such
--   as text, colors, images or file lists. To register your own
--   deserialization functions, use
--   [func<i><tt>contentRegisterDeserializer</tt></i>].
--   
--   Also see <a>ContentSerializer</a>.
module GI.Gdk.Objects.ContentDeserializer

-- | Memory-managed wrapper type.
newtype ContentDeserializer
ContentDeserializer :: ManagedPtr ContentDeserializer -> ContentDeserializer

-- | Type class for types which can be safely cast to
--   <a>ContentDeserializer</a>, for instance with
--   <a>toContentDeserializer</a>.
class (GObject o, IsDescendantOf ContentDeserializer o) => IsContentDeserializer o

-- | Cast to <a>ContentDeserializer</a>, for types for which this is known
--   to be safe. For general casts, use <a>castTo</a>.
toContentDeserializer :: (MonadIO m, IsContentDeserializer o) => o -> m ContentDeserializer

-- | Gets the cancellable for the current operation.
--   
--   This is the <tt>GCancellable</tt> that was passed to
--   <a>contentDeserializeAsync</a>.
contentDeserializerGetCancellable :: (HasCallStack, MonadIO m, IsContentDeserializer a) => a -> m (Maybe Cancellable)

-- | Gets the <tt>GType</tt> to create an instance of.
contentDeserializerGetGtype :: (HasCallStack, MonadIO m, IsContentDeserializer a) => a -> m GType

-- | Gets the input stream for the current operation.
--   
--   This is the stream that was passed to <a>contentDeserializeAsync</a>.
contentDeserializerGetInputStream :: (HasCallStack, MonadIO m, IsContentDeserializer a) => a -> m InputStream

-- | Gets the mime type to deserialize from.
contentDeserializerGetMimeType :: (HasCallStack, MonadIO m, IsContentDeserializer a) => a -> m Text

-- | Gets the I/O priority for the current operation.
--   
--   This is the priority that was passed to
--   <a>contentDeserializeAsync</a>.
contentDeserializerGetPriority :: (HasCallStack, MonadIO m, IsContentDeserializer a) => a -> m Int32

-- | Gets the data that was associated with the current operation.
--   
--   See <a>contentDeserializerSetTaskData</a>.
contentDeserializerGetTaskData :: (HasCallStack, MonadIO m, IsContentDeserializer a) => a -> m (Ptr ())

-- | Gets the user data that was passed when the deserializer was
--   registered.
contentDeserializerGetUserData :: (HasCallStack, MonadIO m, IsContentDeserializer a) => a -> m (Ptr ())

-- | Gets the <tt>GValue</tt> to store the deserialized object in.
contentDeserializerGetValue :: (HasCallStack, MonadIO m, IsContentDeserializer a) => a -> m GValue

-- | Indicate that the deserialization has ended with an error.
--   
--   This function consumes <i><tt>error</tt></i>.
contentDeserializerReturnError :: (HasCallStack, MonadIO m, IsContentDeserializer a) => a -> GError -> m ()

-- | Indicate that the deserialization has been successfully completed.
contentDeserializerReturnSuccess :: (HasCallStack, MonadIO m, IsContentDeserializer a) => a -> m ()

-- | Associate data with the current deserialization operation.
contentDeserializerSetTaskData :: (HasCallStack, MonadIO m, IsContentDeserializer a) => a -> Ptr () -> DestroyNotify -> m ()
instance GHC.Classes.Eq GI.Gdk.Objects.ContentDeserializer.ContentDeserializer
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.ContentDeserializer.ContentDeserializer
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.ContentDeserializer.ContentDeserializer
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.ContentDeserializer.ContentDeserializer o) => GI.Gdk.Objects.ContentDeserializer.IsContentDeserializer o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.ContentDeserializer.ContentDeserializer)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.ContentDeserializer.ContentDeserializer
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.ContentDeserializer.ContentDeserializer


-- | Serializes content for inter-application data transfers.
--   
--   The <tt>GdkContentSerializer</tt> transforms an object that is
--   identified by a GType into a serialized form (i.e. a byte stream) that
--   is identified by a mime type.
--   
--   GTK provides serializers and deserializers for common data types such
--   as text, colors, images or file lists. To register your own
--   serialization functions, use <a>contentRegisterSerializer</a>.
--   
--   Also see <a>ContentDeserializer</a>.
module GI.Gdk.Objects.ContentSerializer

-- | Memory-managed wrapper type.
newtype ContentSerializer
ContentSerializer :: ManagedPtr ContentSerializer -> ContentSerializer

-- | Type class for types which can be safely cast to
--   <a>ContentSerializer</a>, for instance with
--   <a>toContentSerializer</a>.
class (GObject o, IsDescendantOf ContentSerializer o) => IsContentSerializer o

-- | Cast to <a>ContentSerializer</a>, for types for which this is known to
--   be safe. For general casts, use <a>castTo</a>.
toContentSerializer :: (MonadIO m, IsContentSerializer o) => o -> m ContentSerializer

-- | Gets the cancellable for the current operation.
--   
--   This is the <tt>GCancellable</tt> that was passed to
--   [func<i><tt>contentSerializeAsync</tt></i>].
contentSerializerGetCancellable :: (HasCallStack, MonadIO m, IsContentSerializer a) => a -> m (Maybe Cancellable)

-- | Gets the <tt>GType</tt> to of the object to serialize.
contentSerializerGetGtype :: (HasCallStack, MonadIO m, IsContentSerializer a) => a -> m GType

-- | Gets the mime type to serialize to.
contentSerializerGetMimeType :: (HasCallStack, MonadIO m, IsContentSerializer a) => a -> m Text

-- | Gets the output stream for the current operation.
--   
--   This is the stream that was passed to
--   [func<i><tt>contentSerializeAsync</tt></i>].
contentSerializerGetOutputStream :: (HasCallStack, MonadIO m, IsContentSerializer a) => a -> m OutputStream

-- | Gets the I/O priority for the current operation.
--   
--   This is the priority that was passed to
--   [func<i><tt>contentSerializeAsync</tt></i>].
contentSerializerGetPriority :: (HasCallStack, MonadIO m, IsContentSerializer a) => a -> m Int32

-- | Gets the data that was associated with the current operation.
--   
--   See <a>contentSerializerSetTaskData</a>.
contentSerializerGetTaskData :: (HasCallStack, MonadIO m, IsContentSerializer a) => a -> m (Ptr ())

-- | Gets the user data that was passed when the serializer was registered.
contentSerializerGetUserData :: (HasCallStack, MonadIO m, IsContentSerializer a) => a -> m (Ptr ())

-- | Gets the <tt>GValue</tt> to read the object to serialize from.
contentSerializerGetValue :: (HasCallStack, MonadIO m, IsContentSerializer a) => a -> m GValue

-- | Indicate that the serialization has ended with an error.
--   
--   This function consumes <i><tt>error</tt></i>.
contentSerializerReturnError :: (HasCallStack, MonadIO m, IsContentSerializer a) => a -> GError -> m ()

-- | Indicate that the serialization has been successfully completed.
contentSerializerReturnSuccess :: (HasCallStack, MonadIO m, IsContentSerializer a) => a -> m ()

-- | Associate data with the current serialization operation.
contentSerializerSetTaskData :: (HasCallStack, MonadIO m, IsContentSerializer a) => a -> Ptr () -> DestroyNotify -> m ()
instance GHC.Classes.Eq GI.Gdk.Objects.ContentSerializer.ContentSerializer
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.ContentSerializer.ContentSerializer
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.ContentSerializer.ContentSerializer
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.ContentSerializer.ContentSerializer o) => GI.Gdk.Objects.ContentSerializer.IsContentSerializer o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.ContentSerializer.ContentSerializer)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.ContentSerializer.ContentSerializer
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.ContentSerializer.ContentSerializer


-- | A physical tool associated to a <tt>GdkDevice</tt>.
module GI.Gdk.Objects.DeviceTool

-- | Memory-managed wrapper type.
newtype DeviceTool
DeviceTool :: ManagedPtr DeviceTool -> DeviceTool

-- | Type class for types which can be safely cast to <a>DeviceTool</a>,
--   for instance with <a>toDeviceTool</a>.
class (GObject o, IsDescendantOf DeviceTool o) => IsDeviceTool o

-- | Cast to <a>DeviceTool</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toDeviceTool :: (MonadIO m, IsDeviceTool o) => o -> m DeviceTool

-- | Gets the axes of the tool.
deviceToolGetAxes :: (HasCallStack, MonadIO m, IsDeviceTool a) => a -> m [AxisFlags]

-- | Gets the hardware ID of this tool, or 0 if it's not known.
--   
--   When non-zero, the identifier is unique for the given tool model,
--   meaning that two identical tools will share the same
--   <i><tt>hardwareId</tt></i>, but will have different serial numbers
--   (see <a>deviceToolGetSerial</a>).
--   
--   This is a more concrete (and device specific) method to identify a
--   <tt>GdkDeviceTool</tt> than <a>deviceToolGetToolType</a>, as a tablet
--   may support multiple devices with the same <tt>GdkDeviceToolType</tt>,
--   but different hardware identifiers.
deviceToolGetHardwareId :: (HasCallStack, MonadIO m, IsDeviceTool a) => a -> m Word64

-- | Gets the serial number of this tool.
--   
--   This value can be used to identify a physical tool (eg. a tablet pen)
--   across program executions.
deviceToolGetSerial :: (HasCallStack, MonadIO m, IsDeviceTool a) => a -> m Word64

-- | Gets the <tt>GdkDeviceToolType</tt> of the tool.
deviceToolGetToolType :: (HasCallStack, MonadIO m, IsDeviceTool a) => a -> m DeviceToolType

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>axes</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDeviceToolAxes :: (IsDeviceTool o, MonadIO m) => [AxisFlags] -> m (GValueConstruct o)

-- | Get the value of the “<tt>axes</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> deviceTool #axes
--   </pre>
getDeviceToolAxes :: (MonadIO m, IsDeviceTool o) => o -> m [AxisFlags]

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>hardware-id</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructDeviceToolHardwareId :: (IsDeviceTool o, MonadIO m) => Word64 -> m (GValueConstruct o)

-- | Get the value of the “<tt>hardware-id</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> deviceTool #hardwareId
--   </pre>
getDeviceToolHardwareId :: (MonadIO m, IsDeviceTool o) => o -> m Word64

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>serial</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDeviceToolSerial :: (IsDeviceTool o, MonadIO m) => Word64 -> m (GValueConstruct o)

-- | Get the value of the “<tt>serial</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> deviceTool #serial
--   </pre>
getDeviceToolSerial :: (MonadIO m, IsDeviceTool o) => o -> m Word64

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>tool-type</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructDeviceToolToolType :: (IsDeviceTool o, MonadIO m) => DeviceToolType -> m (GValueConstruct o)

-- | Get the value of the “<tt>tool-type</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> deviceTool #toolType
--   </pre>
getDeviceToolToolType :: (MonadIO m, IsDeviceTool o) => o -> m DeviceToolType
instance GHC.Classes.Eq GI.Gdk.Objects.DeviceTool.DeviceTool
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.DeviceTool.DeviceTool
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.DeviceTool.DeviceTool
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.DeviceTool.DeviceTool o) => GI.Gdk.Objects.DeviceTool.IsDeviceTool o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.DeviceTool.DeviceTool)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.DeviceTool.DeviceTool
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.DeviceTool.DeviceTool


-- | Base type for snapshot operations.
--   
--   The subclass of <tt>GdkSnapshot</tt> used by GTK is
--   <a>GtkSnapshot</a>.
module GI.Gdk.Objects.Snapshot

-- | Memory-managed wrapper type.
newtype Snapshot
Snapshot :: ManagedPtr Snapshot -> Snapshot

-- | Type class for types which can be safely cast to <a>Snapshot</a>, for
--   instance with <a>toSnapshot</a>.
class (GObject o, IsDescendantOf Snapshot o) => IsSnapshot o

-- | Cast to <a>Snapshot</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toSnapshot :: (MonadIO m, IsSnapshot o) => o -> m Snapshot
instance GHC.Classes.Eq GI.Gdk.Objects.Snapshot.Snapshot
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.Snapshot.Snapshot
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.Snapshot.Snapshot
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.Snapshot.Snapshot)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.Snapshot.Snapshot o) => GI.Gdk.Objects.Snapshot.IsSnapshot o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.Snapshot.Snapshot
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.Snapshot.Snapshot


-- | An interface for content that can be painted.
--   
--   The content of a <tt>GdkPaintable</tt> can be painted anywhere at any
--   size without requiring any sort of layout. The interface is inspired
--   by similar concepts elsewhere, such as <a>ClutterContent</a>,
--   <a>HTML/CSS Paint Sources</a>, or <a>SVG Paint Servers</a>.
--   
--   A <tt>GdkPaintable</tt> can be snapshot at any time and size using
--   <a>paintableSnapshot</a>. How the paintable interprets that size and
--   if it scales or centers itself into the given rectangle is
--   implementation defined, though if you are implementing a
--   <tt>GdkPaintable</tt> and don't know what to do, it is suggested that
--   you scale your paintable ignoring any potential aspect ratio.
--   
--   The contents that a <tt>GdkPaintable</tt> produces may depend on the
--   <a>Snapshot</a> passed to it. For example, paintables may decide to
--   use more detailed images on higher resolution screens or when OpenGL
--   is available. A <tt>GdkPaintable</tt> will however always produce the
--   same output for the same snapshot.
--   
--   A <tt>GdkPaintable</tt> may change its contents, meaning that it will
--   now produce a different output with the same snapshot. Once that
--   happens, it will call <a>paintableInvalidateContents</a> which will
--   emit the <a>Paintable::invalidateContents</a> signal. If a paintable
--   is known to never change its contents, it will set the
--   <a>PaintableFlagsStaticContents</a> flag. If a consumer cannot deal
--   with changing contents, it may call <a>paintableGetCurrentImage</a>
--   which will return a static paintable and use that.
--   
--   A paintable can report an intrinsic (or preferred) size or aspect
--   ratio it wishes to be rendered at, though it doesn't have to.
--   Consumers of the interface can use this information to layout
--   thepaintable appropriately. Just like the contents, the size of a
--   paintable can change. A paintable will indicate this by calling
--   <a>paintableInvalidateSize</a> which will emit the
--   <a>Paintable::invalidateSize</a> signal. And just like for contents,
--   if a paintable is known to never change its size, it will set the
--   <a>PaintableFlagsStaticSize</a> flag.
--   
--   Besides API for applications, there are some functions that are only
--   useful for implementing subclasses and should not be used by
--   applications: <a>paintableInvalidateContents</a>,
--   <a>paintableInvalidateSize</a>, <a>paintableNewEmpty</a>.
module GI.Gdk.Interfaces.Paintable

-- | Memory-managed wrapper type.
newtype Paintable
Paintable :: ManagedPtr Paintable -> Paintable

-- | Type class for types which can be safely cast to <a>Paintable</a>, for
--   instance with <a>toPaintable</a>.
class (GObject o, IsDescendantOf Paintable o) => IsPaintable o

-- | Cast to <a>Paintable</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toPaintable :: (MonadIO m, IsPaintable o) => o -> m Paintable

-- | Compute a concrete size for the <tt>GdkPaintable</tt>.
--   
--   Applies the sizing algorithm outlined in the <a>CSS Image spec</a> to
--   the given <i><tt>paintable</tt></i>. See that link for more details.
--   
--   It is not necessary to call this function when both
--   <i><tt>specifiedWidth</tt></i> and <i><tt>specifiedHeight</tt></i> are
--   known, but it is useful to call this function in GtkWidget:measure
--   implementations to compute the other dimension when only one dimension
--   is given.
paintableComputeConcreteSize :: (HasCallStack, MonadIO m, IsPaintable a) => a -> Double -> Double -> Double -> Double -> m (Double, Double)

-- | Gets an immutable paintable for the current contents displayed by
--   <i><tt>paintable</tt></i>.
--   
--   This is useful when you want to retain the current state of an
--   animation, for example to take a screenshot of a running animation.
--   
--   If the <i><tt>paintable</tt></i> is already immutable, it will return
--   itself.
paintableGetCurrentImage :: (HasCallStack, MonadIO m, IsPaintable a) => a -> m Paintable

-- | Get flags for the paintable.
--   
--   This is oftentimes useful for optimizations.
--   
--   See [flags<i><tt>gdk</tt></i>.PaintableFlags] for the flags and what
--   they mean.
paintableGetFlags :: (HasCallStack, MonadIO m, IsPaintable a) => a -> m [PaintableFlags]

-- | Gets the preferred aspect ratio the <i><tt>paintable</tt></i> would
--   like to be displayed at.
--   
--   The aspect ratio is the width divided by the height, so a value of 0.5
--   means that the <i><tt>paintable</tt></i> prefers to be displayed twice
--   as high as it is wide. Consumers of this interface can use this to
--   preserve aspect ratio when displaying the paintable.
--   
--   This is a purely informational value and does not in any way limit the
--   values that may be passed to <a>paintableSnapshot</a>.
--   
--   Usually when a <i><tt>paintable</tt></i> returns nonzero values from
--   <a>paintableGetIntrinsicWidth</a> and
--   <a>paintableGetIntrinsicHeight</a> the aspect ratio should conform to
--   those values, though that is not required.
--   
--   If the <i><tt>paintable</tt></i> does not have a preferred aspect
--   ratio, it returns 0. Negative values are never returned.
paintableGetIntrinsicAspectRatio :: (HasCallStack, MonadIO m, IsPaintable a) => a -> m Double

-- | Gets the preferred height the <i><tt>paintable</tt></i> would like to
--   be displayed at.
--   
--   Consumers of this interface can use this to reserve enough space to
--   draw the paintable.
--   
--   This is a purely informational value and does not in any way limit the
--   values that may be passed to <a>paintableSnapshot</a>.
--   
--   If the <i><tt>paintable</tt></i> does not have a preferred height, it
--   returns 0. Negative values are never returned.
paintableGetIntrinsicHeight :: (HasCallStack, MonadIO m, IsPaintable a) => a -> m Int32

-- | Gets the preferred width the <i><tt>paintable</tt></i> would like to
--   be displayed at.
--   
--   Consumers of this interface can use this to reserve enough space to
--   draw the paintable.
--   
--   This is a purely informational value and does not in any way limit the
--   values that may be passed to <a>paintableSnapshot</a>.
--   
--   If the <i><tt>paintable</tt></i> does not have a preferred width, it
--   returns 0. Negative values are never returned.
paintableGetIntrinsicWidth :: (HasCallStack, MonadIO m, IsPaintable a) => a -> m Int32

-- | Called by implementations of <tt>GdkPaintable</tt> to invalidate their
--   contents.
--   
--   Unless the contents are invalidated, implementations must guarantee
--   that multiple calls of <a>paintableSnapshot</a> produce the same
--   output.
--   
--   This function will emit the <a>Paintable::invalidateContents</a>
--   signal.
--   
--   If a <i><tt>paintable</tt></i> reports the
--   <a>PaintableFlagsStaticContents</a> flag, it must not call this
--   function.
paintableInvalidateContents :: (HasCallStack, MonadIO m, IsPaintable a) => a -> m ()

-- | Called by implementations of <tt>GdkPaintable</tt> to invalidate their
--   size.
--   
--   As long as the size is not invalidated, <i><tt>paintable</tt></i> must
--   return the same values for its intrinsic width, height and aspect
--   ratio.
--   
--   This function will emit the <a>Paintable::invalidateSize</a> signal.
--   
--   If a <i><tt>paintable</tt></i> reports the
--   <a>PaintableFlagsStaticSize</a> flag, it must not call this function.
paintableInvalidateSize :: (HasCallStack, MonadIO m, IsPaintable a) => a -> m ()

-- | Returns a paintable that has the given intrinsic size and draws
--   nothing.
--   
--   This is often useful for implementing the
--   <a>Paintable</a>.<tt><i>get_current_image</i></tt>() virtual function
--   when the paintable is in an incomplete state (like a
--   <a>GtkMediaStream</a> before receiving the first frame).
paintableNewEmpty :: (HasCallStack, MonadIO m) => Int32 -> Int32 -> m Paintable

-- | Snapshots the given paintable with the given <i><tt>width</tt></i> and
--   <i><tt>height</tt></i>.
--   
--   The paintable is drawn at the current (0,0) offset of the
--   <i><tt>snapshot</tt></i>. If <i><tt>width</tt></i> and
--   <i><tt>height</tt></i> are not larger than zero, this function will do
--   nothing.
paintableSnapshot :: (HasCallStack, MonadIO m, IsPaintable a, IsSnapshot b) => a -> b -> Double -> Double -> m ()

-- | Emitted when the contents of the <i><tt>paintable</tt></i> change.
--   
--   Examples for such an event would be videos changing to the next frame
--   or the icon theme for an icon changing.
type PaintableInvalidateContentsCallback = IO ()

-- | Connect a signal handler for the <a>invalidateContents</a> signal, to
--   be run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> paintable #invalidateContents callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterPaintableInvalidateContents :: (IsPaintable a, MonadIO m) => a -> ((?self :: a) => PaintableInvalidateContentsCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>invalidateContents</a> signal, to
--   be run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> paintable #invalidateContents callback
--   </pre>
onPaintableInvalidateContents :: (IsPaintable a, MonadIO m) => a -> ((?self :: a) => PaintableInvalidateContentsCallback) -> m SignalHandlerId

-- | Emitted when the intrinsic size of the <i><tt>paintable</tt></i>
--   changes.
--   
--   This means the values reported by at least one of
--   <a>paintableGetIntrinsicWidth</a>, <a>paintableGetIntrinsicHeight</a>
--   or <a>paintableGetIntrinsicAspectRatio</a> has changed.
--   
--   Examples for such an event would be a paintable displaying the
--   contents of a toplevel surface being resized.
type PaintableInvalidateSizeCallback = IO ()

-- | Connect a signal handler for the <a>invalidateSize</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> paintable #invalidateSize callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterPaintableInvalidateSize :: (IsPaintable a, MonadIO m) => a -> ((?self :: a) => PaintableInvalidateSizeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>invalidateSize</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> paintable #invalidateSize callback
--   </pre>
onPaintableInvalidateSize :: (IsPaintable a, MonadIO m) => a -> ((?self :: a) => PaintableInvalidateSizeCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gdk.Interfaces.Paintable.Paintable
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Interfaces.Paintable.Paintable
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Interfaces.Paintable.Paintable
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Interfaces.Paintable.Paintable)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Interfaces.Paintable.Paintable o) => GI.Gdk.Interfaces.Paintable.IsPaintable o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Interfaces.Paintable.Paintable
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Interfaces.Paintable.Paintable


-- | Provides information to interpret colors and pixels in a variety of
--   ways.
--   
--   They are also known as <a>*color spaces*</a>.
--   
--   Crucially, GTK knows how to convert colors from one color state to
--   another.
--   
--   <tt>GdkColorState</tt> objects are immutable and therefore threadsafe.
--   
--   <i>Since: 4.16</i>
module GI.Gdk.Structs.ColorState

-- | Memory-managed wrapper type.
newtype ColorState
ColorState :: ManagedPtr ColorState -> ColorState

-- | Create a <a>CicpParams</a> representing the colorstate.
--   
--   It is not guaranteed that every <tt>GdkColorState</tt> can be
--   represented with Cicp parameters. If that is the case, this function
--   returns <tt>NULL</tt>.
--   
--   <i>Since: 4.16</i>
colorStateCreateCicpParams :: (HasCallStack, MonadIO m) => ColorState -> m (Maybe CicpParams)

-- | Compares two <tt>GdkColorStates</tt> for equality.
--   
--   Note that this function is not guaranteed to be perfect and two
--   objects describing the same color state may compare not equal.
--   However, different color states will never compare equal.
--   
--   <i>Since: 4.16</i>
colorStateEqual :: (HasCallStack, MonadIO m) => ColorState -> ColorState -> m Bool

-- | Compares two <tt>GdkColorStates</tt> for equivalence.
--   
--   Two objects that represent the same color state should be equivalent,
--   even though they may not be equal in the sense of
--   <a>colorStateEqual</a>.
--   
--   <i>Since: 4.20</i>
colorStateEquivalent :: (HasCallStack, MonadIO m) => ColorState -> ColorState -> m Bool

-- | Returns the color state object representing the oklab color space.
--   
--   This is a perceptually uniform color state.
--   
--   <i>Since: 4.18</i>
colorStateGetOklab :: (HasCallStack, MonadIO m) => m ColorState

-- | Returns the color state object representing the oklch color space.
--   
--   This is the polar variant of oklab, in which the hue is encoded as a
--   polar coordinate.
--   
--   <i>Since: 4.18</i>
colorStateGetOklch :: (HasCallStack, MonadIO m) => m ColorState

-- | Returns the color state object representing the linear rec2100 color
--   space.
--   
--   This color state uses the primaries defined by BT.2020-2 and BT.2100-0
--   and a linear transfer function.
--   
--   It is equivalent to the <a>Cicp</a> tuple 9/8/0/1.
--   
--   See e.g. <a>the CSS HDR Module</a> for details about this colorstate.
--   
--   <i>Since: 4.16</i>
colorStateGetRec2100Linear :: (HasCallStack, MonadIO m) => m ColorState

-- | Returns the color state object representing the rec2100-pq color
--   space.
--   
--   This color state uses the primaries defined by BT.2020-2 and BT.2100-0
--   and the transfer function defined by SMPTE ST 2084 and BT.2100-2.
--   
--   It is equivalent to the <a>Cicp</a> tuple 9/16/0/1.
--   
--   See e.g. <a>the CSS HDR Module</a> for details about this colorstate.
--   
--   <i>Since: 4.16</i>
colorStateGetRec2100Pq :: (HasCallStack, MonadIO m) => m ColorState

-- | Returns the color state object representing the sRGB color space.
--   
--   This color state uses the primaries defined by BT.709-6 and the
--   transfer function defined by IEC 61966-2-1.
--   
--   It is equivalent to the <a>Cicp</a> tuple 1/13/0/1.
--   
--   See e.g. <a>the CSS Color Module</a> for details about this
--   colorstate.
--   
--   <i>Since: 4.16</i>
colorStateGetSrgb :: (HasCallStack, MonadIO m) => m ColorState

-- | Returns the color state object representing the linearized sRGB color
--   space.
--   
--   This color state uses the primaries defined by BT.709-6 and a linear
--   transfer function.
--   
--   It is equivalent to the <a>Cicp</a> tuple 1/8/0/1.
--   
--   See e.g. <a>the CSS Color Module</a> for details about this
--   colorstate.
--   
--   <i>Since: 4.16</i>
colorStateGetSrgbLinear :: (HasCallStack, MonadIO m) => m ColorState

-- | Increase the reference count of <i><tt>self</tt></i>.
--   
--   <i>Since: 4.16</i>
colorStateRef :: (HasCallStack, MonadIO m) => ColorState -> m ColorState

-- | Decrease the reference count of <i><tt>self</tt></i>.
--   
--   Unless <i><tt>self</tt></i> is static, it will be freed when the
--   reference count reaches zero.
--   
--   <i>Since: 4.16</i>
colorStateUnref :: (HasCallStack, MonadIO m) => ColorState -> m ()
instance GHC.Classes.Eq GI.Gdk.Structs.ColorState.ColorState
instance Data.GI.Base.BasicTypes.GBoxed GI.Gdk.Structs.ColorState.ColorState
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Structs.ColorState.ColorState
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Structs.ColorState.ColorState)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.ColorState.ColorState
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Structs.ColorState.ColorState


-- | Refers to pixel data in various forms.
--   
--   It is primarily meant for pixel data that will not change over
--   multiple frames, and will be used for a long time.
--   
--   There are various ways to create <tt>GdkTexture</tt> objects from a
--   <a>Pixbuf</a>, or from bytes stored in memory, a file, or a
--   <a>Resource</a>.
--   
--   The ownership of the pixel data is transferred to the
--   <tt>GdkTexture</tt> instance; you can only make a copy of it, via
--   <a>textureDownload</a>.
--   
--   <tt>GdkTexture</tt> is an immutable object: That means you cannot
--   change anything about it other than increasing the reference count via
--   <a>objectRef</a>, and consequently, it is a threadsafe object.
--   
--   GDK provides a number of threadsafe texture loading functions:
--   <a>textureNewFromResource</a>, <a>textureNewFromBytes</a>,
--   <a>textureNewFromFile</a>, <a>textureNewFromFilename</a>,
--   <a>textureNewForPixbuf</a>. Note that these are meant for loading
--   icons and resources that are shipped with the toolkit or application.
--   It is recommended that you use a dedicated image loading framework
--   such as <a>glycin</a>, if you need to load untrusted image data.
module GI.Gdk.Objects.Texture

-- | Memory-managed wrapper type.
newtype Texture
Texture :: ManagedPtr Texture -> Texture

-- | Type class for types which can be safely cast to <a>Texture</a>, for
--   instance with <a>toTexture</a>.
class (GObject o, IsDescendantOf Texture o) => IsTexture o

-- | Cast to <a>Texture</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toTexture :: (MonadIO m, IsTexture o) => o -> m Texture

-- | Downloads the <i><tt>texture</tt></i> into local memory.
--   
--   This may be an expensive operation, as the actual texture data may
--   reside on a GPU or on a remote display server.
--   
--   The data format of the downloaded data is equivalent to
--   <a>FormatArgb32</a>, so every downloaded pixel requires 4 bytes of
--   memory.
--   
--   Downloading a texture into a Cairo image surface:
--   
--   <h3><i>c code</i></h3>
--   
--   <pre>
--   surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
--                                         gdk_texture_get_width (texture),
--                                         gdk_texture_get_height (texture));
--   gdk_texture_download (texture,
--                         cairo_image_surface_get_data (surface),
--                         cairo_image_surface_get_stride (surface));
--   cairo_surface_mark_dirty (surface);
--   </pre>
--   
--   For more flexible download capabilities, see <a>TextureDownloader</a>.
textureDownload :: (HasCallStack, MonadIO m, IsTexture a) => a -> Ptr Word8 -> CSize -> m ()

-- | Returns the color state associated with the texture.
--   
--   <i>Since: 4.16</i>
textureGetColorState :: (HasCallStack, MonadIO m, IsTexture a) => a -> m ColorState

-- | Gets the memory format most closely associated with the data of the
--   texture.
--   
--   Note that it may not be an exact match for texture data stored on the
--   GPU or with compression.
--   
--   The format can give an indication about the bit depth and opacity of
--   the texture and is useful to determine the best format for downloading
--   the texture.
--   
--   <i>Since: 4.10</i>
textureGetFormat :: (HasCallStack, MonadIO m, IsTexture a) => a -> m MemoryFormat

-- | Returns the height of the <i><tt>texture</tt></i>, in pixels.
textureGetHeight :: (HasCallStack, MonadIO m, IsTexture a) => a -> m Int32

-- | Returns the width of <i><tt>texture</tt></i>, in pixels.
textureGetWidth :: (HasCallStack, MonadIO m, IsTexture a) => a -> m Int32

-- | Creates a new texture object representing the <tt>GdkPixbuf</tt>.
--   
--   This function is threadsafe, so that you can e.g. use GTask and
--   <a>taskRunInThread</a> to avoid blocking the main thread while loading
--   a big image.

-- | <i>Deprecated: (Since version 4.20)Use e.g. libglycin, which can load
--   many imageformats into a <tt>GdkTexture</tt></i>
textureNewForPixbuf :: (HasCallStack, MonadIO m, IsPixbuf a) => a -> m Texture

-- | Creates a new texture by loading an image from memory,
--   
--   The file format is detected automatically. The supported formats are
--   PNG, JPEG and TIFF, though more formats might be available.
--   
--   If <tt>NULL</tt> is returned, then <i><tt>error</tt></i> will be set.
--   
--   This function is threadsafe, so that you can e.g. use GTask and
--   <a>taskRunInThread</a> to avoid blocking the main thread while loading
--   a big image.
--   
--   ::: warning Note that this function should not be used with untrusted
--   data. Use a proper image loading framework such as libglycin, which
--   can load many image formats into a <tt>GdkTexture</tt>.
--   
--   <i>Since: 4.6</i>
textureNewFromBytes :: (HasCallStack, MonadIO m) => Bytes -> m Texture

-- | Creates a new texture by loading an image from a file.
--   
--   The file format is detected automatically. The supported formats are
--   PNG, JPEG and TIFF, though more formats might be available.
--   
--   If <tt>NULL</tt> is returned, then <i><tt>error</tt></i> will be set.
--   
--   This function is threadsafe, so that you can e.g. use GTask and
--   <a>taskRunInThread</a> to avoid blocking the main thread while loading
--   a big image.
--   
--   ::: warning Note that this function should not be used with untrusted
--   data. Use a proper image loading framework such as libglycin, which
--   can load many image formats into a <tt>GdkTexture</tt>.
textureNewFromFile :: (HasCallStack, MonadIO m, IsFile a) => a -> m Texture

-- | Creates a new texture by loading an image from a file.
--   
--   The file format is detected automatically. The supported formats are
--   PNG, JPEG and TIFF, though more formats might be available.
--   
--   If <tt>NULL</tt> is returned, then <i><tt>error</tt></i> will be set.
--   
--   This function is threadsafe, so that you can e.g. use GTask and
--   <a>taskRunInThread</a> to avoid blocking the main thread while loading
--   a big image.
--   
--   ::: warning Note that this function should not be used with untrusted
--   data. Use a proper image loading framework such as libglycin, which
--   can load many image formats into a <tt>GdkTexture</tt>.
--   
--   <i>Since: 4.6</i>
textureNewFromFilename :: (HasCallStack, MonadIO m) => [Char] -> m Texture

-- | Creates a new texture by loading an image from a resource.
--   
--   The file format is detected automatically. The supported formats are
--   PNG, JPEG and TIFF, though more formats might be available.
--   
--   It is a fatal error if <i><tt>resourcePath</tt></i> does not specify a
--   valid image resource and the program will abort if that happens. If
--   you are unsure about the validity of a resource, use
--   <a>textureNewFromFile</a> to load it.
--   
--   This function is threadsafe, so that you can e.g. use GTask and
--   <a>taskRunInThread</a> to avoid blocking the main thread while loading
--   a big image.
textureNewFromResource :: (HasCallStack, MonadIO m) => Text -> m Texture

-- | Store the given <i><tt>texture</tt></i> to the
--   <i><tt>filename</tt></i> as a PNG file.
--   
--   This is a utility function intended for debugging and testing. If you
--   want more control over formats, proper error handling or want to store
--   to a <a>File</a> or other location, you might want to use
--   <a>textureSaveToPngBytes</a> or look into the libglycin library.
textureSaveToPng :: (HasCallStack, MonadIO m, IsTexture a) => a -> [Char] -> m Bool

-- | Store the given <i><tt>texture</tt></i> in memory as a PNG file.
--   
--   Use <a>textureNewFromBytes</a> to read it back.
--   
--   If you want to serialize a texture, this is a convenient and portable
--   way to do that.
--   
--   If you need more control over the generated image, such as attaching
--   metadata, you should look into an image handling library such as the
--   libglycin library.
--   
--   If you are dealing with high dynamic range float data, you might also
--   want to consider <a>textureSaveToTiffBytes</a> instead.
--   
--   <i>Since: 4.6</i>
textureSaveToPngBytes :: (HasCallStack, MonadIO m, IsTexture a) => a -> m Bytes

-- | Store the given <i><tt>texture</tt></i> to the
--   <i><tt>filename</tt></i> as a TIFF file.
--   
--   GTK will attempt to store data without loss.
--   
--   <i>Since: 4.6</i>
textureSaveToTiff :: (HasCallStack, MonadIO m, IsTexture a) => a -> [Char] -> m Bool

-- | Store the given <i><tt>texture</tt></i> in memory as a TIFF file.
--   
--   Use <a>textureNewFromBytes</a> to read it back.
--   
--   This function is intended to store a representation of the texture's
--   data that is as accurate as possible. This is particularly relevant
--   when working with high dynamic range images and floating-point texture
--   data.
--   
--   If that is not your concern and you are interested in a smaller size
--   and a more portable format, you might want to use
--   <a>textureSaveToPngBytes</a>.
--   
--   <i>Since: 4.6</i>
textureSaveToTiffBytes :: (HasCallStack, MonadIO m, IsTexture a) => a -> m Bytes

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>color-state</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructTextureColorState :: (IsTexture o, MonadIO m) => ColorState -> m (GValueConstruct o)

-- | Get the value of the “<tt>color-state</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> texture #colorState
--   </pre>
getTextureColorState :: (MonadIO m, IsTexture o) => o -> m ColorState

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>height</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructTextureHeight :: (IsTexture o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>height</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> texture #height
--   </pre>
getTextureHeight :: (MonadIO m, IsTexture o) => o -> m Int32

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>width</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructTextureWidth :: (IsTexture o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>width</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> texture #width
--   </pre>
getTextureWidth :: (MonadIO m, IsTexture o) => o -> m Int32
instance GHC.Classes.Eq GI.Gdk.Objects.Texture.Texture
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.Texture.Texture
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.Texture.Texture
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.Texture.Texture)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.Texture.Texture o) => GI.Gdk.Objects.Texture.IsTexture o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.Texture.Texture
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.Texture.Texture


-- | Constructs <a>Texture</a> objects from system memory provided via
--   <a>Bytes</a>.
--   
--   The operation is quite simple: Create a texture builder, set all the
--   necessary properties - keep in mind that the properties
--   <a>MemoryTextureBuilder:bytes</a>, <a>MemoryTextureBuilder:stride</a>,
--   <a>MemoryTextureBuilder:width</a>, and
--   <a>MemoryTextureBuilder:height</a> are mandatory - and then call
--   <a>memoryTextureBuilderBuild</a> to create the new texture.
--   
--   <tt>GdkMemoryTextureBuilder</tt> can be used for quick one-shot
--   construction of textures as well as kept around and reused to
--   construct multiple textures.
--   
--   <i>Since: 4.16</i>
module GI.Gdk.Objects.MemoryTextureBuilder

-- | Memory-managed wrapper type.
newtype MemoryTextureBuilder
MemoryTextureBuilder :: ManagedPtr MemoryTextureBuilder -> MemoryTextureBuilder

-- | Type class for types which can be safely cast to
--   <a>MemoryTextureBuilder</a>, for instance with
--   <a>toMemoryTextureBuilder</a>.
class (GObject o, IsDescendantOf MemoryTextureBuilder o) => IsMemoryTextureBuilder o

-- | Cast to <a>MemoryTextureBuilder</a>, for types for which this is known
--   to be safe. For general casts, use <a>castTo</a>.
toMemoryTextureBuilder :: (MonadIO m, IsMemoryTextureBuilder o) => o -> m MemoryTextureBuilder

-- | Builds a new <tt>GdkTexture</tt> with the values set up in the
--   builder.
--   
--   Note that it is a programming error to call this function if any
--   mandatory property has not been set.
--   
--   It is possible to call this function multiple times to create multiple
--   textures, possibly with changing properties in between.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderBuild :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> m Texture

-- | Gets the bytes previously set via <a>memoryTextureBuilderSetBytes</a>
--   or <a>Nothing</a> if none was set.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderGetBytes :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> m (Maybe Bytes)

-- | Gets the colorstate previously set via
--   <a>memoryTextureBuilderSetColorState</a>.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderGetColorState :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> m ColorState

-- | Gets the format previously set via
--   <a>memoryTextureBuilderSetFormat</a>.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderGetFormat :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> m MemoryFormat

-- | Gets the height previously set via
--   <a>memoryTextureBuilderSetHeight</a> or 0 if the height wasn't set.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderGetHeight :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> m Int32

-- | Gets the offset previously set via
--   <a>memoryTextureBuilderSetOffset</a>.
--   
--   <i>Since: 4.20</i>
memoryTextureBuilderGetOffset :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> Word32 -> m CSize

-- | Gets the stride previously set via
--   <a>memoryTextureBuilderSetStride</a>.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderGetStride :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> m CSize

-- | Gets the stride previously set via
--   <a>memoryTextureBuilderSetStrideForPlane</a>.
--   
--   <i>Since: 4.20</i>
memoryTextureBuilderGetStrideForPlane :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> Word32 -> m CSize

-- | Gets the region previously set via
--   <a>memoryTextureBuilderSetUpdateRegion</a> or <a>Nothing</a> if none
--   was set.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderGetUpdateRegion :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> m (Maybe Region)

-- | Gets the texture previously set via
--   <a>memoryTextureBuilderSetUpdateTexture</a> or <a>Nothing</a> if none
--   was set.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderGetUpdateTexture :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> m (Maybe Texture)

-- | Gets the width previously set via <a>memoryTextureBuilderSetWidth</a>
--   or 0 if the width wasn't set.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderGetWidth :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> m Int32

-- | Creates a new texture builder.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderNew :: (HasCallStack, MonadIO m) => m MemoryTextureBuilder

-- | Sets the data to be shown but the texture.
--   
--   The bytes must be set before calling <a>memoryTextureBuilderBuild</a>.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderSetBytes :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> Maybe Bytes -> m ()

-- | Sets the colorstate describing the data.
--   
--   By default, the sRGB colorstate is used. If you don't know what
--   colorstates are, this is probably the right thing.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderSetColorState :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> ColorState -> m ()

-- | Sets the format of the bytes.
--   
--   The default is <tt>GDK_MEMORY_R8G8B8A8_PREMULTIPLIED</tt>.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderSetFormat :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> MemoryFormat -> m ()

-- | Sets the height of the texture.
--   
--   The height must be set before calling <a>memoryTextureBuilderBuild</a>
--   and conform to size requirements of the provided format.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderSetHeight :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> Int32 -> m ()

-- | Sets the offset of the texture for <i><tt>plane</tt></i>.
--   
--   <i>Since: 4.20</i>
memoryTextureBuilderSetOffset :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> Word32 -> CSize -> m ()

-- | Sets the rowstride of the bytes used.
--   
--   The rowstride must be set before calling
--   <a>memoryTextureBuilderBuild</a>.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderSetStride :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> CSize -> m ()

-- | Sets the stride of the texture for <i><tt>plane</tt></i>.
--   
--   <i>Since: 4.20</i>
memoryTextureBuilderSetStrideForPlane :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> Word32 -> CSize -> m ()

-- | Sets the region to be updated by this texture.
--   
--   Together with <a>MemoryTextureBuilder:updateTexture</a>, this
--   describes an update of a previous texture.
--   
--   When rendering animations of large textures, it is possible that
--   consecutive textures are only updating contents in parts of the
--   texture. It is then possible to describe this update via these two
--   properties, so that GTK can avoid rerendering parts that did not
--   change.
--   
--   An example would be a screen recording where only the mouse pointer
--   moves.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderSetUpdateRegion :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> Maybe Region -> m ()

-- | Sets the texture to be updated by this texture.
--   
--   See <a>memoryTextureBuilderSetUpdateRegion</a> for an explanation.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderSetUpdateTexture :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a, IsTexture b) => a -> Maybe b -> m ()

-- | Sets the width of the texture.
--   
--   The width must be set before calling <a>memoryTextureBuilderBuild</a>
--   and conform to size requirements of the provided format.
--   
--   <i>Since: 4.16</i>
memoryTextureBuilderSetWidth :: (HasCallStack, MonadIO m, IsMemoryTextureBuilder a) => a -> Int32 -> m ()

-- | Set the value of the “<tt>bytes</tt>” property to <a>Nothing</a>. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #bytes
--   </pre>
clearMemoryTextureBuilderBytes :: (MonadIO m, IsMemoryTextureBuilder o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>bytes</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructMemoryTextureBuilderBytes :: (IsMemoryTextureBuilder o, MonadIO m) => Bytes -> m (GValueConstruct o)

-- | Get the value of the “<tt>bytes</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> memoryTextureBuilder #bytes
--   </pre>
getMemoryTextureBuilderBytes :: (MonadIO m, IsMemoryTextureBuilder o) => o -> m (Maybe Bytes)

-- | Set the value of the “<tt>bytes</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> memoryTextureBuilder [ #bytes <a>:=</a> value ]
--   </pre>
setMemoryTextureBuilderBytes :: (MonadIO m, IsMemoryTextureBuilder o) => o -> Bytes -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>color-state</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructMemoryTextureBuilderColorState :: (IsMemoryTextureBuilder o, MonadIO m) => ColorState -> m (GValueConstruct o)

-- | Get the value of the “<tt>color-state</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> memoryTextureBuilder #colorState
--   </pre>
getMemoryTextureBuilderColorState :: (MonadIO m, IsMemoryTextureBuilder o) => o -> m ColorState

-- | Set the value of the “<tt>color-state</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> memoryTextureBuilder [ #colorState <a>:=</a> value ]
--   </pre>
setMemoryTextureBuilderColorState :: (MonadIO m, IsMemoryTextureBuilder o) => o -> ColorState -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>format</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructMemoryTextureBuilderFormat :: (IsMemoryTextureBuilder o, MonadIO m) => MemoryFormat -> m (GValueConstruct o)

-- | Get the value of the “<tt>format</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> memoryTextureBuilder #format
--   </pre>
getMemoryTextureBuilderFormat :: (MonadIO m, IsMemoryTextureBuilder o) => o -> m MemoryFormat

-- | Set the value of the “<tt>format</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> memoryTextureBuilder [ #format <a>:=</a> value ]
--   </pre>
setMemoryTextureBuilderFormat :: (MonadIO m, IsMemoryTextureBuilder o) => o -> MemoryFormat -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>height</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructMemoryTextureBuilderHeight :: (IsMemoryTextureBuilder o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>height</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> memoryTextureBuilder #height
--   </pre>
getMemoryTextureBuilderHeight :: (MonadIO m, IsMemoryTextureBuilder o) => o -> m Int32

-- | Set the value of the “<tt>height</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> memoryTextureBuilder [ #height <a>:=</a> value ]
--   </pre>
setMemoryTextureBuilderHeight :: (MonadIO m, IsMemoryTextureBuilder o) => o -> Int32 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>stride</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructMemoryTextureBuilderStride :: (IsMemoryTextureBuilder o, MonadIO m) => Word64 -> m (GValueConstruct o)

-- | Get the value of the “<tt>stride</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> memoryTextureBuilder #stride
--   </pre>
getMemoryTextureBuilderStride :: (MonadIO m, IsMemoryTextureBuilder o) => o -> m Word64

-- | Set the value of the “<tt>stride</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> memoryTextureBuilder [ #stride <a>:=</a> value ]
--   </pre>
setMemoryTextureBuilderStride :: (MonadIO m, IsMemoryTextureBuilder o) => o -> Word64 -> m ()

-- | Set the value of the “<tt>update-region</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #updateRegion
--   </pre>
clearMemoryTextureBuilderUpdateRegion :: (MonadIO m, IsMemoryTextureBuilder o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>update-region</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructMemoryTextureBuilderUpdateRegion :: (IsMemoryTextureBuilder o, MonadIO m) => Region -> m (GValueConstruct o)

-- | Get the value of the “<tt>update-region</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> memoryTextureBuilder #updateRegion
--   </pre>
getMemoryTextureBuilderUpdateRegion :: (MonadIO m, IsMemoryTextureBuilder o) => o -> m (Maybe Region)

-- | Set the value of the “<tt>update-region</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> memoryTextureBuilder [ #updateRegion <a>:=</a> value ]
--   </pre>
setMemoryTextureBuilderUpdateRegion :: (MonadIO m, IsMemoryTextureBuilder o) => o -> Region -> m ()

-- | Set the value of the “<tt>update-texture</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #updateTexture
--   </pre>
clearMemoryTextureBuilderUpdateTexture :: (MonadIO m, IsMemoryTextureBuilder o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>update-texture</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructMemoryTextureBuilderUpdateTexture :: (IsMemoryTextureBuilder o, MonadIO m, IsTexture a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>update-texture</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> memoryTextureBuilder #updateTexture
--   </pre>
getMemoryTextureBuilderUpdateTexture :: (MonadIO m, IsMemoryTextureBuilder o) => o -> m (Maybe Texture)

-- | Set the value of the “<tt>update-texture</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> memoryTextureBuilder [ #updateTexture <a>:=</a> value ]
--   </pre>
setMemoryTextureBuilderUpdateTexture :: (MonadIO m, IsMemoryTextureBuilder o, IsTexture a) => o -> a -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>width</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructMemoryTextureBuilderWidth :: (IsMemoryTextureBuilder o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>width</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> memoryTextureBuilder #width
--   </pre>
getMemoryTextureBuilderWidth :: (MonadIO m, IsMemoryTextureBuilder o) => o -> m Int32

-- | Set the value of the “<tt>width</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> memoryTextureBuilder [ #width <a>:=</a> value ]
--   </pre>
setMemoryTextureBuilderWidth :: (MonadIO m, IsMemoryTextureBuilder o) => o -> Int32 -> m ()
instance GHC.Classes.Eq GI.Gdk.Objects.MemoryTextureBuilder.MemoryTextureBuilder
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.MemoryTextureBuilder.MemoryTextureBuilder
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.MemoryTextureBuilder.MemoryTextureBuilder
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.MemoryTextureBuilder.MemoryTextureBuilder)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.MemoryTextureBuilder.MemoryTextureBuilder o) => GI.Gdk.Objects.MemoryTextureBuilder.IsMemoryTextureBuilder o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.MemoryTextureBuilder.MemoryTextureBuilder
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.MemoryTextureBuilder.MemoryTextureBuilder


-- | A <tt>GdkTexture</tt> representing image data in memory.
module GI.Gdk.Objects.MemoryTexture

-- | Memory-managed wrapper type.
newtype MemoryTexture
MemoryTexture :: ManagedPtr MemoryTexture -> MemoryTexture

-- | Type class for types which can be safely cast to <a>MemoryTexture</a>,
--   for instance with <a>toMemoryTexture</a>.
class (GObject o, IsDescendantOf MemoryTexture o) => IsMemoryTexture o

-- | Cast to <a>MemoryTexture</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toMemoryTexture :: (MonadIO m, IsMemoryTexture o) => o -> m MemoryTexture

-- | Creates a new texture for a blob of image data.
--   
--   The <tt>GBytes</tt> must contain <i><tt>stride</tt></i> ×
--   <i><tt>height</tt></i> pixels in the given format.
memoryTextureNew :: (HasCallStack, MonadIO m) => Int32 -> Int32 -> MemoryFormat -> Bytes -> CSize -> m MemoryTexture
instance GHC.Classes.Eq GI.Gdk.Objects.MemoryTexture.MemoryTexture
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.MemoryTexture.MemoryTexture
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.MemoryTexture.MemoryTexture
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.MemoryTexture.MemoryTexture)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.MemoryTexture.MemoryTexture o) => GI.Gdk.Objects.MemoryTexture.IsMemoryTexture o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.MemoryTexture.MemoryTexture
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.MemoryTexture.MemoryTexture


-- | A <tt>GdkTexture</tt> representing a DMA buffer.
--   
--   To create a <tt>GdkDmabufTexture</tt>, use the auxiliary
--   <a>DmabufTextureBuilder</a> object.
--   
--   Dma-buf textures can only be created on Linux.
--   
--   <i>Since: 4.14</i>
module GI.Gdk.Objects.DmabufTexture

-- | Memory-managed wrapper type.
newtype DmabufTexture
DmabufTexture :: ManagedPtr DmabufTexture -> DmabufTexture

-- | Type class for types which can be safely cast to <a>DmabufTexture</a>,
--   for instance with <a>toDmabufTexture</a>.
class (GObject o, IsDescendantOf DmabufTexture o) => IsDmabufTexture o

-- | Cast to <a>DmabufTexture</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toDmabufTexture :: (MonadIO m, IsDmabufTexture o) => o -> m DmabufTexture
instance GHC.Classes.Eq GI.Gdk.Objects.DmabufTexture.DmabufTexture
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.DmabufTexture.DmabufTexture
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.DmabufTexture.DmabufTexture
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.DmabufTexture.DmabufTexture o) => GI.Gdk.Objects.DmabufTexture.IsDmabufTexture o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.DmabufTexture.DmabufTexture)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.DmabufTexture.DmabufTexture
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.DmabufTexture.DmabufTexture


-- | Contains the parameters that define a colorstate with cicp parameters.
--   
--   Cicp parameters are specified in the ITU-T H.273 <a>specification</a>.
--   
--   See the documentation of individual properties for supported values.
--   
--   The 'unspecified' value (2) is not treated in any special way, and
--   must be replaced by a different value before creating a color state.
--   
--   <tt>GdkCicpParams</tt> can be used as a builder object to construct a
--   color state from Cicp data with <a>cicpParamsBuildColorState</a>. The
--   function will return an error if the given parameters are not
--   supported.
--   
--   You can obtain a <tt>GdkCicpParams</tt> object from a color state with
--   <a>colorStateCreateCicpParams</a>. This can be used to create a
--   variant of a color state, by changing just one of the cicp parameters,
--   or just to obtain information about the color state.
--   
--   <i>Since: 4.16</i>
module GI.Gdk.Objects.CicpParams

-- | Memory-managed wrapper type.
newtype CicpParams
CicpParams :: ManagedPtr CicpParams -> CicpParams

-- | Type class for types which can be safely cast to <a>CicpParams</a>,
--   for instance with <a>toCicpParams</a>.
class (GObject o, IsDescendantOf CicpParams o) => IsCicpParams o

-- | Cast to <a>CicpParams</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toCicpParams :: (MonadIO m, IsCicpParams o) => o -> m CicpParams

-- | Creates a new <tt>GdkColorState</tt> object for the cicp parameters in
--   <i><tt>self</tt></i>.
--   
--   Note that this may fail if the cicp parameters in <i><tt>self</tt></i>
--   are not supported by GTK. In that case, <tt>NULL</tt> is returned, and
--   <i><tt>error</tt></i> is set with an error message that can be
--   presented to the user.
--   
--   <i>Since: 4.16</i>
cicpParamsBuildColorState :: (HasCallStack, MonadIO m, IsCicpParams a) => a -> m ColorState

-- | Returns the value of the color-primaries property of
--   <i><tt>self</tt></i>.
--   
--   <i>Since: 4.16</i>
cicpParamsGetColorPrimaries :: (HasCallStack, MonadIO m, IsCicpParams a) => a -> m Word32

-- | Gets the matrix-coefficients property of <i><tt>self</tt></i>.
--   
--   <i>Since: 4.16</i>
cicpParamsGetMatrixCoefficients :: (HasCallStack, MonadIO m, IsCicpParams a) => a -> m Word32

-- | Gets the range property of <i><tt>self</tt></i>.
--   
--   <i>Since: 4.16</i>
cicpParamsGetRange :: (HasCallStack, MonadIO m, IsCicpParams a) => a -> m CicpRange

-- | Gets the transfer-function property of <i><tt>self</tt></i>.
--   
--   <i>Since: 4.16</i>
cicpParamsGetTransferFunction :: (HasCallStack, MonadIO m, IsCicpParams a) => a -> m Word32

-- | Creates a new <tt>GdkCicpParams</tt> object.
--   
--   The initial values of the properties are the values for "undefined"
--   and need to be set before a color state object can be built.
--   
--   <i>Since: 4.16</i>
cicpParamsNew :: (HasCallStack, MonadIO m) => m CicpParams

-- | Sets the color-primaries property of <i><tt>self</tt></i>.
--   
--   <i>Since: 4.16</i>
cicpParamsSetColorPrimaries :: (HasCallStack, MonadIO m, IsCicpParams a) => a -> Word32 -> m ()

-- | <i><tt>self</tt></i> a <tt>GdkCicpParams</tt> Sets the
--   matrix-coefficients property of <i><tt>self</tt></i>.
--   
--   <i>Since: 4.16</i>
cicpParamsSetMatrixCoefficients :: (HasCallStack, MonadIO m, IsCicpParams a) => a -> Word32 -> m ()

-- | Sets the range property of <i><tt>self</tt></i>
--   
--   <i>Since: 4.16</i>
cicpParamsSetRange :: (HasCallStack, MonadIO m, IsCicpParams a) => a -> CicpRange -> m ()

-- | Sets the transfer-function property of <i><tt>self</tt></i>.
--   
--   <i>Since: 4.16</i>
cicpParamsSetTransferFunction :: (HasCallStack, MonadIO m, IsCicpParams a) => a -> Word32 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>color-primaries</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructCicpParamsColorPrimaries :: (IsCicpParams o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>color-primaries</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> cicpParams #colorPrimaries
--   </pre>
getCicpParamsColorPrimaries :: (MonadIO m, IsCicpParams o) => o -> m Word32

-- | Set the value of the “<tt>color-primaries</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> cicpParams [ #colorPrimaries <a>:=</a> value ]
--   </pre>
setCicpParamsColorPrimaries :: (MonadIO m, IsCicpParams o) => o -> Word32 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>matrix-coefficients</tt>” property. This is rarely needed
--   directly, but it is used by <a>new</a>.
constructCicpParamsMatrixCoefficients :: (IsCicpParams o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>matrix-coefficients</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> cicpParams #matrixCoefficients
--   </pre>
getCicpParamsMatrixCoefficients :: (MonadIO m, IsCicpParams o) => o -> m Word32

-- | Set the value of the “<tt>matrix-coefficients</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> cicpParams [ #matrixCoefficients <a>:=</a> value ]
--   </pre>
setCicpParamsMatrixCoefficients :: (MonadIO m, IsCicpParams o) => o -> Word32 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>range</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructCicpParamsRange :: (IsCicpParams o, MonadIO m) => CicpRange -> m (GValueConstruct o)

-- | Get the value of the “<tt>range</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> cicpParams #range
--   </pre>
getCicpParamsRange :: (MonadIO m, IsCicpParams o) => o -> m CicpRange

-- | Set the value of the “<tt>range</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> cicpParams [ #range <a>:=</a> value ]
--   </pre>
setCicpParamsRange :: (MonadIO m, IsCicpParams o) => o -> CicpRange -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>transfer-function</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructCicpParamsTransferFunction :: (IsCicpParams o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>transfer-function</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> cicpParams #transferFunction
--   </pre>
getCicpParamsTransferFunction :: (MonadIO m, IsCicpParams o) => o -> m Word32

-- | Set the value of the “<tt>transfer-function</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> cicpParams [ #transferFunction <a>:=</a> value ]
--   </pre>
setCicpParamsTransferFunction :: (MonadIO m, IsCicpParams o) => o -> Word32 -> m ()
instance GHC.Classes.Eq GI.Gdk.Objects.CicpParams.CicpParams
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.CicpParams.CicpParams
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.CicpParams.CicpParams
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.CicpParams.CicpParams o) => GI.Gdk.Objects.CicpParams.IsCicpParams o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.CicpParams.CicpParams)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.CicpParams.CicpParams
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.CicpParams.CicpParams


module GI.Gdk.Callbacks

-- | Type for the callback on the (unwrapped) C side.
type C_ContentDeserializeFunc = Ptr ContentDeserializer -> IO ()

-- | The type of a function that can be registered with
--   <a>contentRegisterDeserializer</a>.
--   
--   When the function gets called to operate on content, it can call
--   functions on the <i><tt>deserializer</tt></i> object to obtain the
--   mime type, input stream, user data, etc. for its operation.
type ContentDeserializeFunc = ContentDeserializer -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_ContentDeserializeFunc :: (HasCallStack, MonadIO m, IsContentDeserializer a) => FunPtr C_ContentDeserializeFunc -> a -> m ()

-- | Wrap the callback into a <a>GClosure</a>.
genClosure_ContentDeserializeFunc :: MonadIO m => ContentDeserializeFunc -> m (GClosure C_ContentDeserializeFunc)

-- | Generate a function pointer callable from C code, from a
--   <a>C_ContentDeserializeFunc</a>.
mk_ContentDeserializeFunc :: C_ContentDeserializeFunc -> IO (FunPtr C_ContentDeserializeFunc)

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>ContentDeserializeFunc</a></tt>.
noContentDeserializeFunc :: Maybe ContentDeserializeFunc

-- | Wrap a <a>ContentDeserializeFunc</a> into a
--   <a>C_ContentDeserializeFunc</a>.
wrap_ContentDeserializeFunc :: Maybe (Ptr (FunPtr C_ContentDeserializeFunc)) -> ContentDeserializeFunc -> C_ContentDeserializeFunc

-- | Type for the callback on the (unwrapped) C side.
type C_ContentSerializeFunc = Ptr ContentSerializer -> IO ()

-- | The type of a function that can be registered with
--   <a>contentRegisterSerializer</a>.
--   
--   When the function gets called to operate on content, it can call
--   functions on the <i><tt>serializer</tt></i> object to obtain the mime
--   type, output stream, user data, etc. for its operation.
type ContentSerializeFunc = ContentSerializer -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_ContentSerializeFunc :: (HasCallStack, MonadIO m, IsContentSerializer a) => FunPtr C_ContentSerializeFunc -> a -> m ()

-- | Wrap the callback into a <a>GClosure</a>.
genClosure_ContentSerializeFunc :: MonadIO m => ContentSerializeFunc -> m (GClosure C_ContentSerializeFunc)

-- | Generate a function pointer callable from C code, from a
--   <a>C_ContentSerializeFunc</a>.
mk_ContentSerializeFunc :: C_ContentSerializeFunc -> IO (FunPtr C_ContentSerializeFunc)

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>ContentSerializeFunc</a></tt>.
noContentSerializeFunc :: Maybe ContentSerializeFunc

-- | Wrap a <a>ContentSerializeFunc</a> into a
--   <a>C_ContentSerializeFunc</a>.
wrap_ContentSerializeFunc :: Maybe (Ptr (FunPtr C_ContentSerializeFunc)) -> ContentSerializeFunc -> C_ContentSerializeFunc

-- | Type for the callback on the (unwrapped) C side.
type C_CursorGetTextureCallback = Ptr Cursor -> Int32 -> CDouble -> Ptr Int32 -> Ptr Int32 -> Ptr Int32 -> Ptr Int32 -> Ptr () -> IO Ptr Texture

-- | The type of callback used by a dynamic <tt>GdkCursor</tt> to generate
--   a texture for the cursor image at the given <i><tt>cursorSize</tt></i>
--   and <i><tt>scale</tt></i>.
--   
--   The actual cursor size in application pixels may be different from
--   <i><tt>cursorSize</tt></i> x <i><tt>cursorSize</tt></i>, and will be
--   returned in <i><tt>width</tt></i>, <i><tt>height</tt></i>. The
--   returned texture should have a size that corresponds to the actual
--   cursor size, in device pixels (i.e. application pixels, multiplied by
--   <i><tt>scale</tt></i>).
--   
--   This function may fail and return <tt>NULL</tt>, in which case the
--   fallback cursor will be used.
type CursorGetTextureCallback = Cursor -> Int32 -> Double -> Ptr () -> IO (Maybe Texture, Int32, Int32, Int32, Int32)

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_CursorGetTextureCallback :: (HasCallStack, MonadIO m, IsCursor a) => FunPtr C_CursorGetTextureCallback -> a -> Int32 -> Double -> Ptr () -> m (Maybe Texture, Int32, Int32, Int32, Int32)

-- | Wrap the callback into a <a>GClosure</a>.
genClosure_CursorGetTextureCallback :: MonadIO m => CursorGetTextureCallback -> m (GClosure C_CursorGetTextureCallback)

-- | Generate a function pointer callable from C code, from a
--   <a>C_CursorGetTextureCallback</a>.
mk_CursorGetTextureCallback :: C_CursorGetTextureCallback -> IO (FunPtr C_CursorGetTextureCallback)

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>CursorGetTextureCallback</a></tt>.
noCursorGetTextureCallback :: Maybe CursorGetTextureCallback

-- | Wrap a <a>CursorGetTextureCallback</a> into a
--   <a>C_CursorGetTextureCallback</a>.
wrap_CursorGetTextureCallback :: Maybe (Ptr (FunPtr C_CursorGetTextureCallback)) -> CursorGetTextureCallback -> C_CursorGetTextureCallback


-- | Used to create and destroy cursors.
--   
--   Cursors are immutable objects, so once you created them, there is no
--   way to modify them later. You should create a new cursor when you want
--   to change something about it.
--   
--   Cursors by themselves are not very interesting: they must be bound to
--   a window for users to see them. This is done with
--   <a>surfaceSetCursor</a> or <a>surfaceSetDeviceCursor</a>. Applications
--   will typically use higher-level GTK functions such as
--   <a>gtk_widget_set_cursor()</a> instead.
--   
--   Cursors are not bound to a given <a>Display</a>, so they can be
--   shared. However, the appearance of cursors may vary when used on
--   different platforms.
--   
--   <h2>Named and texture cursors</h2>
--   
--   There are multiple ways to create cursors. The platform's own cursors
--   can be created with <a>cursorNewFromName</a>. That function lists the
--   commonly available names that are shared with the CSS specification.
--   Other names may be available, depending on the platform in use. On
--   some platforms, what images are used for named cursors may be
--   influenced by the cursor theme.
--   
--   Another option to create a cursor is to use
--   <a>cursorNewFromTexture</a> and provide an image to use for the
--   cursor.
--   
--   To ease work with unsupported cursors, a fallback cursor can be
--   provided. If a <a>Surface</a> cannot use a cursor because of the
--   reasons mentioned above, it will try the fallback cursor. Fallback
--   cursors can themselves have fallback cursors again, so it is possible
--   to provide a chain of progressively easier to support cursors. If none
--   of the provided cursors can be supported, the default cursor will be
--   the ultimate fallback.
module GI.Gdk.Objects.Cursor

-- | Memory-managed wrapper type.
newtype Cursor
Cursor :: ManagedPtr Cursor -> Cursor

-- | Type class for types which can be safely cast to <a>Cursor</a>, for
--   instance with <a>toCursor</a>.
class (GObject o, IsDescendantOf Cursor o) => IsCursor o

-- | Cast to <a>Cursor</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toCursor :: (MonadIO m, IsCursor o) => o -> m Cursor

-- | Returns the fallback for this <i><tt>cursor</tt></i>.
--   
--   The fallback will be used if this cursor is not available on a given
--   <tt>GdkDisplay</tt>. For named cursors, this can happen when using
--   nonstandard names or when using an incomplete cursor theme. For
--   textured cursors, this can happen when the texture is too large or
--   when the <tt>GdkDisplay</tt> it is used on does not support textured
--   cursors.
cursorGetFallback :: (HasCallStack, MonadIO m, IsCursor a) => a -> m (Maybe Cursor)

-- | Returns the horizontal offset of the hotspot.
--   
--   The hotspot indicates the pixel that will be directly above the
--   cursor.
--   
--   Note that named cursors may have a nonzero hotspot, but this function
--   will only return the hotspot position for cursors created with
--   <a>cursorNewFromTexture</a>.
cursorGetHotspotX :: (HasCallStack, MonadIO m, IsCursor a) => a -> m Int32

-- | Returns the vertical offset of the hotspot.
--   
--   The hotspot indicates the pixel that will be directly above the
--   cursor.
--   
--   Note that named cursors may have a nonzero hotspot, but this function
--   will only return the hotspot position for cursors created with
--   <a>cursorNewFromTexture</a>.
cursorGetHotspotY :: (HasCallStack, MonadIO m, IsCursor a) => a -> m Int32

-- | Returns the name of the cursor.
--   
--   If the cursor is not a named cursor, <a>Nothing</a> will be returned.
cursorGetName :: (HasCallStack, MonadIO m, IsCursor a) => a -> m (Maybe Text)

-- | Returns the texture for the cursor.
--   
--   If the cursor is a named cursor, <a>Nothing</a> will be returned.
cursorGetTexture :: (HasCallStack, MonadIO m, IsCursor a) => a -> m (Maybe Texture)

-- | Creates a new callback-based cursor object.
--   
--   Cursors of this kind produce textures for the cursor image on demand,
--   when the <i><tt>callback</tt></i> is called.
--   
--   <i>Since: 4.16</i>
cursorNewFromCallback :: (HasCallStack, MonadIO m, IsCursor a) => CursorGetTextureCallback -> Maybe a -> m (Maybe Cursor)

-- | Creates a new cursor by looking up <i><tt>name</tt></i> in the current
--   cursor theme.
--   
--   A recommended set of cursor names that will work across different
--   platforms can be found in the CSS specification:
--   
--   | | | | | --- | --- | --- | | | "none" | No cursor | | | "default" |
--   The default cursor | | | "help" | Help is available | | | "pointer" |
--   Indicates a link or interactive element | | |"context-menu" | A
--   context menu is available | | | "progress" | Progress indicator | | |
--   "wait" | Busy cursor | | | "cell" | Cell(s) may be selected | | |
--   "crosshair" | Simple crosshair | | | "text" | Text may be selected | |
--   | "vertical-text" | Vertical text may be selected | | | "alias" | DND:
--   Something will be linked | | | "copy" | DND: Something will be copied
--   | | | "move" | DND: Something will be moved | | | "dnd-ask" | DND:
--   User can choose action to be carried out | | | "no-drop" | DND: Can't
--   drop here | | | "not-allowed" | DND: Action will not be carried out |
--   | | "grab" | DND: Something can be grabbed | | | "grabbing" | DND:
--   Something is being grabbed | | | "n-resize" | Resizing: Move north
--   border | | | "e-resize" | Resizing: Move east border | | | "s-resize"
--   | Resizing: Move south border | | | "w-resize" | Resizing: Move west
--   border | | | "ne-resize" | Resizing: Move north-east corner | | |
--   "nw-resize" | Resizing: Move north-west corner | | | "sw-resize" |
--   Resizing: Move south-west corner | | | "se-resize" | Resizing: Move
--   south-east corner | | | "col-resize" | Resizing: Move an item or
--   border horizontally | | | "row-resize" | Resizing: Move an item or
--   border vertically | | | "ew-resize" | Moving: Something can be moved
--   horizontally | | | "ns-resize" | Moving: Something can be moved
--   vertically | | | "nesw-resize" | Moving: Something can be moved
--   diagonally, north-east to south-west | | | "nwse-resize" | Moving:
--   something can be moved diagonally, north-west to south-east | | |
--   "all-resize" | Moving: Something can be moved in any direction | | |
--   "all-scroll" | Can scroll in any direction | | | "zoom-in" | Zoom in |
--   | | "zoom-out" | Zoom out |
cursorNewFromName :: (HasCallStack, MonadIO m, IsCursor a) => Text -> Maybe a -> m (Maybe Cursor)

-- | Creates a new cursor from a <tt>GdkTexture</tt>.
cursorNewFromTexture :: (HasCallStack, MonadIO m, IsTexture a, IsCursor b) => a -> Int32 -> Int32 -> Maybe b -> m Cursor

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>fallback</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructCursorFallback :: (IsCursor o, MonadIO m, IsCursor a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>fallback</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> cursor #fallback
--   </pre>
getCursorFallback :: (MonadIO m, IsCursor o) => o -> m (Maybe Cursor)

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>hotspot-x</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructCursorHotspotX :: (IsCursor o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>hotspot-x</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> cursor #hotspotX
--   </pre>
getCursorHotspotX :: (MonadIO m, IsCursor o) => o -> m Int32

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>hotspot-y</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructCursorHotspotY :: (IsCursor o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>hotspot-y</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> cursor #hotspotY
--   </pre>
getCursorHotspotY :: (MonadIO m, IsCursor o) => o -> m Int32

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>name</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructCursorName :: (IsCursor o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>name</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> cursor #name
--   </pre>
getCursorName :: (MonadIO m, IsCursor o) => o -> m (Maybe Text)

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>texture</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructCursorTexture :: (IsCursor o, MonadIO m, IsTexture a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>texture</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> cursor #texture
--   </pre>
getCursorTexture :: (MonadIO m, IsCursor o) => o -> m (Maybe Texture)
instance GHC.Classes.Eq GI.Gdk.Objects.Cursor.Cursor
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.Cursor.Cursor
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.Cursor.Cursor
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.Cursor.Cursor o) => GI.Gdk.Objects.Cursor.IsCursor o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.Cursor.Cursor)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.Cursor.Cursor
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.Cursor.Cursor


-- | Used to advertise and negotiate the format of content.
--   
--   You will encounter <tt>GdkContentFormats</tt> when interacting with
--   objects controlling operations that pass data between different
--   widgets, window or application, like <a>Drag</a>, <a>Drop</a>,
--   <a>Clipboard</a> or <a>ContentProvider</a>.
--   
--   GDK supports content in 2 forms: <tt>GType</tt> and mime type. Using
--   <tt>GTypes</tt> is meant only for in-process content transfers. Mime
--   types are meant to be used for data passing both in-process and
--   out-of-process. The details of how data is passed is described in the
--   documentation of the actual implementations. To transform between the
--   two forms, <a>ContentSerializer</a> and <a>ContentDeserializer</a> are
--   used.
--   
--   A <tt>GdkContentFormats</tt> describes a set of possible formats
--   content can be exchanged in. It is assumed that this set is ordered.
--   <tt>GTypes</tt> are more important than mime types. Order between
--   different <tt>GTypes</tt> or mime types is the order they were added
--   in, most important first. Functions that care about order, such as
--   <a>contentFormatsUnion</a>, will describe in their documentation how
--   they interpret that order, though in general the order of the first
--   argument is considered the primary order of the result, followed by
--   the order of further arguments.
--   
--   For debugging purposes, the function <a>contentFormatsToString</a>
--   exists. It will print a comma-separated list of formats from most
--   important to least important.
--   
--   <tt>GdkContentFormats</tt> is an immutable struct. After creation, you
--   cannot change the types it represents. Instead, new
--   <tt>GdkContentFormats</tt> have to be created. The
--   <a>ContentFormatsBuilder</a> structure is meant to help in this
--   endeavor.
module GI.Gdk.Structs.ContentFormats

-- | Memory-managed wrapper type.
newtype ContentFormats
ContentFormats :: ManagedPtr ContentFormats -> ContentFormats

-- | Checks if a given <tt>GType</tt> is part of the given
--   <i><tt>formats</tt></i>.
contentFormatsContainGtype :: (HasCallStack, MonadIO m) => ContentFormats -> GType -> m Bool

-- | Checks if a given mime type is part of the given
--   <i><tt>formats</tt></i>.
contentFormatsContainMimeType :: (HasCallStack, MonadIO m) => ContentFormats -> Text -> m Bool

-- | Gets the <tt>GType</tt>s included in <i><tt>formats</tt></i>.
--   
--   Note that <i><tt>formats</tt></i> may not contain any <tt>GType</tt>s,
--   in particular when they are empty. In that case <a>Nothing</a> will be
--   returned.
contentFormatsGetGtypes :: (HasCallStack, MonadIO m) => ContentFormats -> m (Maybe [GType], CSize)

-- | Gets the mime types included in <i><tt>formats</tt></i>.
--   
--   Note that <i><tt>formats</tt></i> may not contain any mime types, in
--   particular when they are empty. In that case <a>Nothing</a> will be
--   returned.
contentFormatsGetMimeTypes :: (HasCallStack, MonadIO m) => ContentFormats -> m (Maybe [Text], CSize)

-- | Returns whether the content formats contain any formats.
--   
--   <i>Since: 4.18</i>
contentFormatsIsEmpty :: (HasCallStack, MonadIO m) => ContentFormats -> m Bool

-- | Checks if <i><tt>first</tt></i> and <i><tt>second</tt></i> have any
--   matching formats.
contentFormatsMatch :: (HasCallStack, MonadIO m) => ContentFormats -> ContentFormats -> m Bool

-- | Finds the first <tt>GType</tt> from <i><tt>first</tt></i> that is also
--   contained in <i><tt>second</tt></i>.
--   
--   If no matching <tt>GType</tt> is found, <tt><i>G_TYPE_INVALID</i></tt>
--   is returned.
contentFormatsMatchGtype :: (HasCallStack, MonadIO m) => ContentFormats -> ContentFormats -> m GType

-- | Finds the first mime type from <i><tt>first</tt></i> that is also
--   contained in <i><tt>second</tt></i>.
--   
--   If no matching mime type is found, <a>Nothing</a> is returned.
contentFormatsMatchMimeType :: (HasCallStack, MonadIO m) => ContentFormats -> ContentFormats -> m (Maybe Text)

-- | Creates a new <tt>GdkContentFormats</tt> from an array of mime types.
--   
--   The mime types must be valid and different from each other or the
--   behavior of the return value is undefined. If you cannot guarantee
--   this, use <a>ContentFormatsBuilder</a> instead.
contentFormatsNew :: (HasCallStack, MonadIO m) => Maybe [Text] -> m ContentFormats

-- | Creates a new <tt>GdkContentFormats</tt> for a given <tt>GType</tt>.
contentFormatsNewForGtype :: (HasCallStack, MonadIO m) => GType -> m ContentFormats

-- | Parses the given <i><tt>string</tt></i> into
--   <tt>GdkContentFormats</tt> and returns the formats.
--   
--   Strings printed via <a>contentFormatsToString</a> can be read in again
--   successfully using this function.
--   
--   If <i><tt>string</tt></i> does not describe valid content formats,
--   <a>Nothing</a> is returned.
--   
--   <i>Since: 4.4</i>
contentFormatsParse :: (HasCallStack, MonadIO m) => Text -> m (Maybe ContentFormats)

-- | Prints the given <i><tt>formats</tt></i> into a string for human
--   consumption.
--   
--   The result of this function can later be parsed with
--   <a>contentFormatsParse</a>.
contentFormatsPrint :: (HasCallStack, MonadIO m) => ContentFormats -> String -> m ()

-- | Increases the reference count of a <tt>GdkContentFormats</tt> by one.
contentFormatsRef :: (HasCallStack, MonadIO m) => ContentFormats -> m ContentFormats

-- | Prints the given <i><tt>formats</tt></i> into a human-readable string.
--   
--   The resulting string can be parsed with <a>contentFormatsParse</a>.
--   
--   This is a small wrapper around <a>contentFormatsPrint</a> to help when
--   debugging.
contentFormatsToString :: (HasCallStack, MonadIO m) => ContentFormats -> m Text

-- | Append all missing types from <i><tt>second</tt></i> to
--   <i><tt>first</tt></i>, in the order they had in
--   <i><tt>second</tt></i>.
contentFormatsUnion :: (HasCallStack, MonadIO m) => ContentFormats -> ContentFormats -> m ContentFormats

-- | Add GTypes for mime types in <i><tt>formats</tt></i> for which
--   deserializers are registered.
contentFormatsUnionDeserializeGtypes :: (HasCallStack, MonadIO m) => ContentFormats -> m ContentFormats

-- | Add mime types for GTypes in <i><tt>formats</tt></i> for which
--   deserializers are registered.
contentFormatsUnionDeserializeMimeTypes :: (HasCallStack, MonadIO m) => ContentFormats -> m ContentFormats

-- | Add GTypes for the mime types in <i><tt>formats</tt></i> for which
--   serializers are registered.
contentFormatsUnionSerializeGtypes :: (HasCallStack, MonadIO m) => ContentFormats -> m ContentFormats

-- | Add mime types for GTypes in <i><tt>formats</tt></i> for which
--   serializers are registered.
contentFormatsUnionSerializeMimeTypes :: (HasCallStack, MonadIO m) => ContentFormats -> m ContentFormats

-- | Decreases the reference count of a <tt>GdkContentFormats</tt> by one.
--   
--   If the resulting reference count is zero, frees the formats.
contentFormatsUnref :: (HasCallStack, MonadIO m) => ContentFormats -> m ()
instance GHC.Classes.Eq GI.Gdk.Structs.ContentFormats.ContentFormats
instance Data.GI.Base.BasicTypes.GBoxed GI.Gdk.Structs.ContentFormats.ContentFormats
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Structs.ContentFormats.ContentFormats
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Structs.ContentFormats.ContentFormats)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.ContentFormats.ContentFormats
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Structs.ContentFormats.ContentFormats


-- | Provides content for the clipboard or for drag-and-drop operations in
--   a number of formats.
--   
--   To create a <tt>GdkContentProvider</tt>, use
--   <a>contentProviderNewForValue</a> or
--   <a>contentProviderNewForBytes</a>.
--   
--   GDK knows how to handle common text and image formats out-of-the-box.
--   See <a>ContentSerializer</a> and <a>ContentDeserializer</a> if you
--   want to add support for application-specific data formats.
module GI.Gdk.Objects.ContentProvider

-- | Memory-managed wrapper type.
newtype ContentProvider
ContentProvider :: ManagedPtr ContentProvider -> ContentProvider

-- | Type class for types which can be safely cast to
--   <a>ContentProvider</a>, for instance with <a>toContentProvider</a>.
class (GObject o, IsDescendantOf ContentProvider o) => IsContentProvider o

-- | Cast to <a>ContentProvider</a>, for types for which this is known to
--   be safe. For general casts, use <a>castTo</a>.
toContentProvider :: (MonadIO m, IsContentProvider o) => o -> m ContentProvider

-- | Emits the <a>contentChanged</a> signal.
contentProviderContentChanged :: (HasCallStack, MonadIO m, IsContentProvider a) => a -> m ()

-- | Gets the contents of <i><tt>provider</tt></i> stored in
--   <i><tt>value</tt></i>.
--   
--   The <i><tt>value</tt></i> will have been initialized to the
--   <tt>GType</tt> the value should be provided in. This given
--   <tt>GType</tt> does not need to be listed in the formats returned by
--   <a>contentProviderRefFormats</a>. However, if the given <tt>GType</tt>
--   is not supported, this operation can fail and
--   <tt>G_IO_ERROR_NOT_SUPPORTED</tt> will be reported.
contentProviderGetValue :: (HasCallStack, MonadIO m, IsContentProvider a) => a -> GValue -> m ()

-- | Create a content provider that provides the given
--   <i><tt>bytes</tt></i> as data for the given <i><tt>mimeType</tt></i>.
contentProviderNewForBytes :: (HasCallStack, MonadIO m) => Text -> Bytes -> m ContentProvider

-- | Create a content provider that provides the given
--   <i><tt>value</tt></i>.
contentProviderNewForValue :: (HasCallStack, MonadIO m) => GValue -> m ContentProvider

-- | Creates a content provider that represents all the given
--   <i><tt>providers</tt></i>.
--   
--   Whenever data needs to be written, the union provider will try the
--   given <i><tt>providers</tt></i> in the given order and the first one
--   supporting a format will be chosen to provide it.
--   
--   This allows an easy way to support providing data in different
--   formats. For example, an image may be provided by its file and by the
--   image contents with a call such as
--   
--   <h3><i>c code</i></h3>
--   
--   <pre>
--   gdk_content_provider_new_union ((GdkContentProvider *[2]) {
--                                     gdk_content_provider_new_typed (G_TYPE_FILE, file),
--                                     gdk_content_provider_new_typed (GDK_TYPE_TEXTURE, texture)
--                                   }, 2);
--   </pre>
contentProviderNewUnion :: (HasCallStack, MonadIO m) => Maybe [ContentProvider] -> m ContentProvider

-- | Gets the formats that the provider can provide its current contents
--   in.
contentProviderRefFormats :: (HasCallStack, MonadIO m, IsContentProvider a) => a -> m ContentFormats

-- | Gets the formats that the provider suggests other applications to
--   store the data in.
--   
--   An example of such an application would be a clipboard manager.
--   
--   This can be assumed to be a subset of
--   <a>contentProviderRefFormats</a>.
contentProviderRefStorableFormats :: (HasCallStack, MonadIO m, IsContentProvider a) => a -> m ContentFormats

-- | Asynchronously writes the contents of <i><tt>provider</tt></i> to
--   <i><tt>stream</tt></i> in the given <i><tt>mimeType</tt></i>.
--   
--   The given mime type does not need to be listed in the formats returned
--   by <a>contentProviderRefFormats</a>. However, if the given
--   <tt>GType</tt> is not supported, <tt>G_IO_ERROR_NOT_SUPPORTED</tt>
--   will be reported.
--   
--   The given <i><tt>stream</tt></i> will not be closed.
contentProviderWriteMimeTypeAsync :: (HasCallStack, MonadIO m, IsContentProvider a, IsOutputStream b, IsCancellable c) => a -> Text -> b -> Int32 -> Maybe c -> Maybe AsyncReadyCallback -> m ()

-- | Finishes an asynchronous write operation.
--   
--   See <a>contentProviderWriteMimeTypeAsync</a>.
contentProviderWriteMimeTypeFinish :: (HasCallStack, MonadIO m, IsContentProvider a, IsAsyncResult b) => a -> b -> m ()

-- | Get the value of the “<tt>formats</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> contentProvider #formats
--   </pre>
getContentProviderFormats :: (MonadIO m, IsContentProvider o) => o -> m (Maybe ContentFormats)

-- | Get the value of the “<tt>storable-formats</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> contentProvider #storableFormats
--   </pre>
getContentProviderStorableFormats :: (MonadIO m, IsContentProvider o) => o -> m (Maybe ContentFormats)

-- | Emitted whenever the content provided by this provider has changed.
type ContentProviderContentChangedCallback = IO ()

-- | Connect a signal handler for the <a>contentChanged</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> contentProvider #contentChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterContentProviderContentChanged :: (IsContentProvider a, MonadIO m) => a -> ((?self :: a) => ContentProviderContentChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>contentChanged</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> contentProvider #contentChanged callback
--   </pre>
onContentProviderContentChanged :: (IsContentProvider a, MonadIO m) => a -> ((?self :: a) => ContentProviderContentChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gdk.Objects.ContentProvider.ContentProvider
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.ContentProvider.ContentProvider
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.ContentProvider.ContentProvider
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.ContentProvider.ContentProvider o) => GI.Gdk.Objects.ContentProvider.IsContentProvider o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.ContentProvider.ContentProvider)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.ContentProvider.ContentProvider
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.ContentProvider.ContentProvider


-- | Creates <tt>GdkContentFormats</tt> objects.
module GI.Gdk.Structs.ContentFormatsBuilder

-- | Memory-managed wrapper type.
newtype ContentFormatsBuilder
ContentFormatsBuilder :: ManagedPtr ContentFormatsBuilder -> ContentFormatsBuilder

-- | Appends all formats from <i><tt>formats</tt></i> to
--   <i><tt>builder</tt></i>, skipping those that already exist.
contentFormatsBuilderAddFormats :: (HasCallStack, MonadIO m) => ContentFormatsBuilder -> ContentFormats -> m ()

-- | Appends <i><tt>type</tt></i> to <i><tt>builder</tt></i> if it has not
--   already been added.
contentFormatsBuilderAddGtype :: (HasCallStack, MonadIO m) => ContentFormatsBuilder -> GType -> m ()

-- | Appends <i><tt>mimeType</tt></i> to <i><tt>builder</tt></i> if it has
--   not already been added.
contentFormatsBuilderAddMimeType :: (HasCallStack, MonadIO m) => ContentFormatsBuilder -> Text -> m ()

-- | Create a new <tt>GdkContentFormatsBuilder</tt> object.
--   
--   The resulting builder would create an empty
--   <tt>GdkContentFormats</tt>. Use addition functions to add types to it.
contentFormatsBuilderNew :: (HasCallStack, MonadIO m) => m ContentFormatsBuilder

-- | Acquires a reference on the given <i><tt>builder</tt></i>.
--   
--   This function is intended primarily for bindings.
--   <tt>GdkContentFormatsBuilder</tt> objects should not be kept around.
contentFormatsBuilderRef :: (HasCallStack, MonadIO m) => ContentFormatsBuilder -> m ContentFormatsBuilder

-- | Creates a new <tt>GdkContentFormats</tt> from the given
--   <i><tt>builder</tt></i>.
--   
--   The given <tt>GdkContentFormatsBuilder</tt> is reset once this
--   function returns; you cannot call this function multiple times on the
--   same <i><tt>builder</tt></i> instance.
--   
--   This function is intended primarily for bindings. C code should use
--   <a>ContentFormatsBuilder</a>.<tt><i>free_to_formats</i></tt>().
contentFormatsBuilderToFormats :: (HasCallStack, MonadIO m) => ContentFormatsBuilder -> m ContentFormats

-- | Releases a reference on the given <i><tt>builder</tt></i>.
contentFormatsBuilderUnref :: (HasCallStack, MonadIO m) => ContentFormatsBuilder -> m ()
instance GHC.Classes.Eq GI.Gdk.Structs.ContentFormatsBuilder.ContentFormatsBuilder
instance Data.GI.Base.BasicTypes.GBoxed GI.Gdk.Structs.ContentFormatsBuilder.ContentFormatsBuilder
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Structs.ContentFormatsBuilder.ContentFormatsBuilder
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Structs.ContentFormatsBuilder.ContentFormatsBuilder)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.ContentFormatsBuilder.ContentFormatsBuilder
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Structs.ContentFormatsBuilder.ContentFormatsBuilder


-- | Provides information about supported DMA buffer formats.
--   
--   You can query whether a given format is supported with
--   <a>dmabufFormatsContains</a> and you can iterate over the list of all
--   supported formats with <a>dmabufFormatsGetNFormats</a> and
--   <a>dmabufFormatsGetFormat</a>.
--   
--   The list of supported formats is sorted by preference, with the best
--   formats coming first.
--   
--   The list may contains (format, modifier) pairs where the modifier is
--   <tt>DMA_FORMAT_MOD_INVALID</tt>, indicating that <b>_implicit
--   modifiers</b>_ may be used with this format.
--   
--   See <a>DmabufTextureBuilder</a> for more information about DMA
--   buffers.
--   
--   Note that DMA buffers only exist on Linux.
--   
--   <i>Since: 4.14</i>
module GI.Gdk.Structs.DmabufFormats

-- | Memory-managed wrapper type.
newtype DmabufFormats
DmabufFormats :: ManagedPtr DmabufFormats -> DmabufFormats

-- | Returns whether a given format is contained in
--   <i><tt>formats</tt></i>.
--   
--   <i>Since: 4.14</i>
dmabufFormatsContains :: (HasCallStack, MonadIO m) => DmabufFormats -> Word32 -> Word64 -> m Bool

-- | Returns whether <i><tt>formats1</tt></i> and <i><tt>formats2</tt></i>
--   contain the same dmabuf formats, in the same order.
--   
--   <i>Since: 4.14</i>
dmabufFormatsEqual :: (HasCallStack, MonadIO m) => Maybe DmabufFormats -> Maybe DmabufFormats -> m Bool

-- | Gets the fourcc code and modifier for a format that is contained in
--   <i><tt>formats</tt></i>.
--   
--   <i>Since: 4.14</i>
dmabufFormatsGetFormat :: (HasCallStack, MonadIO m) => DmabufFormats -> CSize -> m (Word32, Word64)

-- | Returns the number of formats that the <i><tt>formats</tt></i> object
--   contains.
--   
--   Note that DMA buffers are a Linux concept, so on other platforms,
--   <a>dmabufFormatsGetNFormats</a> will always return zero.
--   
--   <i>Since: 4.14</i>
dmabufFormatsGetNFormats :: (HasCallStack, MonadIO m) => DmabufFormats -> m CSize

-- | Increases the reference count of <i><tt>formats</tt></i>.
--   
--   <i>Since: 4.14</i>
dmabufFormatsRef :: (HasCallStack, MonadIO m) => DmabufFormats -> m DmabufFormats

-- | Decreases the reference count of <i><tt>formats</tt></i>.
--   
--   When the reference count reaches zero, the object is freed.
--   
--   <i>Since: 4.14</i>
dmabufFormatsUnref :: (HasCallStack, MonadIO m) => DmabufFormats -> m ()
instance GHC.Classes.Eq GI.Gdk.Structs.DmabufFormats.DmabufFormats
instance Data.GI.Base.BasicTypes.GBoxed GI.Gdk.Structs.DmabufFormats.DmabufFormats
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Structs.DmabufFormats.DmabufFormats
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Structs.DmabufFormats.DmabufFormats)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.DmabufFormats.DmabufFormats
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Structs.DmabufFormats.DmabufFormats


-- | Contains information that is useful to compute the size of a drag
--   surface.
--   
--   <i>Since: 4.12</i>
module GI.Gdk.Structs.DragSurfaceSize

-- | Memory-managed wrapper type.
newtype DragSurfaceSize
DragSurfaceSize :: ManagedPtr DragSurfaceSize -> DragSurfaceSize

-- | Sets the size the drag surface prefers to be resized to.
--   
--   <i>Since: 4.12</i>
dragSurfaceSizeSetSize :: (HasCallStack, MonadIO m) => DragSurfaceSize -> Int32 -> Int32 -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Structs.DragSurfaceSize.DragSurfaceSize
instance GHC.Classes.Eq GI.Gdk.Structs.DragSurfaceSize.DragSurfaceSize
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.DragSurfaceSize.DragSurfaceSize


-- | An opaque type representing a sequence of related events.
module GI.Gdk.Structs.EventSequence

-- | Memory-managed wrapper type.
newtype EventSequence
EventSequence :: ManagedPtr EventSequence -> EventSequence
instance GHC.Classes.Eq GI.Gdk.Structs.EventSequence.EventSequence
instance Data.GI.Base.BasicTypes.GBoxed GI.Gdk.Structs.EventSequence.EventSequence
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Structs.EventSequence.EventSequence
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Structs.EventSequence.EventSequence)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.EventSequence.EventSequence
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Structs.EventSequence.EventSequence


-- | An opaque type representing a list of files.
--   
--   <i>Since: 4.6</i>
module GI.Gdk.Structs.FileList

-- | Memory-managed wrapper type.
newtype FileList
FileList :: ManagedPtr FileList -> FileList

-- | Retrieves the list of files inside a <tt>GdkFileList</tt>.
--   
--   This function is meant for language bindings.
--   
--   <i>Since: 4.6</i>
fileListGetFiles :: (HasCallStack, MonadIO m) => FileList -> m [File]

-- | Creates a new <tt>GdkFileList</tt> for the given array of files.
--   
--   This function is meant to be used by language bindings.
--   
--   <i>Since: 4.8</i>
fileListNewFromArray :: (HasCallStack, MonadIO m) => [File] -> m FileList

-- | Creates a new files list container from a singly linked list of
--   <tt>GFile</tt> instances.
--   
--   This function is meant to be used by language bindings
--   
--   <i>Since: 4.8</i>
fileListNewFromList :: (HasCallStack, MonadIO m, IsFile a) => [a] -> m FileList
instance GHC.Classes.Eq GI.Gdk.Structs.FileList.FileList
instance Data.GI.Base.BasicTypes.GBoxed GI.Gdk.Structs.FileList.FileList
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Structs.FileList.FileList
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Structs.FileList.FileList)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.FileList.FileList
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Structs.FileList.FileList


-- | Holds timing information for a single frame of the application’s
--   displays.
--   
--   To retrieve <tt>GdkFrameTimings</tt> objects, use
--   <a>frameClockGetTimings</a> or <a>frameClockGetCurrentTimings</a>. The
--   information in <tt>GdkFrameTimings</tt> is useful for precise
--   synchronization of video with the event or audio streams, and for
--   measuring quality metrics for the application’s display, such as
--   latency and jitter.
module GI.Gdk.Structs.FrameTimings

-- | Memory-managed wrapper type.
newtype FrameTimings
FrameTimings :: ManagedPtr FrameTimings -> FrameTimings

-- | Returns whether <i><tt>timings</tt></i> are complete.
--   
--   The timing information in a <tt>GdkFrameTimings</tt> is filled in
--   incrementally as the frame as drawn and passed off to the window
--   system for processing and display to the user. The accessor functions
--   for <tt>GdkFrameTimings</tt> can return 0 to indicate an unavailable
--   value for two reasons: either because the information is not yet
--   available, or because it isn't available at all.
--   
--   Once this function returns <a>True</a> for a frame, you can be certain
--   that no further values will become available and be stored in the
--   <tt>GdkFrameTimings</tt>.
frameTimingsGetComplete :: (HasCallStack, MonadIO m) => FrameTimings -> m Bool

-- | Gets the frame counter value of the <tt>GdkFrameClock</tt> when this
--   frame was drawn.
frameTimingsGetFrameCounter :: (HasCallStack, MonadIO m) => FrameTimings -> m Int64

-- | Returns the frame time for the frame.
--   
--   This is the time value that is typically used to time animations for
--   the frame. See <a>frameClockGetFrameTime</a>.
frameTimingsGetFrameTime :: (HasCallStack, MonadIO m) => FrameTimings -> m Int64

-- | Gets the predicted time at which this frame will be displayed.
--   
--   Although no predicted time may be available, if one is available, it
--   will be available while the frame is being generated, in contrast to
--   <a>frameTimingsGetPresentationTime</a>, which is only available after
--   the frame has been presented.
--   
--   In general, if you are simply animating, you should use
--   <a>frameClockGetFrameTime</a> rather than this function, but this
--   function is useful for applications that want exact control over
--   latency. For example, a movie player may want this information for
--   Audio/Video synchronization.
frameTimingsGetPredictedPresentationTime :: (HasCallStack, MonadIO m) => FrameTimings -> m Int64

-- | Reurns the presentation time.
--   
--   This is the time at which the frame became visible to the user.
frameTimingsGetPresentationTime :: (HasCallStack, MonadIO m) => FrameTimings -> m Int64

-- | Gets the natural interval between presentation times for the display
--   that this frame was displayed on.
--   
--   Frame presentation usually happens during the “vertical blanking
--   interval”.
frameTimingsGetRefreshInterval :: (HasCallStack, MonadIO m) => FrameTimings -> m Int64

-- | Increases the reference count of <i><tt>timings</tt></i>.
frameTimingsRef :: (HasCallStack, MonadIO m) => FrameTimings -> m FrameTimings

-- | Decreases the reference count of <i><tt>timings</tt></i>.
--   
--   If <i><tt>timings</tt></i> is no longer referenced, it will be freed.
frameTimingsUnref :: (HasCallStack, MonadIO m) => FrameTimings -> m ()
instance GHC.Classes.Eq GI.Gdk.Structs.FrameTimings.FrameTimings
instance Data.GI.Base.BasicTypes.GBoxed GI.Gdk.Structs.FrameTimings.FrameTimings
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Structs.FrameTimings.FrameTimings
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Structs.FrameTimings.FrameTimings)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.FrameTimings.FrameTimings
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Structs.FrameTimings.FrameTimings


-- | Tells the application when to update and repaint a surface.
--   
--   This may be synced to the vertical refresh rate of the monitor, for
--   example. Even when the frame clock uses a simple timer rather than a
--   hardware-based vertical sync, the frame clock helps because it ensures
--   everything paints at the same time (reducing the total number of
--   frames).
--   
--   The frame clock can also automatically stop painting when it knows the
--   frames will not be visible, or scale back animation framerates.
--   
--   <tt>GdkFrameClock</tt> is designed to be compatible with an
--   OpenGL-based implementation or with mozRequestAnimationFrame in
--   Firefox, for example.
--   
--   A frame clock is idle until someone requests a frame with
--   <a>frameClockRequestPhase</a>. At some later point that makes sense
--   for the synchronization being implemented, the clock will process a
--   frame and emit signals for each phase that has been requested. (See
--   the signals of the <tt>GdkFrameClock</tt> class for documentation of
--   the phases. <a>FrameClockPhaseUpdate</a> and the
--   <a>FrameClock::update</a> signal are most interesting for application
--   writers, and are used to update the animations, using the frame time
--   given by <a>frameClockGetFrameTime</a>.
--   
--   The frame time is reported in microseconds and generally in the same
--   timescale as <a>getMonotonicTime</a>, however, it is not the same as
--   <a>getMonotonicTime</a>. The frame time does not advance during the
--   time a frame is being painted, and outside of a frame, an attempt is
--   made so that all calls to <a>frameClockGetFrameTime</a> that are
--   called at a “similar” time get the same value. This means that if
--   different animations are timed by looking at the difference in time
--   between an initial value from <a>frameClockGetFrameTime</a> and the
--   value inside the <a>FrameClock::update</a> signal of the clock, they
--   will stay exactly synchronized.
module GI.Gdk.Objects.FrameClock

-- | Memory-managed wrapper type.
newtype FrameClock
FrameClock :: ManagedPtr FrameClock -> FrameClock

-- | Type class for types which can be safely cast to <a>FrameClock</a>,
--   for instance with <a>toFrameClock</a>.
class (GObject o, IsDescendantOf FrameClock o) => IsFrameClock o

-- | Cast to <a>FrameClock</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toFrameClock :: (MonadIO m, IsFrameClock o) => o -> m FrameClock

-- | Starts updates for an animation.
--   
--   Until a matching call to <a>frameClockEndUpdating</a> is made, the
--   frame clock will continually request a new frame with the
--   <a>FrameClockPhaseUpdate</a> phase. This function may be called
--   multiple times and frames will be requested until
--   <a>frameClockEndUpdating</a> is called the same number of times.
frameClockBeginUpdating :: (HasCallStack, MonadIO m, IsFrameClock a) => a -> m ()

-- | Stops updates for an animation.
--   
--   See the documentation for <a>frameClockBeginUpdating</a>.
frameClockEndUpdating :: (HasCallStack, MonadIO m, IsFrameClock a) => a -> m ()

-- | Gets the frame timings for the current frame.
frameClockGetCurrentTimings :: (HasCallStack, MonadIO m, IsFrameClock a) => a -> m (Maybe FrameTimings)

-- | Calculates the current frames-per-second, based on the frame timings
--   of <i><tt>frameClock</tt></i>.
frameClockGetFps :: (HasCallStack, MonadIO m, IsFrameClock a) => a -> m Double

-- | <tt>GdkFrameClock</tt> maintains a 64-bit counter that increments for
--   each frame drawn.
frameClockGetFrameCounter :: (HasCallStack, MonadIO m, IsFrameClock a) => a -> m Int64

-- | Gets the time that should currently be used for animations.
--   
--   Inside the processing of a frame, it’s the time used to compute the
--   animation position of everything in a frame. Outside of a frame, it's
--   the time of the conceptual “previous frame,” which may be either the
--   actual previous frame time, or if that’s too old, an updated time.
frameClockGetFrameTime :: (HasCallStack, MonadIO m, IsFrameClock a) => a -> m Int64

-- | Returns the frame counter for the oldest frame available in history.
--   
--   <tt>GdkFrameClock</tt> internally keeps a history of
--   <tt>GdkFrameTimings</tt> objects for recent frames that can be
--   retrieved with <a>frameClockGetTimings</a>. The set of stored frames
--   is the set from the counter values given by
--   <a>frameClockGetHistoryStart</a> and <a>frameClockGetFrameCounter</a>,
--   inclusive.
frameClockGetHistoryStart :: (HasCallStack, MonadIO m, IsFrameClock a) => a -> m Int64

-- | Predicts a presentation time, based on history.
--   
--   Using the frame history stored in the frame clock, finds the last
--   known presentation time and refresh interval, and assuming that
--   presentation times are separated by the refresh interval, predicts a
--   presentation time that is a multiple of the refresh interval after the
--   last presentation time, and later than <i><tt>baseTime</tt></i>.
frameClockGetRefreshInfo :: (HasCallStack, MonadIO m, IsFrameClock a) => a -> Int64 -> m (Int64, Int64)

-- | Retrieves a <tt>GdkFrameTimings</tt> object holding timing information
--   for the current frame or a recent frame.
--   
--   The <tt>GdkFrameTimings</tt> object may not yet be complete: see
--   <a>frameTimingsGetComplete</a> and <a>frameClockGetHistoryStart</a>.
frameClockGetTimings :: (HasCallStack, MonadIO m, IsFrameClock a) => a -> Int64 -> m (Maybe FrameTimings)

-- | Asks the frame clock to run a particular phase.
--   
--   The signal corresponding the requested phase will be emitted the next
--   time the frame clock processes. Multiple calls to
--   <a>frameClockRequestPhase</a> will be combined together and only one
--   frame processed. If you are displaying animated content and want to
--   continually request the <a>FrameClockPhaseUpdate</a> phase for a
--   period of time, you should use <a>frameClockBeginUpdating</a> instead,
--   since this allows GTK to adjust system parameters to get maximally
--   smooth animations.
frameClockRequestPhase :: (HasCallStack, MonadIO m, IsFrameClock a) => a -> [FrameClockPhase] -> m ()

-- | This signal ends processing of the frame.
--   
--   Applications should generally not handle this signal.
type FrameClockAfterPaintCallback = IO ()

-- | Connect a signal handler for the <a>afterPaint</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> frameClock #afterPaint callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterFrameClockAfterPaint :: (IsFrameClock a, MonadIO m) => a -> ((?self :: a) => FrameClockAfterPaintCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>afterPaint</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> frameClock #afterPaint callback
--   </pre>
onFrameClockAfterPaint :: (IsFrameClock a, MonadIO m) => a -> ((?self :: a) => FrameClockAfterPaintCallback) -> m SignalHandlerId

-- | Begins processing of the frame.
--   
--   Applications should generally not handle this signal.
type FrameClockBeforePaintCallback = IO ()

-- | Connect a signal handler for the <a>beforePaint</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> frameClock #beforePaint callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterFrameClockBeforePaint :: (IsFrameClock a, MonadIO m) => a -> ((?self :: a) => FrameClockBeforePaintCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>beforePaint</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> frameClock #beforePaint callback
--   </pre>
onFrameClockBeforePaint :: (IsFrameClock a, MonadIO m) => a -> ((?self :: a) => FrameClockBeforePaintCallback) -> m SignalHandlerId

-- | Used to flush pending motion events that are being batched up and
--   compressed together.
--   
--   Applications should not handle this signal.
type FrameClockFlushEventsCallback = IO ()

-- | Connect a signal handler for the <a>flushEvents</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> frameClock #flushEvents callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterFrameClockFlushEvents :: (IsFrameClock a, MonadIO m) => a -> ((?self :: a) => FrameClockFlushEventsCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>flushEvents</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> frameClock #flushEvents callback
--   </pre>
onFrameClockFlushEvents :: (IsFrameClock a, MonadIO m) => a -> ((?self :: a) => FrameClockFlushEventsCallback) -> m SignalHandlerId

-- | Emitted as the second step of toolkit and application processing of
--   the frame.
--   
--   Any work to update sizes and positions of application elements should
--   be performed. GTK normally handles this internally.
type FrameClockLayoutCallback = IO ()

-- | Connect a signal handler for the <a>layout</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> frameClock #layout callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterFrameClockLayout :: (IsFrameClock a, MonadIO m) => a -> ((?self :: a) => FrameClockLayoutCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>layout</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> frameClock #layout callback
--   </pre>
onFrameClockLayout :: (IsFrameClock a, MonadIO m) => a -> ((?self :: a) => FrameClockLayoutCallback) -> m SignalHandlerId

-- | Emitted as the third step of toolkit and application processing of the
--   frame.
--   
--   The frame is repainted. GDK normally handles this internally and emits
--   <a>Surface::render</a> signals which are turned into
--   <a>GtkWidget::snapshot</a> signals by GTK.
type FrameClockPaintCallback = IO ()

-- | Connect a signal handler for the <a>paint</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> frameClock #paint callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterFrameClockPaint :: (IsFrameClock a, MonadIO m) => a -> ((?self :: a) => FrameClockPaintCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>paint</a> signal, to be run before
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>on</a> frameClock #paint callback
--   </pre>
onFrameClockPaint :: (IsFrameClock a, MonadIO m) => a -> ((?self :: a) => FrameClockPaintCallback) -> m SignalHandlerId

-- | Emitted after processing of the frame is finished.
--   
--   This signal is handled internally by GTK to resume normal event
--   processing. Applications should not handle this signal.
type FrameClockResumeEventsCallback = IO ()

-- | Connect a signal handler for the <a>resumeEvents</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> frameClock #resumeEvents callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterFrameClockResumeEvents :: (IsFrameClock a, MonadIO m) => a -> ((?self :: a) => FrameClockResumeEventsCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>resumeEvents</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> frameClock #resumeEvents callback
--   </pre>
onFrameClockResumeEvents :: (IsFrameClock a, MonadIO m) => a -> ((?self :: a) => FrameClockResumeEventsCallback) -> m SignalHandlerId

-- | Emitted as the first step of toolkit and application processing of the
--   frame.
--   
--   Animations should be updated using <a>frameClockGetFrameTime</a>.
--   Applications can connect directly to this signal, or use
--   <a>gtk_widget_add_tick_callback()</a> as a more convenient interface.
type FrameClockUpdateCallback = IO ()

-- | Connect a signal handler for the <a>update</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> frameClock #update callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterFrameClockUpdate :: (IsFrameClock a, MonadIO m) => a -> ((?self :: a) => FrameClockUpdateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>update</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> frameClock #update callback
--   </pre>
onFrameClockUpdate :: (IsFrameClock a, MonadIO m) => a -> ((?self :: a) => FrameClockUpdateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gdk.Objects.FrameClock.FrameClock
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.FrameClock.FrameClock
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.FrameClock.FrameClock
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.FrameClock.FrameClock o) => GI.Gdk.Objects.FrameClock.IsFrameClock o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.FrameClock.FrameClock)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.FrameClock.FrameClock
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.FrameClock.FrameClock


-- | Represents a hardware key that can be mapped to a keyval.
module GI.Gdk.Structs.KeymapKey

-- | Memory-managed wrapper type.
newtype KeymapKey
KeymapKey :: ManagedPtr KeymapKey -> KeymapKey

-- | Construct a <a>KeymapKey</a> struct initialized to zero.
newZeroKeymapKey :: MonadIO m => m KeymapKey

-- | Get the value of the “<tt>group</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> keymapKey #group
--   </pre>
getKeymapKeyGroup :: MonadIO m => KeymapKey -> m Int32

-- | Set the value of the “<tt>group</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> keymapKey [ #group <a>:=</a> value ]
--   </pre>
setKeymapKeyGroup :: MonadIO m => KeymapKey -> Int32 -> m ()

-- | Get the value of the “<tt>keycode</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> keymapKey #keycode
--   </pre>
getKeymapKeyKeycode :: MonadIO m => KeymapKey -> m Word32

-- | Set the value of the “<tt>keycode</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> keymapKey [ #keycode <a>:=</a> value ]
--   </pre>
setKeymapKeyKeycode :: MonadIO m => KeymapKey -> Word32 -> m ()

-- | Get the value of the “<tt>level</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> keymapKey #level
--   </pre>
getKeymapKeyLevel :: MonadIO m => KeymapKey -> m Int32

-- | Set the value of the “<tt>level</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> keymapKey [ #level <a>:=</a> value ]
--   </pre>
setKeymapKeyLevel :: MonadIO m => KeymapKey -> Int32 -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Structs.KeymapKey.KeymapKey
instance Data.GI.Base.BasicTypes.CallocPtr GI.Gdk.Structs.KeymapKey.KeymapKey
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gdk.Structs.KeymapKey.KeymapKey tag
instance GHC.Classes.Eq GI.Gdk.Structs.KeymapKey.KeymapKey
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.KeymapKey.KeymapKey


-- | Represents a color, in a way that is compatible with cairo’s notion of
--   color.
--   
--   <tt>GdkRGBA</tt> is a convenient way to pass colors around. It’s based
--   on cairo’s way to deal with colors and mirrors its behavior. All
--   values are in the range from 0.0 to 1.0 inclusive. So the color (0.0,
--   0.0, 0.0, 0.0) represents transparent black and (1.0, 1.0, 1.0, 1.0)
--   is opaque white. Other values will be clamped to this range when
--   drawing.
module GI.Gdk.Structs.RGBA

-- | Memory-managed wrapper type.
newtype RGBA
RGBA :: ManagedPtr RGBA -> RGBA

-- | Construct a <a>RGBA</a> struct initialized to zero.
newZeroRGBA :: MonadIO m => m RGBA

-- | Makes a copy of a <tt>GdkRGBA</tt>.
--   
--   The result must be freed through <a>rGBAFree</a>.
rGBACopy :: (HasCallStack, MonadIO m) => RGBA -> m RGBA

-- | Compares two <tt>GdkRGBA</tt> colors.
rGBAEqual :: (HasCallStack, MonadIO m) => RGBA -> RGBA -> m Bool

-- | Frees a <tt>GdkRGBA</tt>.
rGBAFree :: (HasCallStack, MonadIO m) => RGBA -> m ()

-- | A hash function suitable for using for a hash table that stores
--   <tt>GdkRGBA</tt>s.
rGBAHash :: (HasCallStack, MonadIO m) => RGBA -> m Word32

-- | Checks if an <i><tt>rgba</tt></i> value is transparent.
--   
--   That is, drawing with the value would not produce any change.
rGBAIsClear :: (HasCallStack, MonadIO m) => RGBA -> m Bool

-- | Checks if an <i><tt>rgba</tt></i> value is opaque.
--   
--   That is, drawing with the value will not retain any results from
--   previous contents.
rGBAIsOpaque :: (HasCallStack, MonadIO m) => RGBA -> m Bool

-- | Parses a textual representation of a color.
--   
--   The string can be either one of:
--   
--   <ul>
--   <li>A standard name (Taken from the CSS specification).</li>
--   <li>A hexadecimal value in the form “#rgb”, “#rrggbb”, “#rrrgggbbb” or
--   ”#rrrrggggbbbb”</li>
--   <li>A hexadecimal value in the form “#rgba”, “#rrggbbaa”, or
--   ”#rrrrggggbbbbaaaa”</li>
--   <li>A RGB color in the form “rgb(r,g,b)” (In this case the color will
--   have full opacity)</li>
--   <li>A RGBA color in the form “rgba(r,g,b,a)”</li>
--   <li>A HSL color in the form “hsl(h,s,l)”</li>
--   <li>A HSLA color in the form “hsla(h,s,l,a)”</li>
--   </ul>
--   
--   Where “r”, “g”, “b” and “a” are respectively the red, green, blue and
--   alpha color values. In the last two cases, “r”, “g”, and “b” are
--   either integers in the range 0 to 255 or percentage values in the
--   range 0% to 100%, and a is a floating point value in the range 0 to 1.
--   The range for “h” is 0 to 360, and “s”, “l” can be either numbers in
--   the range 0 to 100 or percentages.
rGBAParse :: (HasCallStack, MonadIO m) => RGBA -> Text -> m Bool

-- | <i>No description available in the introspection data.</i>
rGBAPrint :: (HasCallStack, MonadIO m) => RGBA -> String -> m String

-- | Returns a textual specification of <i><tt>rgba</tt></i> in the form
--   <tt>rgb(r,g,b)</tt> or <tt>rgba(r,g,b,a)</tt>, where “r”, “g”, “b” and
--   “a” represent the red, green, blue and alpha values respectively. “r”,
--   “g”, and “b” are represented as integers in the range 0 to 255, and
--   “a” is represented as a floating point value in the range 0 to 1.
--   
--   These string forms are string forms that are supported by the CSS3
--   colors module, and can be parsed by <a>rGBAParse</a>.
--   
--   Note that this string representation may lose some precision, since
--   “r”, “g” and “b” are represented as 8-bit integers. If this is a
--   concern, you should use a different representation.
rGBAToString :: (HasCallStack, MonadIO m) => RGBA -> m Text

-- | Get the value of the “<tt>alpha</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> rGBA #alpha
--   </pre>
getRGBAAlpha :: MonadIO m => RGBA -> m Float

-- | Set the value of the “<tt>alpha</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> rGBA [ #alpha <a>:=</a> value ]
--   </pre>
setRGBAAlpha :: MonadIO m => RGBA -> Float -> m ()

-- | Get the value of the “<tt>blue</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> rGBA #blue
--   </pre>
getRGBABlue :: MonadIO m => RGBA -> m Float

-- | Set the value of the “<tt>blue</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> rGBA [ #blue <a>:=</a> value ]
--   </pre>
setRGBABlue :: MonadIO m => RGBA -> Float -> m ()

-- | Get the value of the “<tt>green</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> rGBA #green
--   </pre>
getRGBAGreen :: MonadIO m => RGBA -> m Float

-- | Set the value of the “<tt>green</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> rGBA [ #green <a>:=</a> value ]
--   </pre>
setRGBAGreen :: MonadIO m => RGBA -> Float -> m ()

-- | Get the value of the “<tt>red</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> rGBA #red
--   </pre>
getRGBARed :: MonadIO m => RGBA -> m Float

-- | Set the value of the “<tt>red</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> rGBA [ #red <a>:=</a> value ]
--   </pre>
setRGBARed :: MonadIO m => RGBA -> Float -> m ()
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gdk.Structs.RGBA.RGBA tag
instance GHC.Classes.Eq GI.Gdk.Structs.RGBA.RGBA
instance Data.GI.Base.BasicTypes.GBoxed GI.Gdk.Structs.RGBA.RGBA
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Structs.RGBA.RGBA
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Structs.RGBA.RGBA)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.RGBA.RGBA
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Structs.RGBA.RGBA


-- | Represents a rectangle.
--   
--   <tt>GdkRectangle</tt> is identical to <tt>cairo_rectangle_t</tt>.
--   Together with Cairo’s <tt>cairo_region_t</tt> data type, these are the
--   central types for representing sets of pixels.
--   
--   The intersection of two rectangles can be computed with
--   <a>rectangleIntersect</a>; to find the union of two rectangles use
--   <a>rectangleUnion</a>.
--   
--   The <tt>cairo_region_t</tt> type provided by Cairo is usually used for
--   managing non-rectangular clipping of graphical operations.
--   
--   The Graphene library has a number of other data types for regions and
--   volumes in 2D and 3D.
module GI.Gdk.Structs.Rectangle

-- | Memory-managed wrapper type.
newtype Rectangle
Rectangle :: ManagedPtr Rectangle -> Rectangle

-- | Construct a <a>Rectangle</a> struct initialized to zero.
newZeroRectangle :: MonadIO m => m Rectangle

-- | Returns <a>True</a> if <i><tt>rect</tt></i> contains the point
--   described by <i><tt>x</tt></i> and <i><tt>y</tt></i>.
rectangleContainsPoint :: (HasCallStack, MonadIO m) => Rectangle -> Int32 -> Int32 -> m Bool

-- | Checks if the two given rectangles are equal.
rectangleEqual :: (HasCallStack, MonadIO m) => Rectangle -> Rectangle -> m Bool

-- | Calculates the intersection of two rectangles.
--   
--   It is allowed for <i><tt>dest</tt></i> to be the same as either
--   <i><tt>src1</tt></i> or <i><tt>src2</tt></i>. If the rectangles do not
--   intersect, <i><tt>dest</tt></i>’s width and height is set to 0 and its
--   x and y values are undefined. If you are only interested in whether
--   the rectangles intersect, but not in the intersecting area itself,
--   pass <a>Nothing</a> for <i><tt>dest</tt></i>.
rectangleIntersect :: (HasCallStack, MonadIO m) => Rectangle -> Rectangle -> m (Bool, Rectangle)

-- | Calculates the union of two rectangles.
--   
--   The union of rectangles <i><tt>src1</tt></i> and <i><tt>src2</tt></i>
--   is the smallest rectangle which includes both <i><tt>src1</tt></i> and
--   <i><tt>src2</tt></i> within it. It is allowed for <i><tt>dest</tt></i>
--   to be the same as either <i><tt>src1</tt></i> or <i><tt>src2</tt></i>.
--   
--   Note that this function does not ignore 'empty' rectangles (ie. with
--   zero width or height).
rectangleUnion :: (HasCallStack, MonadIO m) => Rectangle -> Rectangle -> m Rectangle

-- | Get the value of the “<tt>height</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> rectangle #height
--   </pre>
getRectangleHeight :: MonadIO m => Rectangle -> m Int32

-- | Set the value of the “<tt>height</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> rectangle [ #height <a>:=</a> value ]
--   </pre>
setRectangleHeight :: MonadIO m => Rectangle -> Int32 -> m ()

-- | Get the value of the “<tt>width</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> rectangle #width
--   </pre>
getRectangleWidth :: MonadIO m => Rectangle -> m Int32

-- | Set the value of the “<tt>width</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> rectangle [ #width <a>:=</a> value ]
--   </pre>
setRectangleWidth :: MonadIO m => Rectangle -> Int32 -> m ()

-- | Get the value of the “<tt>x</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> rectangle #x
--   </pre>
getRectangleX :: MonadIO m => Rectangle -> m Int32

-- | Set the value of the “<tt>x</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> rectangle [ #x <a>:=</a> value ]
--   </pre>
setRectangleX :: MonadIO m => Rectangle -> Int32 -> m ()

-- | Get the value of the “<tt>y</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> rectangle #y
--   </pre>
getRectangleY :: MonadIO m => Rectangle -> m Int32

-- | Set the value of the “<tt>y</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> rectangle [ #y <a>:=</a> value ]
--   </pre>
setRectangleY :: MonadIO m => Rectangle -> Int32 -> m ()
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gdk.Structs.Rectangle.Rectangle tag
instance GHC.Classes.Eq GI.Gdk.Structs.Rectangle.Rectangle
instance Data.GI.Base.BasicTypes.GBoxed GI.Gdk.Structs.Rectangle.Rectangle
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Structs.Rectangle.Rectangle
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Structs.Rectangle.Rectangle)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.Rectangle.Rectangle
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Structs.Rectangle.Rectangle


-- | Contains information that is necessary position a <a>Popup</a>
--   relative to its parent.
--   
--   The positioning requires a negotiation with the windowing system,
--   since it depends on external constraints, such as the position of the
--   parent surface, and the screen dimensions.
--   
--   The basic ingredients are a rectangle on the parent surface, and the
--   anchor on both that rectangle and the popup. The anchors specify a
--   side or corner to place next to each other.
--   
--   
--   For cases where placing the anchors next to each other would make the
--   popup extend offscreen, the layout includes some hints for how to
--   resolve this problem. The hints may suggest to flip the anchor
--   position to the other side, or to 'slide' the popup along a side, or
--   to resize it.
--   
--   
--   
--   These hints may be combined.
--   
--   Ultimatively, it is up to the windowing system to determine the
--   position and size of the popup. You can learn about the result by
--   calling <a>popupGetPositionX</a>, <a>popupGetPositionY</a>,
--   <a>popupGetRectAnchor</a> and <a>popupGetSurfaceAnchor</a> after the
--   popup has been presented. This can be used to adjust the rendering.
--   For example, <a>GtkPopover</a> changes its arrow position accordingly.
--   But you have to be careful avoid changing the size of the popover, or
--   it has to be presented again.
module GI.Gdk.Structs.PopupLayout

-- | Memory-managed wrapper type.
newtype PopupLayout
PopupLayout :: ManagedPtr PopupLayout -> PopupLayout

-- | Makes a copy of <i><tt>layout</tt></i>.
popupLayoutCopy :: (HasCallStack, MonadIO m) => PopupLayout -> m PopupLayout

-- | Check whether <i><tt>layout</tt></i> and <i><tt>other</tt></i> has
--   identical layout properties.
popupLayoutEqual :: (HasCallStack, MonadIO m) => PopupLayout -> PopupLayout -> m Bool

-- | Get the anchor hints.
popupLayoutGetAnchorHints :: (HasCallStack, MonadIO m) => PopupLayout -> m [AnchorHints]

-- | Get the anchor rectangle.
popupLayoutGetAnchorRect :: (HasCallStack, MonadIO m) => PopupLayout -> m Rectangle

-- | Retrieves the offset for the anchor rectangle.
popupLayoutGetOffset :: (HasCallStack, MonadIO m) => PopupLayout -> m (Int32, Int32)

-- | Returns the anchor position on the anchor rectangle.
popupLayoutGetRectAnchor :: (HasCallStack, MonadIO m) => PopupLayout -> m Gravity

-- | Obtains the shadow widths of this layout.
--   
--   <i>Since: 4.2</i>
popupLayoutGetShadowWidth :: (HasCallStack, MonadIO m) => PopupLayout -> m (Int32, Int32, Int32, Int32)

-- | Returns the anchor position on the popup surface.
popupLayoutGetSurfaceAnchor :: (HasCallStack, MonadIO m) => PopupLayout -> m Gravity

-- | Create a popup layout description.
--   
--   Used together with <a>popupPresent</a> to describe how a popup surface
--   should be placed and behave on-screen.
--   
--   <i><tt>anchorRect</tt></i> is relative to the top-left corner of the
--   surface's parent. <i><tt>rectAnchor</tt></i> and
--   <i><tt>surfaceAnchor</tt></i> determine anchor points on
--   <i><tt>anchorRect</tt></i> and surface to pin together.
--   
--   The position of <i><tt>anchorRect</tt></i>'s anchor point can
--   optionally be offset using <a>popupLayoutSetOffset</a>, which is
--   equivalent to offsetting the position of surface.
popupLayoutNew :: (HasCallStack, MonadIO m) => Rectangle -> Gravity -> Gravity -> m PopupLayout

-- | Increases the reference count of <i><tt>value</tt></i>.
popupLayoutRef :: (HasCallStack, MonadIO m) => PopupLayout -> m PopupLayout

-- | Set new anchor hints.
--   
--   The set <i><tt>anchorHints</tt></i> determines how
--   <i><tt>surface</tt></i> will be moved if the anchor points cause it to
--   move off-screen. For example, <tt>GDK_ANCHOR_FLIP_X</tt> will replace
--   <tt>GDK_GRAVITY_NORTH_WEST</tt> with <tt>GDK_GRAVITY_NORTH_EAST</tt>
--   and vice versa if <i><tt>surface</tt></i> extends beyond the left or
--   right edges of the monitor.
popupLayoutSetAnchorHints :: (HasCallStack, MonadIO m) => PopupLayout -> [AnchorHints] -> m ()

-- | Set the anchor rectangle.
popupLayoutSetAnchorRect :: (HasCallStack, MonadIO m) => PopupLayout -> Rectangle -> m ()

-- | Offset the position of the anchor rectangle with the given delta.
popupLayoutSetOffset :: (HasCallStack, MonadIO m) => PopupLayout -> Int32 -> Int32 -> m ()

-- | Set the anchor on the anchor rectangle.
popupLayoutSetRectAnchor :: (HasCallStack, MonadIO m) => PopupLayout -> Gravity -> m ()

-- | Sets the shadow width of the popup.
--   
--   The shadow width corresponds to the part of the computed surface size
--   that would consist of the shadow margin surrounding the window, would
--   there be any.
--   
--   <i>Since: 4.2</i>
popupLayoutSetShadowWidth :: (HasCallStack, MonadIO m) => PopupLayout -> Int32 -> Int32 -> Int32 -> Int32 -> m ()

-- | Set the anchor on the popup surface.
popupLayoutSetSurfaceAnchor :: (HasCallStack, MonadIO m) => PopupLayout -> Gravity -> m ()

-- | Decreases the reference count of <i><tt>value</tt></i>.
popupLayoutUnref :: (HasCallStack, MonadIO m) => PopupLayout -> m ()
instance GHC.Classes.Eq GI.Gdk.Structs.PopupLayout.PopupLayout
instance Data.GI.Base.BasicTypes.GBoxed GI.Gdk.Structs.PopupLayout.PopupLayout
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Structs.PopupLayout.PopupLayout
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Structs.PopupLayout.PopupLayout)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.PopupLayout.PopupLayout
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Structs.PopupLayout.PopupLayout


-- | Used to download the contents of a <a>Texture</a>.
--   
--   It is intended to be created as a short-term object for a single
--   download, but can be used for multiple downloads of different textures
--   or with different settings.
--   
--   <tt>GdkTextureDownloader</tt> can be used to convert data between
--   different formats. Create a <tt>GdkTexture</tt> for the existing
--   format and then download it in a different format.
--   
--   <i>Since: 4.10</i>
module GI.Gdk.Structs.TextureDownloader

-- | Memory-managed wrapper type.
newtype TextureDownloader
TextureDownloader :: ManagedPtr TextureDownloader -> TextureDownloader

-- | Creates a copy of the downloader.
--   
--   This function is meant for language bindings.
--   
--   <i>Since: 4.10</i>
textureDownloaderCopy :: (HasCallStack, MonadIO m) => TextureDownloader -> m TextureDownloader

-- | Downloads the given texture pixels into a <tt>GBytes</tt>. The
--   rowstride will be stored in the stride value.
--   
--   This function will abort if it tries to download a large texture and
--   fails to allocate memory. If you think that may happen, you should
--   handle memory allocation yourself and use
--   <a>textureDownloaderDownloadInto</a> once allocation succeeded.
--   
--   This function cannot be used with a multiplanar format. Use
--   <a>textureDownloaderDownloadBytesWithPlanes</a> for that purpose.
--   
--   <i>Since: 4.10</i>
textureDownloaderDownloadBytes :: (HasCallStack, MonadIO m) => TextureDownloader -> m (Bytes, CSize)

-- | Downloads the <i><tt>texture</tt></i> into local memory.
--   
--   This function cannot be used with a multiplanar format.
--   
--   <i>Since: 4.10</i>
textureDownloaderDownloadInto :: (HasCallStack, MonadIO m) => TextureDownloader -> Ptr Word8 -> CSize -> m ()

-- | Frees the given downloader and all its associated resources.
--   
--   <i>Since: 4.10</i>
textureDownloaderFree :: (HasCallStack, MonadIO m) => TextureDownloader -> m ()

-- | Gets the color state that the data will be downloaded in.
--   
--   <i>Since: 4.16</i>
textureDownloaderGetColorState :: (HasCallStack, MonadIO m) => TextureDownloader -> m ColorState

-- | Gets the format that the data will be downloaded in.
--   
--   <i>Since: 4.10</i>
textureDownloaderGetFormat :: (HasCallStack, MonadIO m) => TextureDownloader -> m MemoryFormat

-- | Gets the texture that the downloader will download.
--   
--   <i>Since: 4.10</i>
textureDownloaderGetTexture :: (HasCallStack, MonadIO m) => TextureDownloader -> m Texture

-- | Creates a new texture downloader for <i><tt>texture</tt></i>.
--   
--   By default, the downloader will convert the data to the default memory
--   format, and to the sRGB color state.
--   
--   <i>Since: 4.10</i>
textureDownloaderNew :: (HasCallStack, MonadIO m, IsTexture a) => a -> m TextureDownloader

-- | Sets the color state the downloader will convert the data to.
--   
--   By default, the sRGB colorstate returned by
--   <tt><i>ColorState.get_srgb</i></tt> is used.
--   
--   <i>Since: 4.16</i>
textureDownloaderSetColorState :: (HasCallStack, MonadIO m) => TextureDownloader -> ColorState -> m ()

-- | Sets the format the downloader will download.
--   
--   By default, GDK_MEMORY_DEFAULT is set.
--   
--   <i>Since: 4.10</i>
textureDownloaderSetFormat :: (HasCallStack, MonadIO m) => TextureDownloader -> MemoryFormat -> m ()

-- | Changes the texture the downloader will download.
--   
--   <i>Since: 4.10</i>
textureDownloaderSetTexture :: (HasCallStack, MonadIO m, IsTexture a) => TextureDownloader -> a -> m ()
instance GHC.Classes.Eq GI.Gdk.Structs.TextureDownloader.TextureDownloader
instance Data.GI.Base.BasicTypes.GBoxed GI.Gdk.Structs.TextureDownloader.TextureDownloader
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Structs.TextureDownloader.TextureDownloader
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Structs.TextureDownloader.TextureDownloader)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.TextureDownloader.TextureDownloader
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Structs.TextureDownloader.TextureDownloader


-- | Stores a single event in a motion history.
--   
--   To check whether an axis is present, check whether the corresponding
--   flag from the [flags<i><tt>gdk</tt></i>.AxisFlags] enumeration is set
--   in the <i><tt>flags</tt></i> To access individual axis values, use the
--   values of the values of the <a>AxisUse</a> enumerations as indices.
module GI.Gdk.Structs.TimeCoord

-- | Memory-managed wrapper type.
newtype TimeCoord
TimeCoord :: ManagedPtr TimeCoord -> TimeCoord

-- | Construct a <a>TimeCoord</a> struct initialized to zero.
newZeroTimeCoord :: MonadIO m => m TimeCoord

-- | Get the value of the “<tt>flags</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> timeCoord #flags
--   </pre>
getTimeCoordFlags :: MonadIO m => TimeCoord -> m [AxisFlags]

-- | Set the value of the “<tt>flags</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> timeCoord [ #flags <a>:=</a> value ]
--   </pre>
setTimeCoordFlags :: MonadIO m => TimeCoord -> [AxisFlags] -> m ()

-- | Get the value of the “<tt>time</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> timeCoord #time
--   </pre>
getTimeCoordTime :: MonadIO m => TimeCoord -> m Word32

-- | Set the value of the “<tt>time</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> timeCoord [ #time <a>:=</a> value ]
--   </pre>
setTimeCoordTime :: MonadIO m => TimeCoord -> Word32 -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Structs.TimeCoord.TimeCoord
instance Data.GI.Base.BasicTypes.CallocPtr GI.Gdk.Structs.TimeCoord.TimeCoord
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Gdk.Structs.TimeCoord.TimeCoord tag
instance GHC.Classes.Eq GI.Gdk.Structs.TimeCoord.TimeCoord
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.TimeCoord.TimeCoord


-- | Represents the platform-specific Vulkan draw context.
--   
--   <tt>GdkVulkanContext</tt>s are created for a surface using
--   <a>surfaceCreateVulkanContext</a>, and the context will match the
--   characteristics of the surface.
--   
--   Support for <tt>GdkVulkanContext</tt> is platform-specific and context
--   creation can fail, returning <a>Nothing</a> context.
module GI.Gdk.Objects.VulkanContext

-- | Memory-managed wrapper type.
newtype VulkanContext
VulkanContext :: ManagedPtr VulkanContext -> VulkanContext

-- | Type class for types which can be safely cast to <a>VulkanContext</a>,
--   for instance with <a>toVulkanContext</a>.
class (GObject o, IsDescendantOf VulkanContext o) => IsVulkanContext o

-- | Cast to <a>VulkanContext</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toVulkanContext :: (MonadIO m, IsVulkanContext o) => o -> m VulkanContext

-- | Emitted when the images managed by this context have changed.
--   
--   Usually this means that the swapchain had to be recreated, for example
--   in response to a change of the surface size.
type VulkanContextImagesUpdatedCallback = IO ()

-- | Connect a signal handler for the <a>imagesUpdated</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> vulkanContext #imagesUpdated callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterVulkanContextImagesUpdated :: (IsVulkanContext a, MonadIO m) => a -> ((?self :: a) => VulkanContextImagesUpdatedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>imagesUpdated</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> vulkanContext #imagesUpdated callback
--   </pre>
onVulkanContextImagesUpdated :: (IsVulkanContext a, MonadIO m) => a -> ((?self :: a) => VulkanContextImagesUpdatedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gdk.Objects.VulkanContext.VulkanContext
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.VulkanContext.VulkanContext
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.VulkanContext.VulkanContext
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.VulkanContext.VulkanContext)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.VulkanContext.VulkanContext o) => GI.Gdk.Objects.VulkanContext.IsVulkanContext o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.VulkanContext.VulkanContext
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.VulkanContext.VulkanContext


-- | An event related to a gesture on a touchpad device.
--   
--   Unlike touchscreens, where the windowing system sends basic sequences
--   of begin, update, end events, and leaves gesture recognition to the
--   clients, touchpad gestures are typically processed by the system,
--   resulting in these events.
module GI.Gdk.Objects.TouchpadEvent

-- | Memory-managed wrapper type.
newtype TouchpadEvent
TouchpadEvent :: ManagedPtr TouchpadEvent -> TouchpadEvent

-- | Type class for types which can be safely cast to <a>TouchpadEvent</a>,
--   for instance with <a>toTouchpadEvent</a>.
class (BoxedPtr o, TypedObject o, IsDescendantOf TouchpadEvent o) => IsTouchpadEvent o

-- | Cast to <a>TouchpadEvent</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toTouchpadEvent :: (MonadIO m, IsTouchpadEvent o) => o -> m TouchpadEvent

-- | Extracts delta information from a touchpad event.
touchpadEventGetDeltas :: (HasCallStack, MonadIO m, IsTouchpadEvent a) => a -> m (Double, Double)

-- | Extracts the touchpad gesture phase from a touchpad event.
touchpadEventGetGesturePhase :: (HasCallStack, MonadIO m, IsTouchpadEvent a) => a -> m TouchpadGesturePhase

-- | Extracts the number of fingers from a touchpad event.
touchpadEventGetNFingers :: (HasCallStack, MonadIO m, IsTouchpadEvent a) => a -> m Word32

-- | Extracts the angle delta from a touchpad pinch event.
touchpadEventGetPinchAngleDelta :: (HasCallStack, MonadIO m, IsTouchpadEvent a) => a -> m Double

-- | Extracts the scale from a touchpad pinch event.
touchpadEventGetPinchScale :: (HasCallStack, MonadIO m, IsTouchpadEvent a) => a -> m Double
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Objects.TouchpadEvent.TouchpadEvent
instance GHC.Classes.Eq GI.Gdk.Objects.TouchpadEvent.TouchpadEvent
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.TouchpadEvent.TouchpadEvent
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.TouchpadEvent.TouchpadEvent o) => GI.Gdk.Objects.TouchpadEvent.IsTouchpadEvent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.TouchpadEvent.TouchpadEvent
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.TouchpadEvent.TouchpadEvent


-- | An event related to a touch-based device.
module GI.Gdk.Objects.TouchEvent

-- | Memory-managed wrapper type.
newtype TouchEvent
TouchEvent :: ManagedPtr TouchEvent -> TouchEvent

-- | Type class for types which can be safely cast to <a>TouchEvent</a>,
--   for instance with <a>toTouchEvent</a>.
class (BoxedPtr o, TypedObject o, IsDescendantOf TouchEvent o) => IsTouchEvent o

-- | Cast to <a>TouchEvent</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toTouchEvent :: (MonadIO m, IsTouchEvent o) => o -> m TouchEvent

-- | Extracts whether a touch event is emulating a pointer event.
touchEventGetEmulatingPointer :: (HasCallStack, MonadIO m, IsTouchEvent a) => a -> m Bool
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Objects.TouchEvent.TouchEvent
instance GHC.Classes.Eq GI.Gdk.Objects.TouchEvent.TouchEvent
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.TouchEvent.TouchEvent
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.TouchEvent.TouchEvent o) => GI.Gdk.Objects.TouchEvent.IsTouchEvent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.TouchEvent.TouchEvent
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.TouchEvent.TouchEvent


-- | Represents a rectangular region on the screen.
--   
--   It’s a low-level object, used to implement high-level objects such as
--   <a>GtkWindow</a>.
--   
--   The surfaces you see in practice are either <a>Toplevel</a> or
--   <a>Popup</a>, and those interfaces provide much of the required API to
--   interact with these surfaces. Other, more specialized surface types
--   exist, but you will rarely interact with them directly.
module GI.Gdk.Objects.Surface

-- | Memory-managed wrapper type.
newtype Surface
Surface :: ManagedPtr Surface -> Surface

-- | Type class for types which can be safely cast to <a>Surface</a>, for
--   instance with <a>toSurface</a>.
class (GObject o, IsDescendantOf Surface o) => IsSurface o

-- | Cast to <a>Surface</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toSurface :: (MonadIO m, IsSurface o) => o -> m Surface

-- | Emits a short beep associated to <i><tt>surface</tt></i>.
--   
--   If the display of <i><tt>surface</tt></i> does not support per-surface
--   beeps, emits a short beep on the display just as <a>displayBeep</a>.
surfaceBeep :: (HasCallStack, MonadIO m, IsSurface a) => a -> m ()

-- | Creates a new <tt>GdkCairoContext</tt> for rendering on
--   <i><tt>surface</tt></i>.

-- | <i>Deprecated: (Since version 4.18)Drawing content with Cairo should
--   be done viaCairo rendernodes, not by using the Cairo renderer.</i>
surfaceCreateCairoContext :: (HasCallStack, MonadIO m, IsSurface a) => a -> m CairoContext

-- | Creates a new <tt>GdkGLContext</tt> for the <tt>GdkSurface</tt>.
--   
--   The context is disconnected from any particular surface or surface. If
--   the creation of the <tt>GdkGLContext</tt> failed,
--   <i><tt>error</tt></i> will be set. Before using the returned
--   <tt>GdkGLContext</tt>, you will need to call
--   <a>gLContextMakeCurrent</a> or <a>gLContextRealize</a>.
surfaceCreateGlContext :: (HasCallStack, MonadIO m, IsSurface a) => a -> m GLContext

-- | Create a new Cairo surface that is as compatible as possible with the
--   given <i><tt>surface</tt></i>.
--   
--   For example the new surface will have the same fallback resolution and
--   font options as <i><tt>surface</tt></i>. Generally, the new surface
--   will also use the same backend as <i><tt>surface</tt></i>, unless that
--   is not possible for some reason. The type of the returned surface may
--   be examined with <tt><i>cairo_surface_get_type()</i></tt>.
--   
--   Initially the surface contents are all 0 (transparent if contents have
--   transparency, black otherwise.)
--   
--   This function always returns a valid pointer, but it will return a
--   pointer to a “nil” surface if <i><tt>other</tt></i> is already in an
--   error state or any other error occurs.

-- | <i>Deprecated: (Since version 4.12)Create a suitable cairo image
--   surface yourself</i>
surfaceCreateSimilarSurface :: (HasCallStack, MonadIO m, IsSurface a) => a -> Content -> Int32 -> Int32 -> m Surface

-- | Sets an error and returns <a>Nothing</a>.

-- | <i>Deprecated: (Since version 4.14)GTK does not expose any Vulkan
--   internals. Thisfunction is a leftover that was accidentally
--   exposed.</i>
surfaceCreateVulkanContext :: (HasCallStack, MonadIO m, IsSurface a) => a -> m VulkanContext

-- | Destroys the window system resources associated with
--   <i><tt>surface</tt></i> and decrements <i><tt>surface</tt></i>'s
--   reference count.
--   
--   The window system resources for all children of
--   <i><tt>surface</tt></i> are also destroyed, but the children’s
--   reference counts are not decremented.
--   
--   Note that a surface will not be destroyed automatically when its
--   reference count reaches zero. You must call this function yourself
--   before that happens.
surfaceDestroy :: (HasCallStack, MonadIO m, IsSurface a) => a -> m ()

-- | Retrieves a <tt>GdkCursor</tt> pointer for the cursor currently set on
--   the <tt>GdkSurface</tt>.
--   
--   If the return value is <a>Nothing</a> then there is no custom cursor
--   set on the surface, and it is using the cursor for its parent surface.
--   
--   Use <a>surfaceSetCursor</a> to unset the cursor of the surface.
surfaceGetCursor :: (HasCallStack, MonadIO m, IsSurface a) => a -> m (Maybe Cursor)

-- | Retrieves a <tt>GdkCursor</tt> pointer for the <i><tt>device</tt></i>
--   currently set on the specified <tt>GdkSurface</tt>.
--   
--   If the return value is <a>Nothing</a> then there is no custom cursor
--   set on the specified surface, and it is using the cursor for its
--   parent surface.
--   
--   Use <a>surfaceSetCursor</a> to unset the cursor of the surface.
surfaceGetDeviceCursor :: (HasCallStack, MonadIO m, IsSurface a, IsDevice b) => a -> b -> m (Maybe Cursor)

-- | Obtains the current device position and modifier state.
--   
--   The position is given in coordinates relative to the upper left corner
--   of <i><tt>surface</tt></i>.
surfaceGetDevicePosition :: (HasCallStack, MonadIO m, IsSurface a, IsDevice b) => a -> b -> m (Bool, Double, Double, [ModifierType])

-- | Gets the <tt>GdkDisplay</tt> associated with a <tt>GdkSurface</tt>.
surfaceGetDisplay :: (HasCallStack, MonadIO m, IsSurface a) => a -> m Display

-- | Gets the frame clock for the surface.
--   
--   The frame clock for a surface never changes unless the surface is
--   reparented to a new toplevel surface.
surfaceGetFrameClock :: (HasCallStack, MonadIO m, IsSurface a) => a -> m FrameClock

-- | Returns the height of the given <i><tt>surface</tt></i>.
--   
--   Surface size is reported in ”application pixels”, not ”device pixels”
--   (see <a>surfaceGetScaleFactor</a>).
surfaceGetHeight :: (HasCallStack, MonadIO m, IsSurface a) => a -> m Int32

-- | Checks whether the surface has been mapped.
--   
--   A surface is mapped with <a>toplevelPresent</a> or
--   <a>popupPresent</a>.
surfaceGetMapped :: (HasCallStack, MonadIO m, IsSurface a) => a -> m Bool

-- | Returns the internal scale that maps from surface coordinates to the
--   actual device pixels.
--   
--   When the scale is bigger than 1, the windowing system prefers to get
--   buffers with a resolution that is bigger than the surface size (e.g.
--   to show the surface on a high-resolution display, or in a magnifier).
--   
--   Compare with <a>surfaceGetScaleFactor</a>, which returns the next
--   larger integer.
--   
--   The scale may change during the lifetime of the surface.
--   
--   <i>Since: 4.12</i>
surfaceGetScale :: (HasCallStack, MonadIO m, IsSurface a) => a -> m Double

-- | Returns the internal scale factor that maps from surface coordinates
--   to the actual device pixels.
--   
--   On traditional systems this is 1, but on very high density outputs
--   this can be a higher value (often 2). A higher value means that
--   drawing is automatically scaled up to a higher resolution, so any code
--   doing drawing will automatically look nicer. However, if you are
--   supplying pixel-based data the scale value can be used to determine
--   whether to use a pixel resource with higher resolution data.
--   
--   The scale factor may change during the lifetime of the surface.
surfaceGetScaleFactor :: (HasCallStack, MonadIO m, IsSurface a) => a -> m Int32

-- | Returns the width of the given <i><tt>surface</tt></i>.
--   
--   Surface size is reported in ”application pixels”, not ”device pixels”
--   (see <a>surfaceGetScaleFactor</a>).
surfaceGetWidth :: (HasCallStack, MonadIO m, IsSurface a) => a -> m Int32

-- | Hide the surface.
--   
--   For toplevel surfaces, withdraws them, so they will no longer be known
--   to the window manager; for all surfaces, unmaps them, so they won’t be
--   displayed. Normally done automatically as part of
--   <a>gtk_widget_hide()</a>.
surfaceHide :: (HasCallStack, MonadIO m, IsSurface a) => a -> m ()

-- | Check to see if a surface is destroyed.
surfaceIsDestroyed :: (HasCallStack, MonadIO m, IsSurface a) => a -> m Bool

-- | Create a new popup surface.
--   
--   The surface will be attached to <i><tt>parent</tt></i> and can be
--   positioned relative to it using <a>popupPresent</a>.
surfaceNewPopup :: (HasCallStack, MonadIO m, IsSurface a) => a -> Bool -> m Surface

-- | Creates a new toplevel surface.
surfaceNewToplevel :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m Surface

-- | Forces a <a>Surface::render</a> signal emission for
--   <i><tt>surface</tt></i> to be scheduled.
--   
--   This function is useful for implementations that track invalid regions
--   on their own.
surfaceQueueRender :: (HasCallStack, MonadIO m, IsSurface a) => a -> m ()

-- | Request a layout phase from the surface's frame clock.
--   
--   See <a>frameClockRequestPhase</a>.
surfaceRequestLayout :: (HasCallStack, MonadIO m, IsSurface a) => a -> m ()

-- | Sets the default mouse pointer for a <tt>GdkSurface</tt>.
--   
--   Passing <a>Nothing</a> for the <i><tt>cursor</tt></i> argument means
--   that <i><tt>surface</tt></i> will use the cursor of its parent
--   surface. Most surfaces should use this default. Note that
--   <i><tt>cursor</tt></i> must be for the same display as
--   <i><tt>surface</tt></i>.
--   
--   Use <a>cursorNewFromName</a> or <a>cursorNewFromTexture</a> to create
--   the cursor. To make the cursor invisible, use
--   <tt><i>GDK_BLANK_CURSOR</i></tt>.
surfaceSetCursor :: (HasCallStack, MonadIO m, IsSurface a, IsCursor b) => a -> Maybe b -> m ()

-- | Sets a specific <tt>GdkCursor</tt> for a given device when it gets
--   inside <i><tt>surface</tt></i>.
--   
--   Passing <a>Nothing</a> for the <i><tt>cursor</tt></i> argument means
--   that <i><tt>surface</tt></i> will use the cursor of its parent
--   surface. Most surfaces should use this default.
--   
--   Use <a>cursorNewFromName</a> or <a>cursorNewFromTexture</a> to create
--   the cursor. To make the cursor invisible, use
--   <tt><i>GDK_BLANK_CURSOR</i></tt>.
surfaceSetDeviceCursor :: (HasCallStack, MonadIO m, IsSurface a, IsDevice b, IsCursor c) => a -> b -> c -> m ()

-- | Apply the region to the surface for the purpose of event handling.
--   
--   Mouse events which happen while the pointer position corresponds to an
--   unset bit in the mask will be passed on the surface below
--   <i><tt>surface</tt></i>.
--   
--   An input region is typically used with RGBA surfaces. The alpha
--   channel of the surface defines which pixels are invisible and allows
--   for nicely antialiased borders, and the input region controls where
--   the surface is “clickable”.
--   
--   Use <a>displaySupportsInputShapes</a> to find out if a particular
--   backend supports input regions.
surfaceSetInputRegion :: (HasCallStack, MonadIO m, IsSurface a) => a -> Maybe Region -> m ()

-- | Marks a region of the <tt>GdkSurface</tt> as opaque.
--   
--   For optimisation purposes, compositing window managers may like to not
--   draw obscured regions of surfaces, or turn off blending during for
--   these regions. With RGB windows with no transparency, this is just the
--   shape of the window, but with ARGB32 windows, the compositor does not
--   know what regions of the window are transparent or not.
--   
--   This function only works for toplevel surfaces.
--   
--   GTK will update this property automatically if the
--   <i><tt>surface</tt></i> background is opaque, as we know where the
--   opaque regions are. If your surface background is not opaque, please
--   update this property in your <a>GtkWidgetClass.css_changed</a>
--   handler.

-- | <i>Deprecated: (Since version 4.16)GDK can figure out the opaque parts
--   of a window itselfby inspecting the contents that are drawn.</i>
surfaceSetOpaqueRegion :: (HasCallStack, MonadIO m, IsSurface a) => a -> Maybe Region -> m ()

-- | Translates coordinates between two surfaces.
--   
--   Note that this only works if <i><tt>to</tt></i> and
--   <i><tt>from</tt></i> are popups or transient-for to the same toplevel
--   (directly or indirectly).
surfaceTranslateCoordinates :: (HasCallStack, MonadIO m, IsSurface a, IsSurface b) => a -> b -> Double -> Double -> m (Bool, Double, Double)

-- | Set the value of the “<tt>cursor</tt>” property to <a>Nothing</a>.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #cursor
--   </pre>
clearSurfaceCursor :: (MonadIO m, IsSurface o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>cursor</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructSurfaceCursor :: (IsSurface o, MonadIO m, IsCursor a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>cursor</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> surface #cursor
--   </pre>
getSurfaceCursor :: (MonadIO m, IsSurface o) => o -> m (Maybe Cursor)

-- | Set the value of the “<tt>cursor</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> surface [ #cursor <a>:=</a> value ]
--   </pre>
setSurfaceCursor :: (MonadIO m, IsSurface o, IsCursor a) => o -> a -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>display</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructSurfaceDisplay :: (IsSurface o, MonadIO m, IsDisplay a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>display</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> surface #display
--   </pre>
getSurfaceDisplay :: (MonadIO m, IsSurface o) => o -> m Display

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>frame-clock</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructSurfaceFrameClock :: (IsSurface o, MonadIO m, IsFrameClock a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>frame-clock</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> surface #frameClock
--   </pre>
getSurfaceFrameClock :: (MonadIO m, IsSurface o) => o -> m FrameClock

-- | Get the value of the “<tt>height</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> surface #height
--   </pre>
getSurfaceHeight :: (MonadIO m, IsSurface o) => o -> m Int32

-- | Get the value of the “<tt>mapped</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> surface #mapped
--   </pre>
getSurfaceMapped :: (MonadIO m, IsSurface o) => o -> m Bool

-- | Get the value of the “<tt>scale</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> surface #scale
--   </pre>
getSurfaceScale :: (MonadIO m, IsSurface o) => o -> m Double

-- | Get the value of the “<tt>scale-factor</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> surface #scaleFactor
--   </pre>
getSurfaceScaleFactor :: (MonadIO m, IsSurface o) => o -> m Int32

-- | Get the value of the “<tt>width</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> surface #width
--   </pre>
getSurfaceWidth :: (MonadIO m, IsSurface o) => o -> m Int32

-- | Emitted when <i><tt>surface</tt></i> starts being present on the
--   monitor.
type SurfaceEnterMonitorCallback = Monitor -> IO ()

-- | Connect a signal handler for the <a>enterMonitor</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> surface #enterMonitor callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterSurfaceEnterMonitor :: (IsSurface a, MonadIO m) => a -> ((?self :: a) => SurfaceEnterMonitorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>enterMonitor</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> surface #enterMonitor callback
--   </pre>
onSurfaceEnterMonitor :: (IsSurface a, MonadIO m) => a -> ((?self :: a) => SurfaceEnterMonitorCallback) -> m SignalHandlerId

-- | Emitted when GDK receives an input event for <i><tt>surface</tt></i>.
type SurfaceEventCallback = Event -> IO Bool

-- | Connect a signal handler for the <a>event</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> surface #event callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterSurfaceEvent :: (IsSurface a, MonadIO m) => a -> ((?self :: a) => SurfaceEventCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>event</a> signal, to be run before
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>on</a> surface #event callback
--   </pre>
onSurfaceEvent :: (IsSurface a, MonadIO m) => a -> ((?self :: a) => SurfaceEventCallback) -> m SignalHandlerId

-- | Emitted when the size of <i><tt>surface</tt></i> is changed, or when
--   relayout should be performed.
--   
--   Surface size is reported in ”application pixels”, not ”device pixels”
--   (see <a>surfaceGetScaleFactor</a>).
type SurfaceLayoutCallback = Int32 -> Int32 -> IO ()

-- | Connect a signal handler for the <a>layout</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> surface #layout callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterSurfaceLayout :: (IsSurface a, MonadIO m) => a -> ((?self :: a) => SurfaceLayoutCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>layout</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> surface #layout callback
--   </pre>
onSurfaceLayout :: (IsSurface a, MonadIO m) => a -> ((?self :: a) => SurfaceLayoutCallback) -> m SignalHandlerId

-- | Emitted when <i><tt>surface</tt></i> stops being present on the
--   monitor.
type SurfaceLeaveMonitorCallback = Monitor -> IO ()

-- | Connect a signal handler for the <a>leaveMonitor</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> surface #leaveMonitor callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterSurfaceLeaveMonitor :: (IsSurface a, MonadIO m) => a -> ((?self :: a) => SurfaceLeaveMonitorCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>leaveMonitor</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> surface #leaveMonitor callback
--   </pre>
onSurfaceLeaveMonitor :: (IsSurface a, MonadIO m) => a -> ((?self :: a) => SurfaceLeaveMonitorCallback) -> m SignalHandlerId

-- | Emitted when part of the surface needs to be redrawn.
type SurfaceRenderCallback = Region -> IO Bool

-- | Connect a signal handler for the <a>render</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> surface #render callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterSurfaceRender :: (IsSurface a, MonadIO m) => a -> ((?self :: a) => SurfaceRenderCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>render</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> surface #render callback
--   </pre>
onSurfaceRender :: (IsSurface a, MonadIO m) => a -> ((?self :: a) => SurfaceRenderCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gdk.Objects.Surface.Surface
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.Surface.Surface
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.Surface.Surface
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.Surface.Surface)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.Surface.Surface o) => GI.Gdk.Objects.Surface.IsSurface o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.Surface.Surface
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.Surface.Surface


-- | Represents a collection of input devices that belong to a user.
module GI.Gdk.Objects.Seat

-- | Memory-managed wrapper type.
newtype Seat
Seat :: ManagedPtr Seat -> Seat

-- | Type class for types which can be safely cast to <a>Seat</a>, for
--   instance with <a>toSeat</a>.
class (GObject o, IsDescendantOf Seat o) => IsSeat o

-- | Cast to <a>Seat</a>, for types for which this is known to be safe. For
--   general casts, use <a>castTo</a>.
toSeat :: (MonadIO m, IsSeat o) => o -> m Seat

-- | Returns the capabilities this <tt>GdkSeat</tt> currently has.
seatGetCapabilities :: (HasCallStack, MonadIO m, IsSeat a) => a -> m [SeatCapabilities]

-- | Returns the devices that match the given capabilities.
seatGetDevices :: (HasCallStack, MonadIO m, IsSeat a) => a -> [SeatCapabilities] -> m [Device]

-- | Returns the <tt>GdkDisplay</tt> this seat belongs to.
seatGetDisplay :: (HasCallStack, MonadIO m, IsSeat a) => a -> m Display

-- | Returns the device that routes keyboard events.
seatGetKeyboard :: (HasCallStack, MonadIO m, IsSeat a) => a -> m (Maybe Device)

-- | Returns the device that routes pointer events.
seatGetPointer :: (HasCallStack, MonadIO m, IsSeat a) => a -> m (Maybe Device)

-- | Returns all <tt>GdkDeviceTools</tt> that are known to the application.
seatGetTools :: (HasCallStack, MonadIO m, IsSeat a) => a -> m [DeviceTool]

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>display</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructSeatDisplay :: (IsSeat o, MonadIO m, IsDisplay a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>display</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> seat #display
--   </pre>
getSeatDisplay :: (MonadIO m, IsSeat o) => o -> m Display

-- | Emitted when a new input device is related to this seat.
type SeatDeviceAddedCallback = Device -> IO ()

-- | Connect a signal handler for the <a>deviceAdded</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> seat #deviceAdded callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterSeatDeviceAdded :: (IsSeat a, MonadIO m) => a -> ((?self :: a) => SeatDeviceAddedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>deviceAdded</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> seat #deviceAdded callback
--   </pre>
onSeatDeviceAdded :: (IsSeat a, MonadIO m) => a -> ((?self :: a) => SeatDeviceAddedCallback) -> m SignalHandlerId

-- | Emitted when an input device is removed (e.g. unplugged).
type SeatDeviceRemovedCallback = Device -> IO ()

-- | Connect a signal handler for the <a>deviceRemoved</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> seat #deviceRemoved callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterSeatDeviceRemoved :: (IsSeat a, MonadIO m) => a -> ((?self :: a) => SeatDeviceRemovedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>deviceRemoved</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> seat #deviceRemoved callback
--   </pre>
onSeatDeviceRemoved :: (IsSeat a, MonadIO m) => a -> ((?self :: a) => SeatDeviceRemovedCallback) -> m SignalHandlerId

-- | Emitted whenever a new tool is made known to the seat.
--   
--   The tool may later be assigned to a device (i.e. on proximity with a
--   tablet). The device will emit the <a>Device::toolChanged</a> signal
--   accordingly.
--   
--   A same tool may be used by several devices.
type SeatToolAddedCallback = DeviceTool -> IO ()

-- | Connect a signal handler for the <a>toolAdded</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> seat #toolAdded callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterSeatToolAdded :: (IsSeat a, MonadIO m) => a -> ((?self :: a) => SeatToolAddedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>toolAdded</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> seat #toolAdded callback
--   </pre>
onSeatToolAdded :: (IsSeat a, MonadIO m) => a -> ((?self :: a) => SeatToolAddedCallback) -> m SignalHandlerId

-- | Emitted whenever a tool is no longer known to this
--   <i><tt>seat</tt></i>.
type SeatToolRemovedCallback = DeviceTool -> IO ()

-- | Connect a signal handler for the <a>toolRemoved</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> seat #toolRemoved callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterSeatToolRemoved :: (IsSeat a, MonadIO m) => a -> ((?self :: a) => SeatToolRemovedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>toolRemoved</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> seat #toolRemoved callback
--   </pre>
onSeatToolRemoved :: (IsSeat a, MonadIO m) => a -> ((?self :: a) => SeatToolRemovedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gdk.Objects.Seat.Seat
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.Seat.Seat
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.Seat.Seat
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.Seat.Seat)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.Seat.Seat o) => GI.Gdk.Objects.Seat.IsSeat o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.Seat.Seat
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.Seat.Seat


-- | An event related to a scrolling motion.
module GI.Gdk.Objects.ScrollEvent

-- | Memory-managed wrapper type.
newtype ScrollEvent
ScrollEvent :: ManagedPtr ScrollEvent -> ScrollEvent

-- | Type class for types which can be safely cast to <a>ScrollEvent</a>,
--   for instance with <a>toScrollEvent</a>.
class (BoxedPtr o, TypedObject o, IsDescendantOf ScrollEvent o) => IsScrollEvent o

-- | Cast to <a>ScrollEvent</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toScrollEvent :: (MonadIO m, IsScrollEvent o) => o -> m ScrollEvent

-- | Extracts the scroll deltas of a scroll event.
--   
--   The deltas will be zero unless the scroll direction is
--   <a>ScrollDirectionSmooth</a>.
--   
--   For the representation unit of these deltas, see
--   <a>scrollEventGetUnit</a>.
scrollEventGetDeltas :: (HasCallStack, MonadIO m, IsScrollEvent a) => a -> m (Double, Double)

-- | Extracts the direction of a scroll event.
scrollEventGetDirection :: (HasCallStack, MonadIO m, IsScrollEvent a) => a -> m ScrollDirection

-- | Extracts the scroll direction relative to the physical motion.
--   
--   <i>Since: 4.20</i>
scrollEventGetRelativeDirection :: (HasCallStack, MonadIO m, IsScrollEvent a) => a -> m ScrollRelativeDirection

-- | Extracts the scroll delta unit of a scroll event.
--   
--   The unit will always be <a>ScrollUnitWheel</a> if the scroll direction
--   is not <a>ScrollDirectionSmooth</a>.
--   
--   <i>Since: 4.8</i>
scrollEventGetUnit :: (HasCallStack, MonadIO m, IsScrollEvent a) => a -> m ScrollUnit

-- | Check whether a scroll event is a stop scroll event.
--   
--   Scroll sequences with smooth scroll information may provide a stop
--   scroll event once the interaction with the device finishes, e.g. by
--   lifting a finger. This stop scroll event is the signal that a widget
--   may trigger kinetic scrolling based on the current velocity.
--   
--   Stop scroll events always have a delta of 0/0.
scrollEventIsStop :: (HasCallStack, MonadIO m, IsScrollEvent a) => a -> m Bool
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Objects.ScrollEvent.ScrollEvent
instance GHC.Classes.Eq GI.Gdk.Objects.ScrollEvent.ScrollEvent
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.ScrollEvent.ScrollEvent
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.ScrollEvent.ScrollEvent o) => GI.Gdk.Objects.ScrollEvent.IsScrollEvent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.ScrollEvent.ScrollEvent
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.ScrollEvent.ScrollEvent


-- | An event related to the proximity of a tool to a device.
module GI.Gdk.Objects.ProximityEvent

-- | Memory-managed wrapper type.
newtype ProximityEvent
ProximityEvent :: ManagedPtr ProximityEvent -> ProximityEvent

-- | Type class for types which can be safely cast to
--   <a>ProximityEvent</a>, for instance with <a>toProximityEvent</a>.
class (BoxedPtr o, TypedObject o, IsDescendantOf ProximityEvent o) => IsProximityEvent o

-- | Cast to <a>ProximityEvent</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toProximityEvent :: (MonadIO m, IsProximityEvent o) => o -> m ProximityEvent
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Objects.ProximityEvent.ProximityEvent
instance GHC.Classes.Eq GI.Gdk.Objects.ProximityEvent.ProximityEvent
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.ProximityEvent.ProximityEvent
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.ProximityEvent.ProximityEvent o) => GI.Gdk.Objects.ProximityEvent.IsProximityEvent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.ProximityEvent.ProximityEvent
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.ProximityEvent.ProximityEvent


-- | An event related to a pad-based device.
module GI.Gdk.Objects.PadEvent

-- | Memory-managed wrapper type.
newtype PadEvent
PadEvent :: ManagedPtr PadEvent -> PadEvent

-- | Type class for types which can be safely cast to <a>PadEvent</a>, for
--   instance with <a>toPadEvent</a>.
class (BoxedPtr o, TypedObject o, IsDescendantOf PadEvent o) => IsPadEvent o

-- | Cast to <a>PadEvent</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toPadEvent :: (MonadIO m, IsPadEvent o) => o -> m PadEvent

-- | Extracts the information from a pad strip or ring event.
padEventGetAxisValue :: (HasCallStack, MonadIO m, IsPadEvent a) => a -> m (Word32, Double)

-- | Extracts information about the pressed button from a pad event.
padEventGetButton :: (HasCallStack, MonadIO m, IsPadEvent a) => a -> m Word32

-- | Extracts group and mode information from a pad event.
padEventGetGroupMode :: (HasCallStack, MonadIO m, IsPadEvent a) => a -> m (Word32, Word32)
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Objects.PadEvent.PadEvent
instance GHC.Classes.Eq GI.Gdk.Objects.PadEvent.PadEvent
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.PadEvent.PadEvent
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.PadEvent.PadEvent o) => GI.Gdk.Objects.PadEvent.IsPadEvent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.PadEvent.PadEvent
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.PadEvent.PadEvent


-- | An event related to a pointer or touch device motion.
module GI.Gdk.Objects.MotionEvent

-- | Memory-managed wrapper type.
newtype MotionEvent
MotionEvent :: ManagedPtr MotionEvent -> MotionEvent

-- | Type class for types which can be safely cast to <a>MotionEvent</a>,
--   for instance with <a>toMotionEvent</a>.
class (BoxedPtr o, TypedObject o, IsDescendantOf MotionEvent o) => IsMotionEvent o

-- | Cast to <a>MotionEvent</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toMotionEvent :: (MonadIO m, IsMotionEvent o) => o -> m MotionEvent
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Objects.MotionEvent.MotionEvent
instance GHC.Classes.Eq GI.Gdk.Objects.MotionEvent.MotionEvent
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.MotionEvent.MotionEvent
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.MotionEvent.MotionEvent o) => GI.Gdk.Objects.MotionEvent.IsMotionEvent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.MotionEvent.MotionEvent
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.MotionEvent.MotionEvent


-- | Represents the individual outputs that are associated with a
--   <tt>GdkDisplay</tt>.
--   
--   <tt>GdkDisplay</tt> keeps a <tt>GListModel</tt> to enumerate and
--   monitor monitors with <a>displayGetMonitors</a>. You can use
--   <a>displayGetMonitorAtSurface</a> to find a particular monitor.
module GI.Gdk.Objects.Monitor

-- | Memory-managed wrapper type.
newtype Monitor
Monitor :: ManagedPtr Monitor -> Monitor

-- | Type class for types which can be safely cast to <a>Monitor</a>, for
--   instance with <a>toMonitor</a>.
class (GObject o, IsDescendantOf Monitor o) => IsMonitor o

-- | Cast to <a>Monitor</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toMonitor :: (MonadIO m, IsMonitor o) => o -> m Monitor

-- | Gets the name of the monitor's connector, if available.
--   
--   These are strings such as "eDP-1", or "HDMI-2". They depend on
--   software and hardware configuration, and should not be relied on as
--   stable identifiers of a specific monitor.
monitorGetConnector :: (HasCallStack, MonadIO m, IsMonitor a) => a -> m (Maybe Text)

-- | Gets a string describing the monitor, if available.
--   
--   This can be used to identify a monitor in the UI.
--   
--   <i>Since: 4.10</i>
monitorGetDescription :: (HasCallStack, MonadIO m, IsMonitor a) => a -> m (Maybe Text)

-- | Gets the display that this monitor belongs to.
monitorGetDisplay :: (HasCallStack, MonadIO m, IsMonitor a) => a -> m Display

-- | Retrieves the size and position of the monitor within the display
--   coordinate space.
--   
--   The returned geometry is in ”application pixels”, not in ”device
--   pixels” (see <a>monitorGetScale</a>).
monitorGetGeometry :: (HasCallStack, MonadIO m, IsMonitor a) => a -> m Rectangle

-- | Gets the height in millimeters of the monitor.
monitorGetHeightMm :: (HasCallStack, MonadIO m, IsMonitor a) => a -> m Int32

-- | Gets the name or PNP ID of the monitor's manufacturer.
--   
--   Note that this value might also vary depending on actual display
--   backend.
--   
--   The PNP ID registry is located at <a>https://uefi.org/pnp_id_list</a>.
monitorGetManufacturer :: (HasCallStack, MonadIO m, IsMonitor a) => a -> m (Maybe Text)

-- | Gets the string identifying the monitor model, if available.
monitorGetModel :: (HasCallStack, MonadIO m, IsMonitor a) => a -> m (Maybe Text)

-- | Gets the refresh rate of the monitor, if available.
--   
--   The value is in milli-Hertz, so a refresh rate of 60Hz is returned as
--   60000.
monitorGetRefreshRate :: (HasCallStack, MonadIO m, IsMonitor a) => a -> m Int32

-- | Gets the internal scale factor that maps from monitor coordinates to
--   device pixels.
--   
--   This can be used if you want to create pixel based data for a
--   particular monitor, but most of the time you’re drawing to a surface
--   where it is better to use <a>surfaceGetScale</a> instead.
--   
--   <i>Since: 4.14</i>
monitorGetScale :: (HasCallStack, MonadIO m, IsMonitor a) => a -> m Double

-- | Gets the internal scale factor that maps from monitor coordinates to
--   device pixels.
--   
--   On traditional systems this is 1, but on very high density outputs it
--   can be a higher value (often 2).
--   
--   This can be used if you want to create pixel based data for a
--   particular monitor, but most of the time you’re drawing to a surface
--   where it is better to use <a>surfaceGetScaleFactor</a> instead.
monitorGetScaleFactor :: (HasCallStack, MonadIO m, IsMonitor a) => a -> m Int32

-- | Gets information about the layout of red, green and blue primaries for
--   pixels.
monitorGetSubpixelLayout :: (HasCallStack, MonadIO m, IsMonitor a) => a -> m SubpixelLayout

-- | Gets the width in millimeters of the monitor.
monitorGetWidthMm :: (HasCallStack, MonadIO m, IsMonitor a) => a -> m Int32

-- | Returns <a>True</a> if the <i><tt>monitor</tt></i> object corresponds
--   to a physical monitor.
--   
--   The <i><tt>monitor</tt></i> becomes invalid when the physical monitor
--   is unplugged or removed.
monitorIsValid :: (HasCallStack, MonadIO m, IsMonitor a) => a -> m Bool

-- | Get the value of the “<tt>connector</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> monitor #connector
--   </pre>
getMonitorConnector :: (MonadIO m, IsMonitor o) => o -> m (Maybe Text)

-- | Get the value of the “<tt>description</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> monitor #description
--   </pre>
getMonitorDescription :: (MonadIO m, IsMonitor o) => o -> m (Maybe Text)

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>display</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructMonitorDisplay :: (IsMonitor o, MonadIO m, IsDisplay a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>display</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> monitor #display
--   </pre>
getMonitorDisplay :: (MonadIO m, IsMonitor o) => o -> m Display

-- | Get the value of the “<tt>geometry</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> monitor #geometry
--   </pre>
getMonitorGeometry :: (MonadIO m, IsMonitor o) => o -> m (Maybe Rectangle)

-- | Get the value of the “<tt>height-mm</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> monitor #heightMm
--   </pre>
getMonitorHeightMm :: (MonadIO m, IsMonitor o) => o -> m Int32

-- | Get the value of the “<tt>manufacturer</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> monitor #manufacturer
--   </pre>
getMonitorManufacturer :: (MonadIO m, IsMonitor o) => o -> m (Maybe Text)

-- | Get the value of the “<tt>model</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> monitor #model
--   </pre>
getMonitorModel :: (MonadIO m, IsMonitor o) => o -> m (Maybe Text)

-- | Get the value of the “<tt>refresh-rate</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> monitor #refreshRate
--   </pre>
getMonitorRefreshRate :: (MonadIO m, IsMonitor o) => o -> m Int32

-- | Get the value of the “<tt>scale</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> monitor #scale
--   </pre>
getMonitorScale :: (MonadIO m, IsMonitor o) => o -> m Double

-- | Get the value of the “<tt>scale-factor</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> monitor #scaleFactor
--   </pre>
getMonitorScaleFactor :: (MonadIO m, IsMonitor o) => o -> m Int32

-- | Get the value of the “<tt>subpixel-layout</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> monitor #subpixelLayout
--   </pre>
getMonitorSubpixelLayout :: (MonadIO m, IsMonitor o) => o -> m SubpixelLayout

-- | Get the value of the “<tt>valid</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> monitor #valid
--   </pre>
getMonitorValid :: (MonadIO m, IsMonitor o) => o -> m Bool

-- | Get the value of the “<tt>width-mm</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> monitor #widthMm
--   </pre>
getMonitorWidthMm :: (MonadIO m, IsMonitor o) => o -> m Int32

-- | Emitted when the output represented by <i><tt>monitor</tt></i> gets
--   disconnected.
type MonitorInvalidateCallback = IO ()

-- | Connect a signal handler for the <a>invalidate</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> monitor #invalidate callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterMonitorInvalidate :: (IsMonitor a, MonadIO m) => a -> ((?self :: a) => MonitorInvalidateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>invalidate</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> monitor #invalidate callback
--   </pre>
onMonitorInvalidate :: (IsMonitor a, MonadIO m) => a -> ((?self :: a) => MonitorInvalidateCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gdk.Objects.Monitor.Monitor
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.Monitor.Monitor
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.Monitor.Monitor
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.Monitor.Monitor)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.Monitor.Monitor o) => GI.Gdk.Objects.Monitor.IsMonitor o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.Monitor.Monitor
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.Monitor.Monitor


-- | An event related to a key-based device.
module GI.Gdk.Objects.KeyEvent

-- | Memory-managed wrapper type.
newtype KeyEvent
KeyEvent :: ManagedPtr KeyEvent -> KeyEvent

-- | Type class for types which can be safely cast to <a>KeyEvent</a>, for
--   instance with <a>toKeyEvent</a>.
class (BoxedPtr o, TypedObject o, IsDescendantOf KeyEvent o) => IsKeyEvent o

-- | Cast to <a>KeyEvent</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toKeyEvent :: (MonadIO m, IsKeyEvent o) => o -> m KeyEvent

-- | Extracts the consumed modifiers from a key event.
keyEventGetConsumedModifiers :: (HasCallStack, MonadIO m, IsKeyEvent a) => a -> m [ModifierType]

-- | Extracts the keycode from a key event.
keyEventGetKeycode :: (HasCallStack, MonadIO m, IsKeyEvent a) => a -> m Word32

-- | Extracts the keyval from a key event.
keyEventGetKeyval :: (HasCallStack, MonadIO m, IsKeyEvent a) => a -> m Word32

-- | Extracts the layout from a key event.
keyEventGetLayout :: (HasCallStack, MonadIO m, IsKeyEvent a) => a -> m Word32

-- | Extracts the shift level from a key event.
keyEventGetLevel :: (HasCallStack, MonadIO m, IsKeyEvent a) => a -> m Word32

-- | Gets a keyval and modifier combination that will match the event.
--   
--   See <a>keyEventMatches</a>.
keyEventGetMatch :: (HasCallStack, MonadIO m, IsKeyEvent a) => a -> m (Bool, Word32, [ModifierType])

-- | Extracts whether the key event is for a modifier key.
keyEventIsModifier :: (HasCallStack, MonadIO m, IsKeyEvent a) => a -> m Bool

-- | Matches a key event against a keyval and modifiers.
--   
--   This is typically used to trigger keyboard shortcuts such as Ctrl-C.
--   
--   Partial matches are possible where the combination matches if the
--   currently active group is ignored.
--   
--   Note that we ignore Caps Lock for matching.
keyEventMatches :: (HasCallStack, MonadIO m, IsKeyEvent a) => a -> Word32 -> [ModifierType] -> m KeyMatch
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Objects.KeyEvent.KeyEvent
instance GHC.Classes.Eq GI.Gdk.Objects.KeyEvent.KeyEvent
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.KeyEvent.KeyEvent
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.KeyEvent.KeyEvent o) => GI.Gdk.Objects.KeyEvent.IsKeyEvent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.KeyEvent.KeyEvent
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.KeyEvent.KeyEvent


-- | An event related to a broken windowing system grab.
module GI.Gdk.Objects.GrabBrokenEvent

-- | Memory-managed wrapper type.
newtype GrabBrokenEvent
GrabBrokenEvent :: ManagedPtr GrabBrokenEvent -> GrabBrokenEvent

-- | Type class for types which can be safely cast to
--   <a>GrabBrokenEvent</a>, for instance with <a>toGrabBrokenEvent</a>.
class (BoxedPtr o, TypedObject o, IsDescendantOf GrabBrokenEvent o) => IsGrabBrokenEvent o

-- | Cast to <a>GrabBrokenEvent</a>, for types for which this is known to
--   be safe. For general casts, use <a>castTo</a>.
toGrabBrokenEvent :: (MonadIO m, IsGrabBrokenEvent o) => o -> m GrabBrokenEvent

-- | Extracts the grab surface from a grab broken event.
grabBrokenEventGetGrabSurface :: (HasCallStack, MonadIO m, IsGrabBrokenEvent a) => a -> m Surface

-- | Checks whether the grab broken event is for an implicit grab.
grabBrokenEventGetImplicit :: (HasCallStack, MonadIO m, IsGrabBrokenEvent a) => a -> m Bool
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Objects.GrabBrokenEvent.GrabBrokenEvent
instance GHC.Classes.Eq GI.Gdk.Objects.GrabBrokenEvent.GrabBrokenEvent
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.GrabBrokenEvent.GrabBrokenEvent
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.GrabBrokenEvent.GrabBrokenEvent o) => GI.Gdk.Objects.GrabBrokenEvent.IsGrabBrokenEvent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.GrabBrokenEvent.GrabBrokenEvent
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.GrabBrokenEvent.GrabBrokenEvent


-- | Constructs <a>Texture</a> objects from GL textures.
--   
--   The operation is quite simple: Create a texture builder, set all the
--   necessary properties - keep in mind that the properties
--   <a>GLTextureBuilder:context</a>, <a>GLTextureBuilder:id</a>,
--   <a>GLTextureBuilder:width</a>, and <a>GLTextureBuilder:height</a> are
--   mandatory - and then call <a>gLTextureBuilderBuild</a> to create the
--   new texture.
--   
--   <tt>GdkGLTextureBuilder</tt> can be used for quick one-shot
--   construction of textures as well as kept around and reused to
--   construct multiple textures.
--   
--   <i>Since: 4.12</i>
module GI.Gdk.Objects.GLTextureBuilder

-- | Memory-managed wrapper type.
newtype GLTextureBuilder
GLTextureBuilder :: ManagedPtr GLTextureBuilder -> GLTextureBuilder

-- | Type class for types which can be safely cast to
--   <a>GLTextureBuilder</a>, for instance with <a>toGLTextureBuilder</a>.
class (GObject o, IsDescendantOf GLTextureBuilder o) => IsGLTextureBuilder o

-- | Cast to <a>GLTextureBuilder</a>, for types for which this is known to
--   be safe. For general casts, use <a>castTo</a>.
toGLTextureBuilder :: (MonadIO m, IsGLTextureBuilder o) => o -> m GLTextureBuilder

-- | Builds a new <tt>GdkTexture</tt> with the values set up in the
--   builder.
--   
--   The <tt>destroy</tt> function gets called when the returned texture
--   gets released; either when the texture is finalized or by an explicit
--   call to <a>gLTextureRelease</a>. It should release all GL resources
--   associated with the texture, such as the <a>GLTextureBuilder:id</a>
--   and the <a>GLTextureBuilder:sync</a>.
--   
--   Note that it is a programming error to call this function if any
--   mandatory property has not been set.
--   
--   It is possible to call this function multiple times to create multiple
--   textures, possibly with changing properties in between.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderBuild :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> Maybe DestroyNotify -> Ptr () -> m Texture

-- | Gets the color state previously set via
--   <a>gLTextureBuilderSetColorState</a>.
--   
--   <i>Since: 4.16</i>
gLTextureBuilderGetColorState :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> m ColorState

-- | Gets the context previously set via <a>gLTextureBuilderSetContext</a>
--   or <a>Nothing</a> if none was set.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderGetContext :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> m (Maybe GLContext)

-- | Gets the format previously set via <a>gLTextureBuilderSetFormat</a>.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderGetFormat :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> m MemoryFormat

-- | Gets whether the texture has a mipmap.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderGetHasMipmap :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> m Bool

-- | Gets the height previously set via <a>gLTextureBuilderSetHeight</a> or
--   0 if the height wasn't set.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderGetHeight :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> m Int32

-- | Gets the texture id previously set via <a>gLTextureBuilderSetId</a> or
--   0 if the id wasn't set.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderGetId :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> m Word32

-- | Gets the <tt>GLsync</tt> previously set via
--   <a>gLTextureBuilderSetSync</a>.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderGetSync :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> m (Ptr ())

-- | Gets the region previously set via
--   <a>gLTextureBuilderSetUpdateRegion</a> or <a>Nothing</a> if none was
--   set.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderGetUpdateRegion :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> m (Maybe Region)

-- | Gets the texture previously set via
--   <a>gLTextureBuilderSetUpdateTexture</a> or <a>Nothing</a> if none was
--   set.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderGetUpdateTexture :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> m (Maybe Texture)

-- | Gets the width previously set via <a>gLTextureBuilderSetWidth</a> or 0
--   if the width wasn't set.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderGetWidth :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> m Int32

-- | Creates a new texture builder.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderNew :: (HasCallStack, MonadIO m) => m GLTextureBuilder

-- | Sets the color state for the texture.
--   
--   By default, the sRGB colorstate is used. If you don't know what
--   colorstates are, this is probably the right thing.
--   
--   <i>Since: 4.16</i>
gLTextureBuilderSetColorState :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> ColorState -> m ()

-- | Sets the context to be used for the texture. This is the context that
--   owns the texture.
--   
--   The context must be set before calling <a>gLTextureBuilderBuild</a>.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderSetContext :: (HasCallStack, MonadIO m, IsGLTextureBuilder a, IsGLContext b) => a -> Maybe b -> m ()

-- | Sets the format of the texture. The default is
--   <tt>GDK_MEMORY_R8G8B8A8_PREMULTIPLIED</tt>.
--   
--   The format is the preferred format the texture data should be
--   downloaded to. The format must be supported by the GL version of
--   <a>GLTextureBuilder:context</a>.
--   
--   GDK's texture download code assumes that the format corresponds to the
--   storage parameters of the GL texture in an obvious way. For example, a
--   format of <tt>GDK_MEMORY_R16G16B16A16_PREMULTIPLIED</tt> is expected
--   to be stored as <tt>GL_RGBA16</tt> texture, and
--   <tt>GDK_MEMORY_G8A8</tt> is expected to be stored as <tt>GL_RG8</tt>
--   texture.
--   
--   Setting the right format is particularly useful when using high bit
--   depth textures to preserve the bit depth, to set the correct value for
--   unpremultiplied textures and to make sure opaque textures are treated
--   as such.
--   
--   Non-RGBA textures need to have swizzling parameters set up properly to
--   be usable in GSK's shaders.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderSetFormat :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> MemoryFormat -> m ()

-- | Sets whether the texture has a mipmap. This allows the renderer and
--   other users of the generated texture to use a higher quality
--   downscaling.
--   
--   Typically, the <tt>glGenerateMipmap</tt> function is used to generate
--   a mimap.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderSetHasMipmap :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> Bool -> m ()

-- | Sets the height of the texture.
--   
--   The height must be set before calling <a>gLTextureBuilderBuild</a>.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderSetHeight :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> Int32 -> m ()

-- | Sets the texture id of the texture. The texture id must remain
--   unmodified until the texture was finalized. See
--   <a>gLTextureBuilderBuild</a> for a longer discussion.
--   
--   The id must be set before calling <a>gLTextureBuilderBuild</a>.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderSetId :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> Word32 -> m ()

-- | Sets the GLSync object to use for the texture.
--   
--   GTK will wait on this object before using the created
--   <tt>GdkTexture</tt>.
--   
--   The <tt>destroy</tt> function that is passed to
--   <a>gLTextureBuilderBuild</a> is responsible for freeing the sync
--   object when it is no longer needed. The texture builder does not
--   destroy it and it is the callers responsibility to make sure it
--   doesn't leak.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderSetSync :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> Ptr () -> m ()

-- | Sets the region to be updated by this texture. Together with
--   <a>GLTextureBuilder:updateTexture</a> this describes an update of a
--   previous texture.
--   
--   When rendering animations of large textures, it is possible that
--   consecutive textures are only updating contents in parts of the
--   texture. It is then possible to describe this update via these two
--   properties, so that GTK can avoid rerendering parts that did not
--   change.
--   
--   An example would be a screen recording where only the mouse pointer
--   moves.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderSetUpdateRegion :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> Maybe Region -> m ()

-- | Sets the texture to be updated by this texture. See
--   <a>gLTextureBuilderSetUpdateRegion</a> for an explanation.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderSetUpdateTexture :: (HasCallStack, MonadIO m, IsGLTextureBuilder a, IsTexture b) => a -> Maybe b -> m ()

-- | Sets the width of the texture.
--   
--   The width must be set before calling <a>gLTextureBuilderBuild</a>.
--   
--   <i>Since: 4.12</i>
gLTextureBuilderSetWidth :: (HasCallStack, MonadIO m, IsGLTextureBuilder a) => a -> Int32 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>color-state</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructGLTextureBuilderColorState :: (IsGLTextureBuilder o, MonadIO m) => ColorState -> m (GValueConstruct o)

-- | Get the value of the “<tt>color-state</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> gLTextureBuilder #colorState
--   </pre>
getGLTextureBuilderColorState :: (MonadIO m, IsGLTextureBuilder o) => o -> m ColorState

-- | Set the value of the “<tt>color-state</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> gLTextureBuilder [ #colorState <a>:=</a> value ]
--   </pre>
setGLTextureBuilderColorState :: (MonadIO m, IsGLTextureBuilder o) => o -> ColorState -> m ()

-- | Set the value of the “<tt>context</tt>” property to <a>Nothing</a>.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #context
--   </pre>
clearGLTextureBuilderContext :: (MonadIO m, IsGLTextureBuilder o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>context</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructGLTextureBuilderContext :: (IsGLTextureBuilder o, MonadIO m, IsGLContext a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>context</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> gLTextureBuilder #context
--   </pre>
getGLTextureBuilderContext :: (MonadIO m, IsGLTextureBuilder o) => o -> m (Maybe GLContext)

-- | Set the value of the “<tt>context</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> gLTextureBuilder [ #context <a>:=</a> value ]
--   </pre>
setGLTextureBuilderContext :: (MonadIO m, IsGLTextureBuilder o, IsGLContext a) => o -> a -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>format</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructGLTextureBuilderFormat :: (IsGLTextureBuilder o, MonadIO m) => MemoryFormat -> m (GValueConstruct o)

-- | Get the value of the “<tt>format</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> gLTextureBuilder #format
--   </pre>
getGLTextureBuilderFormat :: (MonadIO m, IsGLTextureBuilder o) => o -> m MemoryFormat

-- | Set the value of the “<tt>format</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> gLTextureBuilder [ #format <a>:=</a> value ]
--   </pre>
setGLTextureBuilderFormat :: (MonadIO m, IsGLTextureBuilder o) => o -> MemoryFormat -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>has-mipmap</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructGLTextureBuilderHasMipmap :: (IsGLTextureBuilder o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>has-mipmap</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> gLTextureBuilder #hasMipmap
--   </pre>
getGLTextureBuilderHasMipmap :: (MonadIO m, IsGLTextureBuilder o) => o -> m Bool

-- | Set the value of the “<tt>has-mipmap</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> gLTextureBuilder [ #hasMipmap <a>:=</a> value ]
--   </pre>
setGLTextureBuilderHasMipmap :: (MonadIO m, IsGLTextureBuilder o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>height</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructGLTextureBuilderHeight :: (IsGLTextureBuilder o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>height</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> gLTextureBuilder #height
--   </pre>
getGLTextureBuilderHeight :: (MonadIO m, IsGLTextureBuilder o) => o -> m Int32

-- | Set the value of the “<tt>height</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> gLTextureBuilder [ #height <a>:=</a> value ]
--   </pre>
setGLTextureBuilderHeight :: (MonadIO m, IsGLTextureBuilder o) => o -> Int32 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>id</tt>” property. This is rarely needed directly, but it is used
--   by <a>new</a>.
constructGLTextureBuilderId :: (IsGLTextureBuilder o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>id</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> gLTextureBuilder #id
--   </pre>
getGLTextureBuilderId :: (MonadIO m, IsGLTextureBuilder o) => o -> m Word32

-- | Set the value of the “<tt>id</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> gLTextureBuilder [ #id <a>:=</a> value ]
--   </pre>
setGLTextureBuilderId :: (MonadIO m, IsGLTextureBuilder o) => o -> Word32 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>sync</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructGLTextureBuilderSync :: (IsGLTextureBuilder o, MonadIO m) => Ptr () -> m (GValueConstruct o)

-- | Get the value of the “<tt>sync</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> gLTextureBuilder #sync
--   </pre>
getGLTextureBuilderSync :: (MonadIO m, IsGLTextureBuilder o) => o -> m (Ptr ())

-- | Set the value of the “<tt>sync</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> gLTextureBuilder [ #sync <a>:=</a> value ]
--   </pre>
setGLTextureBuilderSync :: (MonadIO m, IsGLTextureBuilder o) => o -> Ptr () -> m ()

-- | Set the value of the “<tt>update-region</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #updateRegion
--   </pre>
clearGLTextureBuilderUpdateRegion :: (MonadIO m, IsGLTextureBuilder o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>update-region</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructGLTextureBuilderUpdateRegion :: (IsGLTextureBuilder o, MonadIO m) => Region -> m (GValueConstruct o)

-- | Get the value of the “<tt>update-region</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> gLTextureBuilder #updateRegion
--   </pre>
getGLTextureBuilderUpdateRegion :: (MonadIO m, IsGLTextureBuilder o) => o -> m (Maybe Region)

-- | Set the value of the “<tt>update-region</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> gLTextureBuilder [ #updateRegion <a>:=</a> value ]
--   </pre>
setGLTextureBuilderUpdateRegion :: (MonadIO m, IsGLTextureBuilder o) => o -> Region -> m ()

-- | Set the value of the “<tt>update-texture</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #updateTexture
--   </pre>
clearGLTextureBuilderUpdateTexture :: (MonadIO m, IsGLTextureBuilder o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>update-texture</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructGLTextureBuilderUpdateTexture :: (IsGLTextureBuilder o, MonadIO m, IsTexture a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>update-texture</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> gLTextureBuilder #updateTexture
--   </pre>
getGLTextureBuilderUpdateTexture :: (MonadIO m, IsGLTextureBuilder o) => o -> m (Maybe Texture)

-- | Set the value of the “<tt>update-texture</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> gLTextureBuilder [ #updateTexture <a>:=</a> value ]
--   </pre>
setGLTextureBuilderUpdateTexture :: (MonadIO m, IsGLTextureBuilder o, IsTexture a) => o -> a -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>width</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructGLTextureBuilderWidth :: (IsGLTextureBuilder o, MonadIO m) => Int32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>width</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> gLTextureBuilder #width
--   </pre>
getGLTextureBuilderWidth :: (MonadIO m, IsGLTextureBuilder o) => o -> m Int32

-- | Set the value of the “<tt>width</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> gLTextureBuilder [ #width <a>:=</a> value ]
--   </pre>
setGLTextureBuilderWidth :: (MonadIO m, IsGLTextureBuilder o) => o -> Int32 -> m ()
instance GHC.Classes.Eq GI.Gdk.Objects.GLTextureBuilder.GLTextureBuilder
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.GLTextureBuilder.GLTextureBuilder
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.GLTextureBuilder.GLTextureBuilder
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.GLTextureBuilder.GLTextureBuilder o) => GI.Gdk.Objects.GLTextureBuilder.IsGLTextureBuilder o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.GLTextureBuilder.GLTextureBuilder)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.GLTextureBuilder.GLTextureBuilder
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.GLTextureBuilder.GLTextureBuilder


-- | A <tt>GdkTexture</tt> representing a GL texture object.
module GI.Gdk.Objects.GLTexture

-- | Memory-managed wrapper type.
newtype GLTexture
GLTexture :: ManagedPtr GLTexture -> GLTexture

-- | Type class for types which can be safely cast to <a>GLTexture</a>, for
--   instance with <a>toGLTexture</a>.
class (GObject o, IsDescendantOf GLTexture o) => IsGLTexture o

-- | Cast to <a>GLTexture</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toGLTexture :: (MonadIO m, IsGLTexture o) => o -> m GLTexture

-- | Creates a new texture for an existing GL texture.
--   
--   Note that the GL texture must not be modified until
--   <i><tt>destroy</tt></i> is called, which will happen when the
--   GdkTexture object is finalized, or due to an explicit call of
--   <a>gLTextureRelease</a>.

-- | <i>Deprecated: (Since version 4.12)<a>GLTextureBuilder</a> supersedes
--   this functionand provides extended functionality for creating GL
--   textures.</i>
gLTextureNew :: (HasCallStack, MonadIO m, IsGLContext a) => a -> Word32 -> Int32 -> Int32 -> DestroyNotify -> Ptr () -> m GLTexture

-- | Releases the GL resources held by a <tt>GdkGLTexture</tt>.
--   
--   The texture contents are still available via the
--   <a>textureDownload</a> function, after this function has been called.
gLTextureRelease :: (HasCallStack, MonadIO m, IsGLTexture a) => a -> m ()
instance GHC.Classes.Eq GI.Gdk.Objects.GLTexture.GLTexture
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.GLTexture.GLTexture
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.GLTexture.GLTexture
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.GLTexture.GLTexture o) => GI.Gdk.Objects.GLTexture.IsGLTexture o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.GLTexture.GLTexture)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.GLTexture.GLTexture
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.GLTexture.GLTexture


-- | Represents a platform-specific OpenGL draw context.
--   
--   <tt>GdkGLContext</tt>s are created for a surface using
--   <a>surfaceCreateGlContext</a>, and the context will match the
--   characteristics of the surface.
--   
--   A <tt>GdkGLContext</tt> is not tied to any particular normal
--   framebuffer. For instance, it cannot draw to the surface back buffer.
--   The GDK repaint system is in full control of the painting to that.
--   Instead, you can create render buffers or textures and use
--   [func<i><tt>cairoDrawFromGl</tt></i>] in the draw function of your
--   widget to draw them. Then GDK will handle the integration of your
--   rendering with that of other widgets.
--   
--   Support for <tt>GdkGLContext</tt> is platform-specific and context
--   creation can fail, returning <a>Nothing</a> context.
--   
--   A <tt>GdkGLContext</tt> has to be made "current" in order to start
--   using it, otherwise any OpenGL call will be ignored.
--   
--   <h2>Creating a new OpenGL context</h2>
--   
--   In order to create a new <tt>GdkGLContext</tt> instance you need a
--   <tt>GdkSurface</tt>, which you typically get during the realize call
--   of a widget.
--   
--   A <tt>GdkGLContext</tt> is not realized until either
--   <a>gLContextMakeCurrent</a> or <a>gLContextRealize</a> is called. It
--   is possible to specify details of the GL context like the OpenGL
--   version to be used, or whether the GL context should have extra state
--   validation enabled after calling <a>surfaceCreateGlContext</a> by
--   calling <a>gLContextRealize</a>. If the realization fails you have the
--   option to change the settings of the <tt>GdkGLContext</tt> and try
--   again.
--   
--   <h2>Using a GdkGLContext</h2>
--   
--   You will need to make the <tt>GdkGLContext</tt> the current context
--   before issuing OpenGL calls; the system sends OpenGL commands to
--   whichever context is current. It is possible to have multiple
--   contexts, so you always need to ensure that the one which you want to
--   draw with is the current one before issuing commands:
--   
--   <h3><i>c code</i></h3>
--   
--   <pre>
--   gdk_gl_context_make_current (context);
--   </pre>
--   
--   You can now perform your drawing using OpenGL commands.
--   
--   You can check which <tt>GdkGLContext</tt> is the current one by using
--   <a>gLContextGetCurrent</a>; you can also unset any
--   <tt>GdkGLContext</tt> that is currently set by calling
--   <a>gLContextClearCurrent</a>.
module GI.Gdk.Objects.GLContext

-- | Memory-managed wrapper type.
newtype GLContext
GLContext :: ManagedPtr GLContext -> GLContext

-- | Type class for types which can be safely cast to <a>GLContext</a>, for
--   instance with <a>toGLContext</a>.
class (GObject o, IsDescendantOf GLContext o) => IsGLContext o

-- | Cast to <a>GLContext</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toGLContext :: (MonadIO m, IsGLContext o) => o -> m GLContext

-- | Clears the current <tt>GdkGLContext</tt>.
--   
--   Any OpenGL call after this function returns will be ignored until
--   <a>gLContextMakeCurrent</a> is called.
gLContextClearCurrent :: (HasCallStack, MonadIO m) => m ()

-- | Gets the allowed APIs set via <a>gLContextSetAllowedApis</a>.
--   
--   <i>Since: 4.6</i>
gLContextGetAllowedApis :: (HasCallStack, MonadIO m, IsGLContext a) => a -> m [GLAPI]

-- | Gets the API currently in use.
--   
--   If the renderer has not been realized yet, 0 is returned.
--   
--   <i>Since: 4.6</i>
gLContextGetApi :: (HasCallStack, MonadIO m, IsGLContext a) => a -> m [GLAPI]

-- | Retrieves the current <tt>GdkGLContext</tt>.
gLContextGetCurrent :: (HasCallStack, MonadIO m) => m (Maybe GLContext)

-- | Retrieves whether the context is doing extra validations and runtime
--   checking.
--   
--   See <a>gLContextSetDebugEnabled</a>.
gLContextGetDebugEnabled :: (HasCallStack, MonadIO m, IsGLContext a) => a -> m Bool

-- | Retrieves the display the <i><tt>context</tt></i> is created for
gLContextGetDisplay :: (HasCallStack, MonadIO m, IsGLContext a) => a -> m (Maybe Display)

-- | Retrieves whether the context is forward-compatible.
--   
--   See <a>gLContextSetForwardCompatible</a>.
gLContextGetForwardCompatible :: (HasCallStack, MonadIO m, IsGLContext a) => a -> m Bool

-- | Retrieves required OpenGL version set as a requirement for the
--   <i><tt>context</tt></i> realization. It will not change even if a
--   greater OpenGL version is supported and used after the
--   <i><tt>context</tt></i> is realized. See <a>gLContextGetVersion</a>
--   for the real version in use.
--   
--   See <a>gLContextSetRequiredVersion</a>.
gLContextGetRequiredVersion :: (HasCallStack, MonadIO m, IsGLContext a) => a -> m (Int32, Int32)

-- | Used to retrieves the <tt>GdkGLContext</tt> that this
--   <i><tt>context</tt></i> share data with.
--   
--   As many contexts can share data now and no single shared context
--   exists anymore, this function has been deprecated and now always
--   returns <a>Nothing</a>.

-- | <i>Deprecated: (Since version 4.4)Use <a>gLContextIsShared</a> to
--   check if contextscan be shared.</i>
gLContextGetSharedContext :: (HasCallStack, MonadIO m, IsGLContext a) => a -> m (Maybe GLContext)

-- | Retrieves the surface used by the <i><tt>context</tt></i>.
gLContextGetSurface :: (HasCallStack, MonadIO m, IsGLContext a) => a -> m (Maybe Surface)

-- | Checks whether the <i><tt>context</tt></i> is using an OpenGL or
--   OpenGL ES profile.
gLContextGetUseEs :: (HasCallStack, MonadIO m, IsGLContext a) => a -> m Bool

-- | Retrieves the OpenGL version of the <i><tt>context</tt></i>.
--   
--   The <i><tt>context</tt></i> must be realized prior to calling this
--   function.
gLContextGetVersion :: (HasCallStack, MonadIO m, IsGLContext a) => a -> m (Int32, Int32)

-- | Whether the <tt>GdkGLContext</tt> is in legacy mode or not.
--   
--   The <tt>GdkGLContext</tt> must be realized before calling this
--   function.
--   
--   When realizing a GL context, GDK will try to use the OpenGL 3.2 core
--   profile; this profile removes all the OpenGL API that was deprecated
--   prior to the 3.2 version of the specification. If the realization is
--   successful, this function will return <a>False</a>.
--   
--   If the underlying OpenGL implementation does not support core
--   profiles, GDK will fall back to a pre-3.2 compatibility profile, and
--   this function will return <a>True</a>.
--   
--   You can use the value returned by this function to decide which kind
--   of OpenGL API to use, or whether to do extension discovery, or what
--   kind of shader programs to load.
gLContextIsLegacy :: (HasCallStack, MonadIO m, IsGLContext a) => a -> m Bool

-- | Checks if the two GL contexts can share resources.
--   
--   When they can, the texture IDs from <i><tt>other</tt></i> can be used
--   in <i><tt>self</tt></i>. This is particularly useful when passing
--   <tt>GdkGLTexture</tt> objects between different contexts.
--   
--   Contexts created for the same display with the same properties will
--   always be compatible, even if they are created for different surfaces.
--   For other contexts it depends on the GL backend.
--   
--   Both contexts must be realized for this check to succeed. If either
--   one is not, this function will return <a>False</a>.
--   
--   <i>Since: 4.4</i>
gLContextIsShared :: (HasCallStack, MonadIO m, IsGLContext a, IsGLContext b) => a -> b -> m Bool

-- | Makes the <i><tt>context</tt></i> the current one.
gLContextMakeCurrent :: (HasCallStack, MonadIO m, IsGLContext a) => a -> m ()

-- | Realizes the given <tt>GdkGLContext</tt>.
--   
--   It is safe to call this function on a realized <tt>GdkGLContext</tt>.
gLContextRealize :: (HasCallStack, MonadIO m, IsGLContext a) => a -> m ()

-- | Sets the allowed APIs. When <a>gLContextRealize</a> is called, only
--   the allowed APIs will be tried. If you set this to 0, realizing will
--   always fail.
--   
--   If you set it on a realized context, the property will not have any
--   effect. It is only relevant during <a>gLContextRealize</a>.
--   
--   By default, all APIs are allowed.
--   
--   <i>Since: 4.6</i>
gLContextSetAllowedApis :: (HasCallStack, MonadIO m, IsGLContext a) => a -> [GLAPI] -> m ()

-- | Sets whether the <tt>GdkGLContext</tt> should perform extra
--   validations and runtime checking.
--   
--   This is useful during development, but has additional overhead.
--   
--   The <tt>GdkGLContext</tt> must not be realized or made current prior
--   to calling this function.
gLContextSetDebugEnabled :: (HasCallStack, MonadIO m, IsGLContext a) => a -> Bool -> m ()

-- | Sets whether the <tt>GdkGLContext</tt> should be forward-compatible.
--   
--   Forward-compatible contexts must not support OpenGL functionality that
--   has been marked as deprecated in the requested version; non-forward
--   compatible contexts, on the other hand, must support both deprecated
--   and non deprecated functionality.
--   
--   The <tt>GdkGLContext</tt> must not be realized or made current prior
--   to calling this function.
gLContextSetForwardCompatible :: (HasCallStack, MonadIO m, IsGLContext a) => a -> Bool -> m ()

-- | Sets the major and minor version of OpenGL to request.
--   
--   Setting <i><tt>major</tt></i> and <i><tt>minor</tt></i> to zero will
--   use the default values.
--   
--   Setting <i><tt>major</tt></i> and <i><tt>minor</tt></i> lower than the
--   minimum versions required by GTK will result in the context choosing
--   the minimum version.
--   
--   The <i><tt>context</tt></i> must not be realized or made current prior
--   to calling this function.
gLContextSetRequiredVersion :: (HasCallStack, MonadIO m, IsGLContext a) => a -> Int32 -> Int32 -> m ()

-- | Requests that GDK create an OpenGL ES context instead of an OpenGL
--   one.
--   
--   Not all platforms support OpenGL ES.
--   
--   The <i><tt>context</tt></i> must not have been realized.
--   
--   By default, GDK will attempt to automatically detect whether the
--   underlying GL implementation is OpenGL or OpenGL ES once the
--   <i><tt>context</tt></i> is realized.
--   
--   You should check the return value of <a>gLContextGetUseEs</a> after
--   calling <a>gLContextRealize</a> to decide whether to use the OpenGL or
--   OpenGL ES API, extensions, or shaders.
gLContextSetUseEs :: (HasCallStack, MonadIO m, IsGLContext a) => a -> Int32 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>allowed-apis</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructGLContextAllowedApis :: (IsGLContext o, MonadIO m) => [GLAPI] -> m (GValueConstruct o)

-- | Get the value of the “<tt>allowed-apis</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> gLContext #allowedApis
--   </pre>
getGLContextAllowedApis :: (MonadIO m, IsGLContext o) => o -> m [GLAPI]

-- | Set the value of the “<tt>allowed-apis</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> gLContext [ #allowedApis <a>:=</a> value ]
--   </pre>
setGLContextAllowedApis :: (MonadIO m, IsGLContext o) => o -> [GLAPI] -> m ()

-- | Get the value of the “<tt>api</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> gLContext #api
--   </pre>
getGLContextApi :: (MonadIO m, IsGLContext o) => o -> m [GLAPI]

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>shared-context</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructGLContextSharedContext :: (IsGLContext o, MonadIO m, IsGLContext a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>shared-context</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> gLContext #sharedContext
--   </pre>
getGLContextSharedContext :: (MonadIO m, IsGLContext o) => o -> m (Maybe GLContext)
instance GHC.Classes.Eq GI.Gdk.Objects.GLContext.GLContext
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.GLContext.GLContext
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.GLContext.GLContext
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.GLContext.GLContext o) => GI.Gdk.Objects.GLContext.IsGLContext o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.GLContext.GLContext)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.GLContext.GLContext
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.GLContext.GLContext


-- | An event related to a keyboard focus change.
module GI.Gdk.Objects.FocusEvent

-- | Memory-managed wrapper type.
newtype FocusEvent
FocusEvent :: ManagedPtr FocusEvent -> FocusEvent

-- | Type class for types which can be safely cast to <a>FocusEvent</a>,
--   for instance with <a>toFocusEvent</a>.
class (BoxedPtr o, TypedObject o, IsDescendantOf FocusEvent o) => IsFocusEvent o

-- | Cast to <a>FocusEvent</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toFocusEvent :: (MonadIO m, IsFocusEvent o) => o -> m FocusEvent

-- | Extracts whether this event is about focus entering or leaving the
--   surface.
focusEventGetIn :: (HasCallStack, MonadIO m, IsFocusEvent a) => a -> m Bool
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Objects.FocusEvent.FocusEvent
instance GHC.Classes.Eq GI.Gdk.Objects.FocusEvent.FocusEvent
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.FocusEvent.FocusEvent
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.FocusEvent.FocusEvent o) => GI.Gdk.Objects.FocusEvent.IsFocusEvent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.FocusEvent.FocusEvent
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.FocusEvent.FocusEvent


-- | Represents windowing system events.
--   
--   In GTK applications the events are handled automatically by toplevel
--   widgets and passed on to the event controllers of appropriate widgets,
--   so using <tt>GdkEvent</tt> and its related API is rarely needed.
--   
--   <tt>GdkEvent</tt> structs are immutable.
module GI.Gdk.Objects.Event

-- | Memory-managed wrapper type.
newtype Event
Event :: ManagedPtr Event -> Event

-- | Type class for types which can be safely cast to <a>Event</a>, for
--   instance with <a>toEvent</a>.
class (BoxedPtr o, TypedObject o, IsDescendantOf Event o) => IsEvent o

-- | Cast to <a>Event</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toEvent :: (MonadIO m, IsEvent o) => o -> m Event

-- | Extracts all axis values from an event.
--   
--   To find out which axes are used, use <a>deviceToolGetAxes</a> on the
--   device tool returned by <a>eventGetDeviceTool</a>.
eventGetAxes :: (HasCallStack, MonadIO m, IsEvent a) => a -> m (Bool, [Double])

-- | Extract the axis value for a particular axis use from an event
--   structure.
--   
--   To find out which axes are used, use <a>deviceToolGetAxes</a> on the
--   device tool returned by <a>eventGetDeviceTool</a>.
eventGetAxis :: (HasCallStack, MonadIO m, IsEvent a) => a -> AxisUse -> m (Bool, Double)

-- | Returns the device of an event.
eventGetDevice :: (HasCallStack, MonadIO m, IsEvent a) => a -> m (Maybe Device)

-- | Returns a <tt>GdkDeviceTool</tt> representing the tool that caused the
--   event.
--   
--   If the was not generated by a device that supports different tools
--   (such as a tablet), this function will return <a>Nothing</a>.
--   
--   Note: the <tt>GdkDeviceTool</tt> will be constant during the
--   application lifetime, if settings must be stored persistently across
--   runs, see <a>deviceToolGetSerial</a>.
eventGetDeviceTool :: (HasCallStack, MonadIO m, IsEvent a) => a -> m (Maybe DeviceTool)

-- | Retrieves the display associated to the <i><tt>event</tt></i>.
eventGetDisplay :: (HasCallStack, MonadIO m, IsEvent a) => a -> m (Maybe Display)

-- | Returns the event sequence to which the event belongs.
--   
--   Related touch events are connected in a sequence. Other events
--   typically don't have event sequence information.
eventGetEventSequence :: (HasCallStack, MonadIO m, IsEvent a) => a -> m EventSequence

-- | Retrieves the type of the event.
eventGetEventType :: (HasCallStack, MonadIO m, IsEvent a) => a -> m EventType

-- | Retrieves the history of the device that <i><tt>event</tt></i> is for,
--   as a list of time and coordinates.
--   
--   The history includes positions that are not delivered as separate
--   events to the application because they occurred in the same frame as
--   <i><tt>event</tt></i>.
--   
--   Note that only motion and scroll events record history, and motion
--   events do it only if one of the mouse buttons is down, or the device
--   has a tool.
eventGetHistory :: (HasCallStack, MonadIO m, IsEvent a) => a -> m (Maybe [TimeCoord])

-- | Returns the modifier state field of an event.
eventGetModifierState :: (HasCallStack, MonadIO m, IsEvent a) => a -> m [ModifierType]

-- | Returns whether this event is an 'emulated' pointer event.
--   
--   Emulated pointer events typically originate from a touch events.
eventGetPointerEmulated :: (HasCallStack, MonadIO m, IsEvent a) => a -> m Bool

-- | Extract the event surface relative x/y coordinates from an event.
--   
--   This position is in <a>surface coordinates</a>.
eventGetPosition :: (HasCallStack, MonadIO m, IsEvent a) => a -> m (Bool, Double, Double)

-- | Returns the seat that originated the event.
eventGetSeat :: (HasCallStack, MonadIO m, IsEvent a) => a -> m (Maybe Seat)

-- | Extracts the surface associated with an event.
eventGetSurface :: (HasCallStack, MonadIO m, IsEvent a) => a -> m (Maybe Surface)

-- | Returns the timestamp of <i><tt>event</tt></i>.
--   
--   Not all events have timestamps. In that case, this function returns
--   <a>CURRENT_TIME</a>.
eventGetTime :: (HasCallStack, MonadIO m, IsEvent a) => a -> m Word32

-- | Increase the ref count of <i><tt>event</tt></i>.
eventRef :: (HasCallStack, MonadIO m, IsEvent a) => a -> m Event

-- | Returns whether a <tt>GdkEvent</tt> should trigger a context menu,
--   according to platform conventions.
--   
--   The right mouse button typically triggers context menus. On macOS,
--   Control+left mouse button also triggers.
--   
--   This function should always be used instead of simply checking for
--   
--   <h3><i>c code</i></h3>
--   
--   <pre>
--   event-&gt;button == GDK_BUTTON_SECONDARY
--   </pre>
eventTriggersContextMenu :: (HasCallStack, MonadIO m, IsEvent a) => a -> m Bool

-- | Decrease the ref count of <i><tt>event</tt></i>.
--   
--   If the last reference is dropped, the structure is freed.
eventUnref :: (HasCallStack, MonadIO m, IsEvent a) => a -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Objects.Event.Event
instance GHC.Classes.Eq GI.Gdk.Objects.Event.Event
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.Event.Event
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.Event.Event o) => GI.Gdk.Objects.Event.IsEvent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.Event.Event
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.Event.Event


-- | Represents the target of an ongoing DND operation.
--   
--   Possible drop sites get informed about the status of the ongoing drag
--   operation with events of type <tt>GDK_DRAG_ENTER</tt>,
--   <tt>GDK_DRAG_LEAVE</tt>, <tt>GDK_DRAG_MOTION</tt> and
--   <tt>GDK_DROP_START</tt>. The <tt>GdkDrop</tt> object can be obtained
--   from these <a>Event</a> types using <a>dNDEventGetDrop</a>.
--   
--   The actual data transfer is initiated from the target side via an
--   async read, using one of the <tt>GdkDrop</tt> methods for this
--   purpose: <a>dropReadAsync</a> or <a>dropReadValueAsync</a>.
--   
--   GTK provides a higher level abstraction based on top of these
--   functions, and so they are not normally needed in GTK applications.
--   See the "Drag and Drop" section of the GTK documentation for more
--   information.
module GI.Gdk.Objects.Drop

-- | Memory-managed wrapper type.
newtype Drop
Drop :: ManagedPtr Drop -> Drop

-- | Type class for types which can be safely cast to <a>Drop</a>, for
--   instance with <a>toDrop</a>.
class (GObject o, IsDescendantOf Drop o) => IsDrop o

-- | Cast to <a>Drop</a>, for types for which this is known to be safe. For
--   general casts, use <a>castTo</a>.
toDrop :: (MonadIO m, IsDrop o) => o -> m Drop

-- | Ends the drag operation after a drop.
--   
--   The <i><tt>action</tt></i> must be a single action selected from the
--   actions available via <a>dropGetActions</a>.
dropFinish :: (HasCallStack, MonadIO m, IsDrop a) => a -> [DragAction] -> m ()

-- | Returns the possible actions for this <tt>GdkDrop</tt>.
--   
--   If this value contains multiple actions - i.e.
--   <a>DragAction</a>.<tt><i>is_unique</i></tt>() returns false for the
--   result - <a>dropFinish</a> must choose the action to use when
--   accepting the drop. This will only happen if you passed
--   <tt>GDK_ACTION_ASK</tt> as one of the possible actions in
--   <a>dropStatus</a>. <tt>GDK_ACTION_ASK</tt> itself will not be included
--   in the actions returned by this function.
--   
--   This value may change over the lifetime of the <a>Drop</a> both as a
--   response to source side actions as well as to calls to
--   <a>dropStatus</a> or <a>dropFinish</a>. The source side will not
--   change this value anymore once a drop has started.
dropGetActions :: (HasCallStack, MonadIO m, IsDrop a) => a -> m [DragAction]

-- | Returns the <tt>GdkDevice</tt> performing the drop.
dropGetDevice :: (HasCallStack, MonadIO m, IsDrop a) => a -> m Device

-- | Gets the <tt>GdkDisplay</tt> that <i><tt>self</tt></i> was created
--   for.
dropGetDisplay :: (HasCallStack, MonadIO m, IsDrop a) => a -> m Display

-- | If this is an in-app drag-and-drop operation, returns the
--   <tt>GdkDrag</tt> that corresponds to this drop.
--   
--   If it is not, <tt>NULL</tt> is returned.
dropGetDrag :: (HasCallStack, MonadIO m, IsDrop a) => a -> m (Maybe Drag)

-- | Returns the <tt>GdkContentFormats</tt> that the drop offers the data
--   to be read in.
dropGetFormats :: (HasCallStack, MonadIO m, IsDrop a) => a -> m ContentFormats

-- | Returns the <tt>GdkSurface</tt> performing the drop.
dropGetSurface :: (HasCallStack, MonadIO m, IsDrop a) => a -> m Surface

-- | Asynchronously read the dropped data from a <tt>GdkDrop</tt> in a
--   format that complies with one of the mime types.
dropReadAsync :: (HasCallStack, MonadIO m, IsDrop a, IsCancellable b) => a -> [Text] -> Int32 -> Maybe b -> Maybe AsyncReadyCallback -> m ()

-- | Finishes an async drop read operation.
--   
--   Note that you must not use blocking read calls on the returned stream
--   in the GTK thread, since some platforms might require communication
--   with GTK to complete the data transfer. You can use async APIs such as
--   <a>inputStreamReadBytesAsync</a>.
--   
--   See <a>dropReadAsync</a>.
dropReadFinish :: (HasCallStack, MonadIO m, IsDrop a, IsAsyncResult b) => a -> b -> m (Maybe InputStream, Text)

-- | Asynchronously request the drag operation's contents converted to the
--   given <i><tt>type</tt></i>.
--   
--   For local drag-and-drop operations that are available in the given
--   <tt>GType</tt>, the value will be copied directly. Otherwise, GDK will
--   try to use <a>contentDeserializeAsync</a> to convert the data.
dropReadValueAsync :: (HasCallStack, MonadIO m, IsDrop a, IsCancellable b) => a -> GType -> Int32 -> Maybe b -> Maybe AsyncReadyCallback -> m ()

-- | Finishes an async drop read.
--   
--   See <a>dropReadValueAsync</a>.
dropReadValueFinish :: (HasCallStack, MonadIO m, IsDrop a, IsAsyncResult b) => a -> b -> m GValue

-- | Selects all actions that are potentially supported by the destination.
--   
--   When calling this function, do not restrict the passed in actions to
--   the ones provided by <a>dropGetActions</a>. Those actions may change
--   in the future, even depending on the actions you provide here.
--   
--   The <i><tt>preferred</tt></i> action is a hint to the drag-and-drop
--   mechanism about which action to use when multiple actions are
--   possible.
--   
--   This function should be called by drag destinations in response to
--   <tt>GDK_DRAG_ENTER</tt> or <tt>GDK_DRAG_MOTION</tt> events. If the
--   destination does not yet know the exact actions it supports, it should
--   set any possible actions first and then later call this function
--   again.
dropStatus :: (HasCallStack, MonadIO m, IsDrop a) => a -> [DragAction] -> [DragAction] -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>actions</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDropActions :: (IsDrop o, MonadIO m) => [DragAction] -> m (GValueConstruct o)

-- | Get the value of the “<tt>actions</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drop #actions
--   </pre>
getDropActions :: (MonadIO m, IsDrop o) => o -> m [DragAction]

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>device</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDropDevice :: (IsDrop o, MonadIO m, IsDevice a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>device</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drop #device
--   </pre>
getDropDevice :: (MonadIO m, IsDrop o) => o -> m Device

-- | Get the value of the “<tt>display</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drop #display
--   </pre>
getDropDisplay :: (MonadIO m, IsDrop o) => o -> m Display

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>drag</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDropDrag :: (IsDrop o, MonadIO m, IsDrag a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>drag</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drop #drag
--   </pre>
getDropDrag :: (MonadIO m, IsDrop o) => o -> m (Maybe Drag)

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>formats</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDropFormats :: (IsDrop o, MonadIO m) => ContentFormats -> m (GValueConstruct o)

-- | Get the value of the “<tt>formats</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drop #formats
--   </pre>
getDropFormats :: (MonadIO m, IsDrop o) => o -> m ContentFormats

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>surface</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDropSurface :: (IsDrop o, MonadIO m, IsSurface a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>surface</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drop #surface
--   </pre>
getDropSurface :: (MonadIO m, IsDrop o) => o -> m Surface
instance GHC.Classes.Eq GI.Gdk.Objects.Drop.Drop
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.Drop.Drop
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.Drop.Drop
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.Drop.Drop o) => GI.Gdk.Objects.Drop.IsDrop o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.Drop.Drop)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.Drop.Drop
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.Drop.Drop


-- | Base class for objects implementing different rendering methods.
--   
--   <tt>GdkDrawContext</tt> is the base object used by contexts
--   implementing different rendering methods, such as <a>CairoContext</a>
--   or <a>GLContext</a>. It provides shared functionality between those
--   contexts.
--   
--   You will always interact with one of those subclasses.
--   
--   A <tt>GdkDrawContext</tt> is always associated with a single toplevel
--   surface.
module GI.Gdk.Objects.DrawContext

-- | Memory-managed wrapper type.
newtype DrawContext
DrawContext :: ManagedPtr DrawContext -> DrawContext

-- | Type class for types which can be safely cast to <a>DrawContext</a>,
--   for instance with <a>toDrawContext</a>.
class (GObject o, IsDescendantOf DrawContext o) => IsDrawContext o

-- | Cast to <a>DrawContext</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toDrawContext :: (MonadIO m, IsDrawContext o) => o -> m DrawContext

-- | Indicates that you are beginning the process of redrawing
--   <i><tt>region</tt></i> on the <i><tt>context</tt></i>'s surface.
--   
--   Calling this function begins a drawing operation using
--   <i><tt>context</tt></i> on the surface that <i><tt>context</tt></i>
--   was created from. The actual requirements and guarantees for the
--   drawing operation vary for different implementations of drawing, so a
--   <a>CairoContext</a> and a <a>GLContext</a> need to be treated
--   differently.
--   
--   A call to this function is a requirement for drawing and must be
--   followed by a call to <a>drawContextEndFrame</a>, which will complete
--   the drawing operation and ensure the contents become visible on
--   screen.
--   
--   Note that the <i><tt>region</tt></i> passed to this function is the
--   minimum region that needs to be drawn and depending on implementation,
--   windowing system and hardware in use, it might be necessary to draw a
--   larger region. Drawing implementation must use
--   <a>drawContextGetFrameRegion</a> to query the region that must be
--   drawn.
--   
--   When using GTK, the widget system automatically places calls to
--   <a>drawContextBeginFrame</a> and <a>drawContextEndFrame</a> via the
--   use of <a>GskRenderer</a>s, so application code does not need to call
--   these functions explicitly.

-- | <i>Deprecated: (Since version 4.16)Drawing directly to the surface is
--   no longer recommended.Use <tt>GskRenderNode</tt> and
--   <tt>GskRenderer</tt>.</i>
drawContextBeginFrame :: (HasCallStack, MonadIO m, IsDrawContext a) => a -> Region -> m ()

-- | Ends a drawing operation started with <a>drawContextBeginFrame</a>.
--   
--   This makes the drawing available on screen. See
--   <a>drawContextBeginFrame</a> for more details about drawing.
--   
--   When using a <a>GLContext</a>, this function may call
--   <tt>glFlush()</tt> implicitly before returning; it is not recommended
--   to call <tt>glFlush()</tt> explicitly before calling this function.

-- | <i>Deprecated: (Since version 4.16)Drawing directly to the surface is
--   no longer recommended.Use <tt>GskRenderNode</tt> and
--   <tt>GskRenderer</tt>.</i>
drawContextEndFrame :: (HasCallStack, MonadIO m, IsDrawContext a) => a -> m ()

-- | Retrieves the <tt>GdkDisplay</tt> the <i><tt>context</tt></i> is
--   created for
drawContextGetDisplay :: (HasCallStack, MonadIO m, IsDrawContext a) => a -> m (Maybe Display)

-- | Retrieves the region that is currently being repainted.
--   
--   After a call to <a>drawContextBeginFrame</a> this function will return
--   a union of the region passed to that function and the area of the
--   surface that the <i><tt>context</tt></i> determined needs to be
--   repainted.
--   
--   If <i><tt>context</tt></i> is not in between calls to
--   <a>drawContextBeginFrame</a> and <a>drawContextEndFrame</a>,
--   <a>Nothing</a> will be returned.

-- | <i>Deprecated: (Since version 4.16)Drawing directly to the surface is
--   no longer recommended.Use <tt>GskRenderNode</tt> and
--   <tt>GskRenderer</tt>.</i>
drawContextGetFrameRegion :: (HasCallStack, MonadIO m, IsDrawContext a) => a -> m (Maybe Region)

-- | Retrieves the surface that <i><tt>context</tt></i> is bound to.
drawContextGetSurface :: (HasCallStack, MonadIO m, IsDrawContext a) => a -> m (Maybe Surface)

-- | Returns <a>True</a> if <i><tt>context</tt></i> is in the process of
--   drawing to its surface.
--   
--   This is the case between calls to <a>drawContextBeginFrame</a> and
--   <a>drawContextEndFrame</a>. In this situation, drawing commands may be
--   effecting the contents of the <i><tt>context</tt></i>'s surface.

-- | <i>Deprecated: (Since version 4.16)Drawing directly to the surface is
--   no longer recommended.Use <tt>GskRenderNode</tt> and
--   <tt>GskRenderer</tt>.</i>
drawContextIsInFrame :: (HasCallStack, MonadIO m, IsDrawContext a) => a -> m Bool

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>display</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDrawContextDisplay :: (IsDrawContext o, MonadIO m, IsDisplay a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>display</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drawContext #display
--   </pre>
getDrawContextDisplay :: (MonadIO m, IsDrawContext o) => o -> m (Maybe Display)

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>surface</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDrawContextSurface :: (IsDrawContext o, MonadIO m, IsSurface a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>surface</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drawContext #surface
--   </pre>
getDrawContextSurface :: (MonadIO m, IsDrawContext o) => o -> m (Maybe Surface)
instance GHC.Classes.Eq GI.Gdk.Objects.DrawContext.DrawContext
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.DrawContext.DrawContext
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.DrawContext.DrawContext
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.DrawContext.DrawContext o) => GI.Gdk.Objects.DrawContext.IsDrawContext o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.DrawContext.DrawContext)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.DrawContext.DrawContext
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.DrawContext.DrawContext


-- | Represents the source of an ongoing DND operation.
--   
--   A <tt>GdkDrag</tt> is created when a drag is started, and stays alive
--   for duration of the DND operation. After a drag has been started with
--   <a>dragBegin</a>, the caller gets informed about the status of the
--   ongoing drag operation with signals on the <tt>GdkDrag</tt> object.
--   
--   GTK provides a higher level abstraction based on top of these
--   functions, and so they are not normally needed in GTK applications.
--   See the "Drag and Drop" section of the GTK documentation for more
--   information.
module GI.Gdk.Objects.Drag

-- | Memory-managed wrapper type.
newtype Drag
Drag :: ManagedPtr Drag -> Drag

-- | Type class for types which can be safely cast to <a>Drag</a>, for
--   instance with <a>toDrag</a>.
class (GObject o, IsDescendantOf Drag o) => IsDrag o

-- | Cast to <a>Drag</a>, for types for which this is known to be safe. For
--   general casts, use <a>castTo</a>.
toDrag :: (MonadIO m, IsDrag o) => o -> m Drag

-- | Starts a drag and creates a new drag context for it.
--   
--   This function is called by the drag source. After this call, you
--   probably want to set up the drag icon using the surface returned by
--   <a>dragGetDragSurface</a>.
--   
--   This function returns a reference to the <a>Drag</a> object, but GTK
--   keeps its own reference as well, as long as the DND operation is going
--   on.
--   
--   Note: if <i><tt>actions</tt></i> include <a>DragActionMove</a>, you
--   need to listen for the <a>Drag::dndFinished</a> signal and delete the
--   data at the source if <a>dragGetSelectedAction</a> returns
--   <a>DragActionMove</a>.
dragBegin :: (HasCallStack, MonadIO m, IsSurface a, IsDevice b, IsContentProvider c) => a -> b -> c -> [DragAction] -> Double -> Double -> m (Maybe Drag)

-- | Informs GDK that the drop ended.
--   
--   Passing <a>False</a> for <i><tt>success</tt></i> may trigger a drag
--   cancellation animation.
--   
--   This function is called by the drag source, and should be the last
--   call before dropping the reference to the <i><tt>drag</tt></i>.
--   
--   The <tt>GdkDrag</tt> will only take the first <a>dragDropDone</a> call
--   as effective, if this function is called multiple times, all
--   subsequent calls will be ignored.
dragDropDone :: (HasCallStack, MonadIO m, IsDrag a) => a -> Bool -> m ()

-- | Determines the bitmask of possible actions proposed by the source.
dragGetActions :: (HasCallStack, MonadIO m, IsDrag a) => a -> m [DragAction]

-- | Returns the <tt>GdkContentProvider</tt> associated to the
--   <tt>GdkDrag</tt> object.
dragGetContent :: (HasCallStack, MonadIO m, IsDrag a) => a -> m ContentProvider

-- | Returns the <tt>GdkDevice</tt> associated to the <tt>GdkDrag</tt>
--   object.
dragGetDevice :: (HasCallStack, MonadIO m, IsDrag a) => a -> m Device

-- | Gets the <tt>GdkDisplay</tt> that the drag object was created for.
dragGetDisplay :: (HasCallStack, MonadIO m, IsDrag a) => a -> m Display

-- | Returns the surface on which the drag icon should be rendered during
--   the drag operation.
--   
--   Note that the surface may not be available until the drag operation
--   has begun. GDK will move the surface in accordance with the ongoing
--   drag operation. The surface is owned by <i><tt>drag</tt></i> and will
--   be destroyed when the drag operation is over.
dragGetDragSurface :: (HasCallStack, MonadIO m, IsDrag a) => a -> m (Maybe Surface)

-- | Retrieves the formats supported by this <tt>GdkDrag</tt> object.
dragGetFormats :: (HasCallStack, MonadIO m, IsDrag a) => a -> m ContentFormats

-- | Determines the action chosen by the drag destination.
dragGetSelectedAction :: (HasCallStack, MonadIO m, IsDrag a) => a -> m [DragAction]

-- | Returns the <tt>GdkSurface</tt> where the drag originates.
dragGetSurface :: (HasCallStack, MonadIO m, IsDrag a) => a -> m Surface

-- | Sets the position of the drag surface that will be kept under the
--   cursor hotspot.
--   
--   Initially, the hotspot is at the top left corner of the drag surface.
dragSetHotspot :: (HasCallStack, MonadIO m, IsDrag a) => a -> Int32 -> Int32 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>actions</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDragActions :: (IsDrag o, MonadIO m) => [DragAction] -> m (GValueConstruct o)

-- | Get the value of the “<tt>actions</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drag #actions
--   </pre>
getDragActions :: (MonadIO m, IsDrag o) => o -> m [DragAction]

-- | Set the value of the “<tt>actions</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> drag [ #actions <a>:=</a> value ]
--   </pre>
setDragActions :: (MonadIO m, IsDrag o) => o -> [DragAction] -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>content</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDragContent :: (IsDrag o, MonadIO m, IsContentProvider a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>content</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drag #content
--   </pre>
getDragContent :: (MonadIO m, IsDrag o) => o -> m ContentProvider

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>device</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDragDevice :: (IsDrag o, MonadIO m, IsDevice a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>device</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drag #device
--   </pre>
getDragDevice :: (MonadIO m, IsDrag o) => o -> m Device

-- | Get the value of the “<tt>display</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drag #display
--   </pre>
getDragDisplay :: (MonadIO m, IsDrag o) => o -> m Display

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>formats</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDragFormats :: (IsDrag o, MonadIO m) => ContentFormats -> m (GValueConstruct o)

-- | Get the value of the “<tt>formats</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drag #formats
--   </pre>
getDragFormats :: (MonadIO m, IsDrag o) => o -> m ContentFormats

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>selected-action</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructDragSelectedAction :: (IsDrag o, MonadIO m) => [DragAction] -> m (GValueConstruct o)

-- | Get the value of the “<tt>selected-action</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drag #selectedAction
--   </pre>
getDragSelectedAction :: (MonadIO m, IsDrag o) => o -> m [DragAction]

-- | Set the value of the “<tt>selected-action</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> drag [ #selectedAction <a>:=</a> value ]
--   </pre>
setDragSelectedAction :: (MonadIO m, IsDrag o) => o -> [DragAction] -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>surface</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDragSurface :: (IsDrag o, MonadIO m, IsSurface a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>surface</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> drag #surface
--   </pre>
getDragSurface :: (MonadIO m, IsDrag o) => o -> m Surface

-- | Emitted when the drag operation is cancelled.
type DragCancelCallback = DragCancelReason -> IO ()

-- | Connect a signal handler for the <a>cancel</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> drag #cancel callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDragCancel :: (IsDrag a, MonadIO m) => a -> ((?self :: a) => DragCancelCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>cancel</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> drag #cancel callback
--   </pre>
onDragCancel :: (IsDrag a, MonadIO m) => a -> ((?self :: a) => DragCancelCallback) -> m SignalHandlerId

-- | Emitted when the destination side has finished reading all data.
--   
--   The drag object can now free all miscellaneous data.
type DragDndFinishedCallback = IO ()

-- | Connect a signal handler for the <a>dndFinished</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> drag #dndFinished callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDragDndFinished :: (IsDrag a, MonadIO m) => a -> ((?self :: a) => DragDndFinishedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>dndFinished</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> drag #dndFinished callback
--   </pre>
onDragDndFinished :: (IsDrag a, MonadIO m) => a -> ((?self :: a) => DragDndFinishedCallback) -> m SignalHandlerId

-- | Emitted when the drop operation is performed on an accepting client.
type DragDropPerformedCallback = IO ()

-- | Connect a signal handler for the <a>dropPerformed</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> drag #dropPerformed callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDragDropPerformed :: (IsDrag a, MonadIO m) => a -> ((?self :: a) => DragDropPerformedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>dropPerformed</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> drag #dropPerformed callback
--   </pre>
onDragDropPerformed :: (IsDrag a, MonadIO m) => a -> ((?self :: a) => DragDropPerformedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gdk.Objects.Drag.Drag
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.Drag.Drag
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.Drag.Drag
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.Drag.Drag o) => GI.Gdk.Objects.Drag.IsDrag o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.Drag.Drag)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.Drag.Drag
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.Drag.Drag


-- | Constructs <a>Texture</a> objects from DMA buffers.
--   
--   DMA buffers are commonly called <b>_dma-bufs</b>_.
--   
--   DMA buffers are a feature of the Linux kernel to enable efficient
--   buffer and memory sharing between hardware such as codecs, GPUs,
--   displays, cameras and the kernel drivers controlling them. For
--   example, a decoder may want its output to be directly shared with the
--   display server for rendering without a copy.
--   
--   Any device driver which participates in DMA buffer sharing, can do so
--   as either the exporter or importer of buffers (or both).
--   
--   The memory that is shared via DMA buffers is usually stored in
--   non-system memory (maybe in device's local memory or something else
--   not directly accessible by the CPU), and accessing this memory from
--   the CPU may have higher-than-usual overhead.
--   
--   In particular for graphics data, it is not uncommon that data consists
--   of multiple separate blocks of memory, for example one block for each
--   of the red, green and blue channels. These blocks are called
--   <b>_planes</b>_. DMA buffers can have up to four planes. Even if the
--   memory is a single block, the data can be organized in multiple
--   planes, by specifying offsets from the beginning of the data.
--   
--   DMA buffers are exposed to user-space as file descriptors allowing to
--   pass them between processes. If a DMA buffer has multiple planes,
--   there is one file descriptor per plane.
--   
--   The format of the data (for graphics data, essentially its colorspace)
--   is described by a 32-bit integer. These format identifiers are defined
--   in the header file <tt>drm_fourcc.h</tt> and commonly referred to as
--   <b>_fourcc</b>_ values, since they are identified by 4 ASCII
--   characters. Additionally, each DMA buffer has a <b>_modifier</b>_,
--   which is a 64-bit integer that describes driver-specific details of
--   the memory layout, such as tiling or compression.
--   
--   For historical reasons, some producers of dma-bufs don't provide an
--   explicit modifier, but instead return <tt>DMA_FORMAT_MOD_INVALID</tt>
--   to indicate that their modifier is <b>_implicit</b>_. GTK tries to
--   accommodate this situation by accepting
--   <tt>DMA_FORMAT_MOD_INVALID</tt> as modifier.
--   
--   The operation of <tt>GdkDmabufTextureBuilder</tt> is quite simple:
--   Create a texture builder, set all the necessary properties, and then
--   call <a>dmabufTextureBuilderBuild</a> to create the new texture.
--   
--   The required properties for a dma-buf texture are
--   
--   <ul>
--   <li>The width and height in pixels</li>
--   <li>The <tt>fourcc</tt> code and <tt>modifier</tt> which identify the
--   format and memory layout of the dma-buf</li>
--   <li>The file descriptor, offset and stride for each of the planes</li>
--   </ul>
--   
--   <tt>GdkDmabufTextureBuilder</tt> can be used for quick one-shot
--   construction of textures as well as kept around and reused to
--   construct multiple textures.
--   
--   For further information, see
--   
--   <ul>
--   <li>The Linux kernel <a>documentation</a></li>
--   <li>The header file <a>drm_fourcc.h</a></li>
--   </ul>
--   
--   <i>Since: 4.14</i>
module GI.Gdk.Objects.DmabufTextureBuilder

-- | Memory-managed wrapper type.
newtype DmabufTextureBuilder
DmabufTextureBuilder :: ManagedPtr DmabufTextureBuilder -> DmabufTextureBuilder

-- | Type class for types which can be safely cast to
--   <a>DmabufTextureBuilder</a>, for instance with
--   <a>toDmabufTextureBuilder</a>.
class (GObject o, IsDescendantOf DmabufTextureBuilder o) => IsDmabufTextureBuilder o

-- | Cast to <a>DmabufTextureBuilder</a>, for types for which this is known
--   to be safe. For general casts, use <a>castTo</a>.
toDmabufTextureBuilder :: (MonadIO m, IsDmabufTextureBuilder o) => o -> m DmabufTextureBuilder

-- | Builds a new <tt>GdkTexture</tt> with the values set up in the
--   builder.
--   
--   It is a programming error to call this function if any mandatory
--   property has not been set.
--   
--   Not all formats defined in the <tt>drm_fourcc.h</tt> header are
--   supported. You can use <a>displayGetDmabufFormats</a> to get a list of
--   supported formats. If the format is not supported by GTK,
--   <a>Nothing</a> will be returned and <i><tt>error</tt></i> will be set.
--   
--   The <tt>destroy</tt> function gets called when the returned texture
--   gets released.
--   
--   It is the responsibility of the caller to keep the file descriptors
--   for the planes open until the created texture is no longer used, and
--   close them afterwards (possibly using the <i><tt>destroy</tt></i>
--   notify).
--   
--   It is possible to call this function multiple times to create multiple
--   textures, possibly with changing properties in between.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderBuild :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Maybe DestroyNotify -> Ptr () -> m (Maybe Texture)

-- | Gets the color state previously set via
--   <a>dmabufTextureBuilderSetColorState</a>.
--   
--   <i>Since: 4.16</i>
dmabufTextureBuilderGetColorState :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> m (Maybe ColorState)

-- | Returns the display that this texture builder is associated with.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderGetDisplay :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> m Display

-- | Gets the file descriptor for a plane.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderGetFd :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Word32 -> m Int32

-- | Gets the format previously set via
--   <a>dmabufTextureBuilderSetFourcc</a> or 0 if the format wasn't set.
--   
--   The format is specified as a fourcc code.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderGetFourcc :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> m Word32

-- | Gets the height previously set via
--   <a>dmabufTextureBuilderSetHeight</a> or 0 if the height wasn't set.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderGetHeight :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> m Word32

-- | Gets the modifier value.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderGetModifier :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> m Word64

-- | Gets the number of planes.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderGetNPlanes :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> m Word32

-- | Gets the offset value for a plane.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderGetOffset :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Word32 -> m Word32

-- | Whether the data is premultiplied.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderGetPremultiplied :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> m Bool

-- | Gets the stride value for a plane.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderGetStride :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Word32 -> m Word32

-- | Gets the region previously set via
--   <a>dmabufTextureBuilderSetUpdateRegion</a> or <a>Nothing</a> if none
--   was set.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderGetUpdateRegion :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> m (Maybe Region)

-- | Gets the texture previously set via
--   <a>dmabufTextureBuilderSetUpdateTexture</a> or <a>Nothing</a> if none
--   was set.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderGetUpdateTexture :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> m (Maybe Texture)

-- | Gets the width previously set via <a>dmabufTextureBuilderSetWidth</a>
--   or 0 if the width wasn't set.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderGetWidth :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> m Word32

-- | Creates a new texture builder.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderNew :: (HasCallStack, MonadIO m) => m DmabufTextureBuilder

-- | Sets the color state for the texture.
--   
--   By default, the colorstate is <tt>NULL</tt>. In that case, GTK will
--   choose the correct colorstate based on the format. If you don't know
--   what colorstates are, this is probably the right thing.
--   
--   <i>Since: 4.16</i>
dmabufTextureBuilderSetColorState :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Maybe ColorState -> m ()

-- | Sets the display that this texture builder is associated with.
--   
--   The display is used to determine the supported dma-buf formats.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderSetDisplay :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a, IsDisplay b) => a -> b -> m ()

-- | Sets the file descriptor for a plane.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderSetFd :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Word32 -> Int32 -> m ()

-- | Sets the format of the texture.
--   
--   The format is specified as a fourcc code.
--   
--   The format must be set before calling
--   <a>dmabufTextureBuilderBuild</a>.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderSetFourcc :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Word32 -> m ()

-- | Sets the height of the texture.
--   
--   The height must be set before calling
--   <a>dmabufTextureBuilderBuild</a>.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderSetHeight :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Word32 -> m ()

-- | Sets the modifier.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderSetModifier :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Word64 -> m ()

-- | Sets the number of planes of the texture.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderSetNPlanes :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Word32 -> m ()

-- | Sets the offset for a plane.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderSetOffset :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Word32 -> Word32 -> m ()

-- | Sets whether the data is premultiplied.
--   
--   Unless otherwise specified, all formats including alpha channels are
--   assumed to be premultiplied.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderSetPremultiplied :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Bool -> m ()

-- | Sets the stride for a plane.
--   
--   The stride must be set for all planes before calling
--   <a>dmabufTextureBuilderBuild</a>.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderSetStride :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Word32 -> Word32 -> m ()

-- | Sets the region to be updated by this texture. Together with
--   <a>DmabufTextureBuilder:updateTexture</a> this describes an update of
--   a previous texture.
--   
--   When rendering animations of large textures, it is possible that
--   consecutive textures are only updating contents in parts of the
--   texture. It is then possible to describe this update via these two
--   properties, so that GTK can avoid rerendering parts that did not
--   change.
--   
--   An example would be a screen recording where only the mouse pointer
--   moves.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderSetUpdateRegion :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Maybe Region -> m ()

-- | Sets the texture to be updated by this texture. See
--   <a>dmabufTextureBuilderSetUpdateRegion</a> for an explanation.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderSetUpdateTexture :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a, IsTexture b) => a -> Maybe b -> m ()

-- | Sets the width of the texture.
--   
--   The width must be set before calling <a>dmabufTextureBuilderBuild</a>.
--   
--   <i>Since: 4.14</i>
dmabufTextureBuilderSetWidth :: (HasCallStack, MonadIO m, IsDmabufTextureBuilder a) => a -> Word32 -> m ()

-- | Set the value of the “<tt>color-state</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #colorState
--   </pre>
clearDmabufTextureBuilderColorState :: (MonadIO m, IsDmabufTextureBuilder o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>color-state</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructDmabufTextureBuilderColorState :: (IsDmabufTextureBuilder o, MonadIO m) => ColorState -> m (GValueConstruct o)

-- | Get the value of the “<tt>color-state</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> dmabufTextureBuilder #colorState
--   </pre>
getDmabufTextureBuilderColorState :: (MonadIO m, IsDmabufTextureBuilder o) => o -> m (Maybe ColorState)

-- | Set the value of the “<tt>color-state</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> dmabufTextureBuilder [ #colorState <a>:=</a> value ]
--   </pre>
setDmabufTextureBuilderColorState :: (MonadIO m, IsDmabufTextureBuilder o) => o -> ColorState -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>display</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDmabufTextureBuilderDisplay :: (IsDmabufTextureBuilder o, MonadIO m, IsDisplay a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>display</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> dmabufTextureBuilder #display
--   </pre>
getDmabufTextureBuilderDisplay :: (MonadIO m, IsDmabufTextureBuilder o) => o -> m Display

-- | Set the value of the “<tt>display</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> dmabufTextureBuilder [ #display <a>:=</a> value ]
--   </pre>
setDmabufTextureBuilderDisplay :: (MonadIO m, IsDmabufTextureBuilder o, IsDisplay a) => o -> a -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>fourcc</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDmabufTextureBuilderFourcc :: (IsDmabufTextureBuilder o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>fourcc</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> dmabufTextureBuilder #fourcc
--   </pre>
getDmabufTextureBuilderFourcc :: (MonadIO m, IsDmabufTextureBuilder o) => o -> m Word32

-- | Set the value of the “<tt>fourcc</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> dmabufTextureBuilder [ #fourcc <a>:=</a> value ]
--   </pre>
setDmabufTextureBuilderFourcc :: (MonadIO m, IsDmabufTextureBuilder o) => o -> Word32 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>height</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDmabufTextureBuilderHeight :: (IsDmabufTextureBuilder o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>height</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> dmabufTextureBuilder #height
--   </pre>
getDmabufTextureBuilderHeight :: (MonadIO m, IsDmabufTextureBuilder o) => o -> m Word32

-- | Set the value of the “<tt>height</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> dmabufTextureBuilder [ #height <a>:=</a> value ]
--   </pre>
setDmabufTextureBuilderHeight :: (MonadIO m, IsDmabufTextureBuilder o) => o -> Word32 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>modifier</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructDmabufTextureBuilderModifier :: (IsDmabufTextureBuilder o, MonadIO m) => Word64 -> m (GValueConstruct o)

-- | Get the value of the “<tt>modifier</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> dmabufTextureBuilder #modifier
--   </pre>
getDmabufTextureBuilderModifier :: (MonadIO m, IsDmabufTextureBuilder o) => o -> m Word64

-- | Set the value of the “<tt>modifier</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> dmabufTextureBuilder [ #modifier <a>:=</a> value ]
--   </pre>
setDmabufTextureBuilderModifier :: (MonadIO m, IsDmabufTextureBuilder o) => o -> Word64 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>n-planes</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructDmabufTextureBuilderNPlanes :: (IsDmabufTextureBuilder o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>n-planes</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> dmabufTextureBuilder #nPlanes
--   </pre>
getDmabufTextureBuilderNPlanes :: (MonadIO m, IsDmabufTextureBuilder o) => o -> m Word32

-- | Set the value of the “<tt>n-planes</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> dmabufTextureBuilder [ #nPlanes <a>:=</a> value ]
--   </pre>
setDmabufTextureBuilderNPlanes :: (MonadIO m, IsDmabufTextureBuilder o) => o -> Word32 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>premultiplied</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructDmabufTextureBuilderPremultiplied :: (IsDmabufTextureBuilder o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>premultiplied</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> dmabufTextureBuilder #premultiplied
--   </pre>
getDmabufTextureBuilderPremultiplied :: (MonadIO m, IsDmabufTextureBuilder o) => o -> m Bool

-- | Set the value of the “<tt>premultiplied</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> dmabufTextureBuilder [ #premultiplied <a>:=</a> value ]
--   </pre>
setDmabufTextureBuilderPremultiplied :: (MonadIO m, IsDmabufTextureBuilder o) => o -> Bool -> m ()

-- | Set the value of the “<tt>update-region</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #updateRegion
--   </pre>
clearDmabufTextureBuilderUpdateRegion :: (MonadIO m, IsDmabufTextureBuilder o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>update-region</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructDmabufTextureBuilderUpdateRegion :: (IsDmabufTextureBuilder o, MonadIO m) => Region -> m (GValueConstruct o)

-- | Get the value of the “<tt>update-region</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> dmabufTextureBuilder #updateRegion
--   </pre>
getDmabufTextureBuilderUpdateRegion :: (MonadIO m, IsDmabufTextureBuilder o) => o -> m (Maybe Region)

-- | Set the value of the “<tt>update-region</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> dmabufTextureBuilder [ #updateRegion <a>:=</a> value ]
--   </pre>
setDmabufTextureBuilderUpdateRegion :: (MonadIO m, IsDmabufTextureBuilder o) => o -> Region -> m ()

-- | Set the value of the “<tt>update-texture</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #updateTexture
--   </pre>
clearDmabufTextureBuilderUpdateTexture :: (MonadIO m, IsDmabufTextureBuilder o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>update-texture</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructDmabufTextureBuilderUpdateTexture :: (IsDmabufTextureBuilder o, MonadIO m, IsTexture a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>update-texture</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> dmabufTextureBuilder #updateTexture
--   </pre>
getDmabufTextureBuilderUpdateTexture :: (MonadIO m, IsDmabufTextureBuilder o) => o -> m (Maybe Texture)

-- | Set the value of the “<tt>update-texture</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> dmabufTextureBuilder [ #updateTexture <a>:=</a> value ]
--   </pre>
setDmabufTextureBuilderUpdateTexture :: (MonadIO m, IsDmabufTextureBuilder o, IsTexture a) => o -> a -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>width</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDmabufTextureBuilderWidth :: (IsDmabufTextureBuilder o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>width</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> dmabufTextureBuilder #width
--   </pre>
getDmabufTextureBuilderWidth :: (MonadIO m, IsDmabufTextureBuilder o) => o -> m Word32

-- | Set the value of the “<tt>width</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> dmabufTextureBuilder [ #width <a>:=</a> value ]
--   </pre>
setDmabufTextureBuilderWidth :: (MonadIO m, IsDmabufTextureBuilder o) => o -> Word32 -> m ()
instance GHC.Classes.Eq GI.Gdk.Objects.DmabufTextureBuilder.DmabufTextureBuilder
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.DmabufTextureBuilder.DmabufTextureBuilder
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.DmabufTextureBuilder.DmabufTextureBuilder
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.DmabufTextureBuilder.DmabufTextureBuilder o) => GI.Gdk.Objects.DmabufTextureBuilder.IsDmabufTextureBuilder o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.DmabufTextureBuilder.DmabufTextureBuilder)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.DmabufTextureBuilder.DmabufTextureBuilder
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.DmabufTextureBuilder.DmabufTextureBuilder


-- | Offers notification when displays appear or disappear.
--   
--   <tt>GdkDisplayManager</tt> is a singleton object.
--   
--   You can use <a>displayManagerGet</a> to obtain the
--   <tt>GdkDisplayManager</tt> singleton, but that should be rarely
--   necessary. Typically, initializing GTK opens a display that you can
--   work with without ever accessing the <tt>GdkDisplayManager</tt>.
--   
--   The GDK library can be built with support for multiple backends. The
--   <tt>GdkDisplayManager</tt> object determines which backend is used at
--   runtime.
--   
--   In the rare case that you need to influence which of the backends is
--   being used, you can use <a>setAllowedBackends</a>. Note that you need
--   to call this function before initializing GTK.
--   
--   <h2>Backend-specific code</h2>
--   
--   When writing backend-specific code that is supposed to work with
--   multiple GDK backends, you have to consider both compile time and
--   runtime. At compile time, use the <tt>GDK_WINDOWING_X11</tt>,
--   <tt>GDK_WINDOWING_WIN32</tt> macros, etc. to find out which backends
--   are present in the GDK library you are building your application
--   against. At runtime, use type-check macros like
--   <tt><i>GDK_IS_X11_DISPLAY()</i></tt> to find out which backend is in
--   use:
--   
--   <h3><i>c code</i></h3>
--   
--   <pre>
--   #ifdef GDK_WINDOWING_X11
--     if (GDK_IS_X11_DISPLAY (display))
--       {
--         // make X11-specific calls here
--       }
--     else
--   #endif
--   #ifdef GDK_WINDOWING_MACOS
--     if (GDK_IS_MACOS_DISPLAY (display))
--       {
--         // make Quartz-specific calls here
--       }
--     else
--   #endif
--     g_error ("Unsupported GDK backend");
--   </pre>
module GI.Gdk.Objects.DisplayManager

-- | Memory-managed wrapper type.
newtype DisplayManager
DisplayManager :: ManagedPtr DisplayManager -> DisplayManager

-- | Type class for types which can be safely cast to
--   <a>DisplayManager</a>, for instance with <a>toDisplayManager</a>.
class (GObject o, IsDescendantOf DisplayManager o) => IsDisplayManager o

-- | Cast to <a>DisplayManager</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toDisplayManager :: (MonadIO m, IsDisplayManager o) => o -> m DisplayManager

-- | Gets the singleton <tt>GdkDisplayManager</tt> object.
--   
--   When called for the first time, this function consults the
--   <tt>GDK_BACKEND</tt> environment variable to find out which of the
--   supported GDK backends to use (in case GDK has been compiled with
--   multiple backends).
--   
--   Applications can use [func<i><tt>setAllowedBackends</tt></i>] to limit
--   what backends will be used.
displayManagerGet :: (HasCallStack, MonadIO m) => m DisplayManager

-- | Gets the default <tt>GdkDisplay</tt>.
displayManagerGetDefaultDisplay :: (HasCallStack, MonadIO m, IsDisplayManager a) => a -> m (Maybe Display)

-- | List all currently open displays.
displayManagerListDisplays :: (HasCallStack, MonadIO m, IsDisplayManager a) => a -> m [Display]

-- | Opens a display.
displayManagerOpenDisplay :: (HasCallStack, MonadIO m, IsDisplayManager a) => a -> Maybe Text -> m (Maybe Display)

-- | Sets <i><tt>display</tt></i> as the default display.
displayManagerSetDefaultDisplay :: (HasCallStack, MonadIO m, IsDisplayManager a, IsDisplay b) => a -> b -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>default-display</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructDisplayManagerDefaultDisplay :: (IsDisplayManager o, MonadIO m, IsDisplay a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>default-display</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> displayManager #defaultDisplay
--   </pre>
getDisplayManagerDefaultDisplay :: (MonadIO m, IsDisplayManager o) => o -> m (Maybe Display)

-- | Set the value of the “<tt>default-display</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> displayManager [ #defaultDisplay <a>:=</a> value ]
--   </pre>
setDisplayManagerDefaultDisplay :: (MonadIO m, IsDisplayManager o, IsDisplay a) => o -> a -> m ()

-- | Emitted when a display is opened.
type DisplayManagerDisplayOpenedCallback = Display -> IO ()

-- | Connect a signal handler for the <a>displayOpened</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> displayManager #displayOpened callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDisplayManagerDisplayOpened :: (IsDisplayManager a, MonadIO m) => a -> ((?self :: a) => DisplayManagerDisplayOpenedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>displayOpened</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> displayManager #displayOpened callback
--   </pre>
onDisplayManagerDisplayOpened :: (IsDisplayManager a, MonadIO m) => a -> ((?self :: a) => DisplayManagerDisplayOpenedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gdk.Objects.DisplayManager.DisplayManager
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.DisplayManager.DisplayManager
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.DisplayManager.DisplayManager
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.DisplayManager.DisplayManager o) => GI.Gdk.Objects.DisplayManager.IsDisplayManager o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.DisplayManager.DisplayManager)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.DisplayManager.DisplayManager
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.DisplayManager.DisplayManager


-- | A representation of a workstation.
--   
--   Their purpose are two-fold:
--   
--   <ul>
--   <li>To manage and provide information about input devices (pointers,
--   keyboards, etc)</li>
--   <li>To manage and provide information about output devices (monitors,
--   projectors, etc)</li>
--   </ul>
--   
--   Most of the input device handling has been factored out into separate
--   <a>Seat</a> objects. Every display has a one or more seats, which can
--   be accessed with <a>displayGetDefaultSeat</a> and
--   <a>displayListSeats</a>.
--   
--   Output devices are represented by <a>Monitor</a> objects, which can be
--   accessed with <a>displayGetMonitorAtSurface</a> and similar APIs.
module GI.Gdk.Objects.Display

-- | Memory-managed wrapper type.
newtype Display
Display :: ManagedPtr Display -> Display

-- | Type class for types which can be safely cast to <a>Display</a>, for
--   instance with <a>toDisplay</a>.
class (GObject o, IsDescendantOf Display o) => IsDisplay o

-- | Cast to <a>Display</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toDisplay :: (MonadIO m, IsDisplay o) => o -> m Display

-- | Emits a short beep on <i><tt>display</tt></i>
displayBeep :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m ()

-- | Closes the connection to the windowing system for the given display.
--   
--   This cleans up associated resources.
displayClose :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m ()

-- | Creates a new <tt>GdkGLContext</tt> for the <tt>GdkDisplay</tt>.
--   
--   The context is disconnected from any particular surface or surface and
--   cannot be used to draw to any surface. It can only be used to draw to
--   non-surface framebuffers like textures.
--   
--   If the creation of the <tt>GdkGLContext</tt> failed,
--   <i><tt>error</tt></i> will be set. Before using the returned
--   <tt>GdkGLContext</tt>, you will need to call
--   <a>gLContextMakeCurrent</a> or <a>gLContextRealize</a>.
--   
--   <i>Since: 4.6</i>
displayCreateGlContext :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m GLContext

-- | Returns <a>True</a> if there is an ongoing grab on
--   <i><tt>device</tt></i> for <i><tt>display</tt></i>.
displayDeviceIsGrabbed :: (HasCallStack, MonadIO m, IsDisplay a, IsDevice b) => a -> b -> m Bool

-- | Flushes any requests queued for the windowing system.
--   
--   This happens automatically when the main loop blocks waiting for new
--   events, but if your application is drawing without returning control
--   to the main loop, you may need to call this function explicitly. A
--   common case where this function needs to be called is when an
--   application is executing drawing commands from a thread other than the
--   thread where the main loop is running.
--   
--   This is most useful for X11. On windowing systems where requests are
--   handled synchronously, this function will do nothing.
displayFlush :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m ()

-- | Returns a <tt>GdkAppLaunchContext</tt> suitable for launching
--   applications on the given display.
displayGetAppLaunchContext :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m AppLaunchContext

-- | Gets the clipboard used for copy/paste operations.
displayGetClipboard :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m Clipboard

-- | Gets the default <tt>GdkDisplay</tt>.
--   
--   This is a convenience function for:
--   
--   gdk_display_manager_get_default_display (gdk_display_manager_get ())
displayGetDefault :: (HasCallStack, MonadIO m) => m (Maybe Display)

-- | Returns the default <tt>GdkSeat</tt> for this display.
--   
--   Note that a display may not have a seat. In this case, this function
--   will return <a>Nothing</a>.
displayGetDefaultSeat :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m (Maybe Seat)

-- | Returns the dma-buf formats that are supported on this display.
--   
--   GTK may use OpenGL or Vulkan to support some formats. Calling this
--   function will then initialize them if they aren't yet.
--   
--   The formats returned by this function can be used for negotiating
--   buffer formats with producers such as v4l, pipewire or GStreamer.
--   
--   To learn more about dma-bufs, see <a>DmabufTextureBuilder</a>.
--   
--   This function is threadsafe. It can be called from any thread.
--   
--   <i>Since: 4.14</i>
displayGetDmabufFormats :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m DmabufFormats

-- | Gets the monitor in which the largest area of <i><tt>surface</tt></i>
--   resides.
displayGetMonitorAtSurface :: (HasCallStack, MonadIO m, IsDisplay a, IsSurface b) => a -> b -> m (Maybe Monitor)

-- | Gets the list of monitors associated with this display.
--   
--   Subsequent calls to this function will always return the same list for
--   the same display.
--   
--   You can listen to the GListModel<a>itemsChanged</a> signal on this
--   list to monitor changes to the monitor of this display.
displayGetMonitors :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m ListModel

-- | Gets the name of the display.
displayGetName :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m Text

-- | Gets the clipboard used for the primary selection.
--   
--   On backends where the primary clipboard is not supported natively, GDK
--   emulates this clipboard locally.
displayGetPrimaryClipboard :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m Clipboard

-- | Retrieves a desktop-wide setting such as double-click time for the
--   <i><tt>display</tt></i>.
displayGetSetting :: (HasCallStack, MonadIO m, IsDisplay a) => a -> Text -> GValue -> m Bool

-- | Gets the startup notification ID for a Wayland display, or
--   <a>Nothing</a> if no ID has been defined.

-- | <i>Deprecated: (Since version 4.10)</i>
displayGetStartupNotificationId :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m (Maybe Text)

-- | Finds out if the display has been closed.
displayIsClosed :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m Bool

-- | Returns whether surfaces can reasonably be expected to have their
--   alpha channel drawn correctly on the screen.
--   
--   Check <a>displayIsRgba</a> for whether the display supports an alpha
--   channel.
--   
--   On X11 this function returns whether a compositing manager is
--   compositing on <i><tt>display</tt></i>.
--   
--   On modern displays, this value is always <a>True</a>.
displayIsComposited :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m Bool

-- | Returns whether surfaces on this <i><tt>display</tt></i> are created
--   with an alpha channel.
--   
--   Even if a <a>True</a> is returned, it is possible that the surface’s
--   alpha channel won’t be honored when displaying the surface on the
--   screen: in particular, for X an appropriate windowing manager and
--   compositing manager must be running to provide appropriate display.
--   Use <a>displayIsComposited</a> to check if that is the case.
--   
--   On modern displays, this value is always <a>True</a>.
displayIsRgba :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m Bool

-- | Returns the list of seats known to <i><tt>display</tt></i>.
displayListSeats :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m [Seat]

-- | Returns the keyvals bound to <i><tt>keycode</tt></i>.
--   
--   The Nth <tt>GdkKeymapKey</tt> in <i><tt>keys</tt></i> is bound to the
--   Nth keyval in <i><tt>keyvals</tt></i>.
--   
--   When a keycode is pressed by the user, the keyval from this list of
--   entries is selected by considering the effective keyboard group and
--   level.
--   
--   Free the returned arrays with <a>free</a>.
displayMapKeycode :: (HasCallStack, MonadIO m, IsDisplay a) => a -> Word32 -> m (Bool, [KeymapKey], [Word32])

-- | Obtains a list of keycode/group/level combinations that will generate
--   <i><tt>keyval</tt></i>.
--   
--   Groups and levels are two kinds of keyboard mode; in general, the
--   level determines whether the top or bottom symbol on a key is used,
--   and the group determines whether the left or right symbol is used.
--   
--   On US keyboards, the shift key changes the keyboard level, and there
--   are no groups. A group switch key might convert a keyboard between
--   Hebrew to English modes, for example.
--   
--   <tt>GdkEventKey</tt> contains a <tt><i>group</i></tt> field that
--   indicates the active keyboard group. The level is computed from the
--   modifier mask.
--   
--   The returned array should be freed with <a>free</a>.
displayMapKeyval :: (HasCallStack, MonadIO m, IsDisplay a) => a -> Word32 -> m (Bool, [KeymapKey])

-- | Indicates to the GUI environment that the application has finished
--   loading, using a given identifier.
--   
--   GTK will call this function automatically for <a>GtkWindow</a> with
--   custom startup-notification identifier unless
--   <a>gtk_window_set_auto_startup_notification()</a> is called to disable
--   that feature.

-- | <i>Deprecated: (Since version 4.10)Using <a>toplevelSetStartupId</a>
--   is sufficient</i>
displayNotifyStartupComplete :: (HasCallStack, MonadIO m, IsDisplay a) => a -> Text -> m ()

-- | Opens a display.
--   
--   If opening the display fails, <tt>NULL</tt> is returned.
displayOpen :: (HasCallStack, MonadIO m) => Maybe Text -> m (Maybe Display)

-- | Checks that OpenGL is available for <i><tt>self</tt></i> and ensures
--   that it is properly initialized. When this fails, an
--   <i><tt>error</tt></i> will be set describing the error and this
--   function returns <a>False</a>.
--   
--   Note that even if this function succeeds, creating a
--   <tt>GdkGLContext</tt> may still fail.
--   
--   This function is idempotent. Calling it multiple times will just
--   return the same value or error.
--   
--   You never need to call this function, GDK will call it automatically
--   as needed. But you can use it as a check when setting up code that
--   might make use of OpenGL.
--   
--   <i>Since: 4.4</i>
displayPrepareGl :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m ()

-- | Adds the given event to the event queue for <i><tt>display</tt></i>.

-- | <i>Deprecated: (Since version 4.10)This function is only useful in
--   veryspecial situations and should not be used by applications.</i>
displayPutEvent :: (HasCallStack, MonadIO m, IsDisplay a, IsEvent b) => a -> b -> m ()

-- | Returns <a>True</a> if the display supports input shapes.
--   
--   This means that <a>surfaceSetInputRegion</a> can be used to modify the
--   input shape of surfaces on <i><tt>display</tt></i>.
--   
--   On modern displays, this value is always <a>True</a>.
displaySupportsInputShapes :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m Bool

-- | Returns whether it's possible for a surface to draw outside of the
--   window area.
--   
--   If <a>True</a> is returned the application decides if it wants to draw
--   shadows. If <a>False</a> is returned, the compositor decides if it
--   wants to draw shadows.
--   
--   <i>Since: 4.14</i>
displaySupportsShadowWidth :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m Bool

-- | Flushes any requests queued for the windowing system and waits until
--   all requests have been handled.
--   
--   This is often used for making sure that the display is synchronized
--   with the current state of the program. Calling <a>displaySync</a>
--   before [method<i><tt>gdkX11</tt></i>.Display.error_trap_pop] makes
--   sure that any errors generated from earlier requests are handled
--   before the error trap is removed.
--   
--   This is most useful for X11. On windowing systems where requests are
--   handled synchronously, this function will do nothing.
displaySync :: (HasCallStack, MonadIO m, IsDisplay a) => a -> m ()

-- | Translates the contents of a <tt>GdkEventKey</tt> into a keyval,
--   effective group, and level.
--   
--   Modifiers that affected the translation and are thus unavailable for
--   application use are returned in <i><tt>consumedModifiers</tt></i>.
--   
--   The <i><tt>effectiveGroup</tt></i> is the group that was actually used
--   for the translation; some keys such as Enter are not affected by the
--   active keyboard group. The <i><tt>level</tt></i> is derived from
--   <i><tt>state</tt></i>.
--   
--   <i><tt>consumedModifiers</tt></i> gives modifiers that should be
--   masked out from <i><tt>state</tt></i> when comparing this key press to
--   a keyboard shortcut. For instance, on a US keyboard, the <tt>plus</tt>
--   symbol is shifted, so when comparing a key press to a
--   <tt>&lt;Control&gt;plus</tt> accelerator <tt>&lt;Shift&gt;</tt> should
--   be masked out.
--   
--   This function should rarely be needed, since <tt>GdkEventKey</tt>
--   already contains the translated keyval. It is exported for the benefit
--   of virtualized test environments.
displayTranslateKey :: (HasCallStack, MonadIO m, IsDisplay a) => a -> Word32 -> [ModifierType] -> Int32 -> m (Bool, Word32, Int32, Int32, [ModifierType])

-- | Get the value of the “<tt>composited</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> display #composited
--   </pre>
getDisplayComposited :: (MonadIO m, IsDisplay o) => o -> m Bool

-- | Get the value of the “<tt>dmabuf-formats</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> display #dmabufFormats
--   </pre>
getDisplayDmabufFormats :: (MonadIO m, IsDisplay o) => o -> m DmabufFormats

-- | Get the value of the “<tt>input-shapes</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> display #inputShapes
--   </pre>
getDisplayInputShapes :: (MonadIO m, IsDisplay o) => o -> m Bool

-- | Get the value of the “<tt>rgba</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> display #rgba
--   </pre>
getDisplayRgba :: (MonadIO m, IsDisplay o) => o -> m Bool

-- | Get the value of the “<tt>shadow-width</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> display #shadowWidth
--   </pre>
getDisplayShadowWidth :: (MonadIO m, IsDisplay o) => o -> m Bool

-- | Emitted when the connection to the windowing system for
--   <i><tt>display</tt></i> is closed.
type DisplayClosedCallback = Bool -> IO ()

-- | Connect a signal handler for the <a>closed</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> display #closed callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDisplayClosed :: (IsDisplay a, MonadIO m) => a -> ((?self :: a) => DisplayClosedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>closed</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> display #closed callback
--   </pre>
onDisplayClosed :: (IsDisplay a, MonadIO m) => a -> ((?self :: a) => DisplayClosedCallback) -> m SignalHandlerId

-- | Emitted when the connection to the windowing system for
--   <i><tt>display</tt></i> is opened.
type DisplayOpenedCallback = IO ()

-- | Connect a signal handler for the <a>opened</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> display #opened callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDisplayOpened :: (IsDisplay a, MonadIO m) => a -> ((?self :: a) => DisplayOpenedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>opened</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> display #opened callback
--   </pre>
onDisplayOpened :: (IsDisplay a, MonadIO m) => a -> ((?self :: a) => DisplayOpenedCallback) -> m SignalHandlerId

-- | Emitted whenever a new seat is made known to the windowing system.
type DisplaySeatAddedCallback = Seat -> IO ()

-- | Connect a signal handler for the <a>seatAdded</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> display #seatAdded callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDisplaySeatAdded :: (IsDisplay a, MonadIO m) => a -> ((?self :: a) => DisplaySeatAddedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>seatAdded</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> display #seatAdded callback
--   </pre>
onDisplaySeatAdded :: (IsDisplay a, MonadIO m) => a -> ((?self :: a) => DisplaySeatAddedCallback) -> m SignalHandlerId

-- | Emitted whenever a seat is removed by the windowing system.
type DisplaySeatRemovedCallback = Seat -> IO ()

-- | Connect a signal handler for the <a>seatRemoved</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> display #seatRemoved callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDisplaySeatRemoved :: (IsDisplay a, MonadIO m) => a -> ((?self :: a) => DisplaySeatRemovedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>seatRemoved</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> display #seatRemoved callback
--   </pre>
onDisplaySeatRemoved :: (IsDisplay a, MonadIO m) => a -> ((?self :: a) => DisplaySeatRemovedCallback) -> m SignalHandlerId

-- | Emitted whenever a setting changes its value.
type DisplaySettingChangedCallback = Text -> IO ()

-- | Connect a signal handler for the <a>settingChanged</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> display #settingChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDisplaySettingChanged :: (IsDisplay a, MonadIO m) => a -> ((?self :: a) => DisplaySettingChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>settingChanged</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> display #settingChanged callback
--   </pre>
onDisplaySettingChanged :: (IsDisplay a, MonadIO m) => a -> ((?self :: a) => DisplaySettingChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gdk.Objects.Display.Display
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.Display.Display
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.Display.Display
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.Display.Display o) => GI.Gdk.Objects.Display.IsDisplay o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.Display.Display)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.Display.Display
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.Display.Display


-- | Represents an input device, such as a keyboard, mouse or touchpad.
--   
--   See the <a>Seat</a> documentation for more information about the
--   various kinds of devices, and their relationships.
module GI.Gdk.Objects.Device

-- | Memory-managed wrapper type.
newtype Device
Device :: ManagedPtr Device -> Device

-- | Type class for types which can be safely cast to <a>Device</a>, for
--   instance with <a>toDevice</a>.
class (GObject o, IsDescendantOf Device o) => IsDevice o

-- | Cast to <a>Device</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toDevice :: (MonadIO m, IsDevice o) => o -> m Device

-- | Retrieves the index of the active layout of the keyboard.
--   
--   If there is no valid active layout for the <tt>GdkDevice</tt>, this
--   function will return -1;
--   
--   This is only relevant for keyboard devices.
--   
--   <i>Since: 4.18</i>
deviceGetActiveLayoutIndex :: (HasCallStack, MonadIO m, IsDevice a) => a -> m Int32

-- | Retrieves whether the Caps Lock modifier of the keyboard is locked.
--   
--   This is only relevant for keyboard devices.
deviceGetCapsLockState :: (HasCallStack, MonadIO m, IsDevice a) => a -> m Bool

-- | Retrieves the current tool for <i><tt>device</tt></i>.
deviceGetDeviceTool :: (HasCallStack, MonadIO m, IsDevice a) => a -> m (Maybe DeviceTool)

-- | Returns the direction of effective layout of the keyboard.
--   
--   This is only relevant for keyboard devices.
--   
--   The direction of a layout is the direction of the majority of its
--   symbols. See <a>unicharDirection</a>.
deviceGetDirection :: (HasCallStack, MonadIO m, IsDevice a) => a -> m Direction

-- | Returns the <tt>GdkDisplay</tt> to which <i><tt>device</tt></i>
--   pertains.
deviceGetDisplay :: (HasCallStack, MonadIO m, IsDevice a) => a -> m Display

-- | Determines whether the pointer follows device motion.
--   
--   This is not meaningful for keyboard devices, which don't have a
--   pointer.
deviceGetHasCursor :: (HasCallStack, MonadIO m, IsDevice a) => a -> m Bool

-- | Retrieves the names of the layouts of the keyboard.
--   
--   This is only relevant for keyboard devices.
--   
--   <i>Since: 4.18</i>
deviceGetLayoutNames :: (HasCallStack, MonadIO m, IsDevice a) => a -> m (Maybe [Text])

-- | Retrieves the current modifier state of the keyboard.
--   
--   This is only relevant for keyboard devices.
deviceGetModifierState :: (HasCallStack, MonadIO m, IsDevice a) => a -> m [ModifierType]

-- | The name of the device, suitable for showing in a user interface.
deviceGetName :: (HasCallStack, MonadIO m, IsDevice a) => a -> m Text

-- | Retrieves whether the Num Lock modifier of the keyboard is locked.
--   
--   This is only relevant for keyboard devices.
deviceGetNumLockState :: (HasCallStack, MonadIO m, IsDevice a) => a -> m Bool

-- | Retrieves the number of touch points associated to
--   <i><tt>device</tt></i>.
deviceGetNumTouches :: (HasCallStack, MonadIO m, IsDevice a) => a -> m Word32

-- | Returns the product ID of this device.
--   
--   This ID is retrieved from the device, and does not change. See
--   <a>deviceGetVendorId</a> for more information.
deviceGetProductId :: (HasCallStack, MonadIO m, IsDevice a) => a -> m (Maybe Text)

-- | Retrieves whether the Scroll Lock modifier of the keyboard is locked.
--   
--   This is only relevant for keyboard devices.
deviceGetScrollLockState :: (HasCallStack, MonadIO m, IsDevice a) => a -> m Bool

-- | Returns the <tt>GdkSeat</tt> the device belongs to.
deviceGetSeat :: (HasCallStack, MonadIO m, IsDevice a) => a -> m Seat

-- | Determines the type of the device.
deviceGetSource :: (HasCallStack, MonadIO m, IsDevice a) => a -> m InputSource

-- | Obtains the surface underneath <i><tt>device</tt></i>, returning the
--   location of the device in <i><tt>winX</tt></i> and
--   <i><tt>winY</tt></i>.
--   
--   Returns <a>Nothing</a> if the surface tree under
--   <i><tt>device</tt></i> is not known to GDK (for example, belongs to
--   another application).
deviceGetSurfaceAtPosition :: (HasCallStack, MonadIO m, IsDevice a) => a -> m (Maybe Surface, Double, Double)

-- | Returns the timestamp of the last activity for this device.
--   
--   In practice, this means the timestamp of the last event that was
--   received from the OS for this device. (GTK may occasionally produce
--   events for a device that are not received from the OS, and will not
--   update the timestamp).
--   
--   <i>Since: 4.2</i>
deviceGetTimestamp :: (HasCallStack, MonadIO m, IsDevice a) => a -> m Word32

-- | Returns the vendor ID of this device.
--   
--   This ID is retrieved from the device, and does not change.
--   
--   This function, together with <a>deviceGetProductId</a>, can be used to
--   eg. compose <tt>GSettings</tt> paths to store settings for this
--   device.
--   
--   <h3><i>c code</i></h3>
--   
--   <pre>
--   static GSettings *
--   get_device_settings (GdkDevice *device)
--   {
--     const char *vendor, *product;
--     GSettings *settings;
--     GdkDevice *device;
--     char *path;
--   
--     vendor = gdk_device_get_vendor_id (device);
--     product = gdk_device_get_product_id (device);
--   
--     path = g_strdup_printf ("/org/example/app/devices/%s:%s/", vendor, product);
--     settings = g_settings_new_with_path (DEVICE_SCHEMA, path);
--     g_free (path);
--   
--     return settings;
--   }
--   </pre>
deviceGetVendorId :: (HasCallStack, MonadIO m, IsDevice a) => a -> m (Maybe Text)

-- | Determines if layouts for both right-to-left and left-to-right
--   languages are in use on the keyboard.
--   
--   This is only relevant for keyboard devices.
deviceHasBidiLayouts :: (HasCallStack, MonadIO m, IsDevice a) => a -> m Bool

-- | Get the value of the “<tt>active-layout-index</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #activeLayoutIndex
--   </pre>
getDeviceActiveLayoutIndex :: (MonadIO m, IsDevice o) => o -> m Int32

-- | Get the value of the “<tt>caps-lock-state</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #capsLockState
--   </pre>
getDeviceCapsLockState :: (MonadIO m, IsDevice o) => o -> m Bool

-- | Get the value of the “<tt>direction</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #direction
--   </pre>
getDeviceDirection :: (MonadIO m, IsDevice o) => o -> m Direction

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>display</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDeviceDisplay :: (IsDevice o, MonadIO m, IsDisplay a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>display</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #display
--   </pre>
getDeviceDisplay :: (MonadIO m, IsDevice o) => o -> m Display

-- | Get the value of the “<tt>has-bidi-layouts</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #hasBidiLayouts
--   </pre>
getDeviceHasBidiLayouts :: (MonadIO m, IsDevice o) => o -> m Bool

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>has-cursor</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructDeviceHasCursor :: (IsDevice o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>has-cursor</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #hasCursor
--   </pre>
getDeviceHasCursor :: (MonadIO m, IsDevice o) => o -> m Bool

-- | Get the value of the “<tt>layout-names</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #layoutNames
--   </pre>
getDeviceLayoutNames :: (MonadIO m, IsDevice o) => o -> m (Maybe [Text])

-- | Get the value of the “<tt>modifier-state</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #modifierState
--   </pre>
getDeviceModifierState :: (MonadIO m, IsDevice o) => o -> m [ModifierType]

-- | Get the value of the “<tt>n-axes</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #nAxes
--   </pre>
getDeviceNAxes :: (MonadIO m, IsDevice o) => o -> m Word32

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>name</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDeviceName :: (IsDevice o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>name</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #name
--   </pre>
getDeviceName :: (MonadIO m, IsDevice o) => o -> m Text

-- | Get the value of the “<tt>num-lock-state</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #numLockState
--   </pre>
getDeviceNumLockState :: (MonadIO m, IsDevice o) => o -> m Bool

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>num-touches</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructDeviceNumTouches :: (IsDevice o, MonadIO m) => Word32 -> m (GValueConstruct o)

-- | Get the value of the “<tt>num-touches</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #numTouches
--   </pre>
getDeviceNumTouches :: (MonadIO m, IsDevice o) => o -> m Word32

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>product-id</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructDeviceProductId :: (IsDevice o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>product-id</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #productId
--   </pre>
getDeviceProductId :: (MonadIO m, IsDevice o) => o -> m (Maybe Text)

-- | Get the value of the “<tt>scroll-lock-state</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #scrollLockState
--   </pre>
getDeviceScrollLockState :: (MonadIO m, IsDevice o) => o -> m Bool

-- | Set the value of the “<tt>seat</tt>” property to <a>Nothing</a>. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #seat
--   </pre>
clearDeviceSeat :: (MonadIO m, IsDevice o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>seat</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDeviceSeat :: (IsDevice o, MonadIO m, IsSeat a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>seat</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #seat
--   </pre>
getDeviceSeat :: (MonadIO m, IsDevice o) => o -> m Seat

-- | Set the value of the “<tt>seat</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> device [ #seat <a>:=</a> value ]
--   </pre>
setDeviceSeat :: (MonadIO m, IsDevice o, IsSeat a) => o -> a -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>source</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructDeviceSource :: (IsDevice o, MonadIO m) => InputSource -> m (GValueConstruct o)

-- | Get the value of the “<tt>source</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #source
--   </pre>
getDeviceSource :: (MonadIO m, IsDevice o) => o -> m InputSource

-- | Get the value of the “<tt>tool</tt>” property. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #tool
--   </pre>
getDeviceTool :: (MonadIO m, IsDevice o) => o -> m (Maybe DeviceTool)

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>vendor-id</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructDeviceVendorId :: (IsDevice o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>vendor-id</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> device #vendorId
--   </pre>
getDeviceVendorId :: (MonadIO m, IsDevice o) => o -> m (Maybe Text)

-- | Emitted either when the number of either axes or keys changes.
--   
--   On X11 this will normally happen when the physical device routing
--   events through the logical device changes (for example, user switches
--   from the USB mouse to a tablet); in that case the logical device will
--   change to reflect the axes and keys on the new physical device.
type DeviceChangedCallback = IO ()

-- | Connect a signal handler for the <a>changed</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> device #changed callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDeviceChanged :: (IsDevice a, MonadIO m) => a -> ((?self :: a) => DeviceChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>changed</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> device #changed callback
--   </pre>
onDeviceChanged :: (IsDevice a, MonadIO m) => a -> ((?self :: a) => DeviceChangedCallback) -> m SignalHandlerId

-- | Emitted on pen/eraser devices whenever tools enter or leave proximity.
type DeviceToolChangedCallback = DeviceTool -> IO ()

-- | Connect a signal handler for the <a>toolChanged</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> device #toolChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDeviceToolChanged :: (IsDevice a, MonadIO m) => a -> ((?self :: a) => DeviceToolChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>toolChanged</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> device #toolChanged callback
--   </pre>
onDeviceToolChanged :: (IsDevice a, MonadIO m) => a -> ((?self :: a) => DeviceToolChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gdk.Objects.Device.Device
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.Device.Device
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.Device.Device
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.Device.Device o) => GI.Gdk.Objects.Device.IsDevice o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.Device.Device)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.Device.Device
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.Device.Device


-- | An event related to closing a top-level surface.
module GI.Gdk.Objects.DeleteEvent

-- | Memory-managed wrapper type.
newtype DeleteEvent
DeleteEvent :: ManagedPtr DeleteEvent -> DeleteEvent

-- | Type class for types which can be safely cast to <a>DeleteEvent</a>,
--   for instance with <a>toDeleteEvent</a>.
class (BoxedPtr o, TypedObject o, IsDescendantOf DeleteEvent o) => IsDeleteEvent o

-- | Cast to <a>DeleteEvent</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toDeleteEvent :: (MonadIO m, IsDeleteEvent o) => o -> m DeleteEvent
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Objects.DeleteEvent.DeleteEvent
instance GHC.Classes.Eq GI.Gdk.Objects.DeleteEvent.DeleteEvent
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.DeleteEvent.DeleteEvent
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.DeleteEvent.DeleteEvent o) => GI.Gdk.Objects.DeleteEvent.IsDeleteEvent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.DeleteEvent.DeleteEvent
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.DeleteEvent.DeleteEvent


-- | An event related to drag and drop operations.
module GI.Gdk.Objects.DNDEvent

-- | Memory-managed wrapper type.
newtype DNDEvent
DNDEvent :: ManagedPtr DNDEvent -> DNDEvent

-- | Type class for types which can be safely cast to <a>DNDEvent</a>, for
--   instance with <a>toDNDEvent</a>.
class (BoxedPtr o, TypedObject o, IsDescendantOf DNDEvent o) => IsDNDEvent o

-- | Cast to <a>DNDEvent</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toDNDEvent :: (MonadIO m, IsDNDEvent o) => o -> m DNDEvent

-- | Gets the <tt>GdkDrop</tt> object from a DND event.
dNDEventGetDrop :: (HasCallStack, MonadIO m, IsDNDEvent a) => a -> m (Maybe Drop)
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Objects.DNDEvent.DNDEvent
instance GHC.Classes.Eq GI.Gdk.Objects.DNDEvent.DNDEvent
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.DNDEvent.DNDEvent
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.DNDEvent.DNDEvent o) => GI.Gdk.Objects.DNDEvent.IsDNDEvent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.DNDEvent.DNDEvent
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.DNDEvent.DNDEvent


-- | An event caused by a pointing device moving between surfaces.
module GI.Gdk.Objects.CrossingEvent

-- | Memory-managed wrapper type.
newtype CrossingEvent
CrossingEvent :: ManagedPtr CrossingEvent -> CrossingEvent

-- | Type class for types which can be safely cast to <a>CrossingEvent</a>,
--   for instance with <a>toCrossingEvent</a>.
class (BoxedPtr o, TypedObject o, IsDescendantOf CrossingEvent o) => IsCrossingEvent o

-- | Cast to <a>CrossingEvent</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toCrossingEvent :: (MonadIO m, IsCrossingEvent o) => o -> m CrossingEvent

-- | Extracts the notify detail from a crossing event.
crossingEventGetDetail :: (HasCallStack, MonadIO m, IsCrossingEvent a) => a -> m NotifyType

-- | Checks if the <i><tt>event</tt></i> surface is the focus surface.
crossingEventGetFocus :: (HasCallStack, MonadIO m, IsCrossingEvent a) => a -> m Bool

-- | Extracts the crossing mode from a crossing event.
crossingEventGetMode :: (HasCallStack, MonadIO m, IsCrossingEvent a) => a -> m CrossingMode
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Objects.CrossingEvent.CrossingEvent
instance GHC.Classes.Eq GI.Gdk.Objects.CrossingEvent.CrossingEvent
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.CrossingEvent.CrossingEvent
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.CrossingEvent.CrossingEvent o) => GI.Gdk.Objects.CrossingEvent.IsCrossingEvent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.CrossingEvent.CrossingEvent
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.CrossingEvent.CrossingEvent


-- | Represents data shared between applications or inside an application.
--   
--   To get a <tt>GdkClipboard</tt> object, use <a>displayGetClipboard</a>
--   or <a>displayGetPrimaryClipboard</a>. You can find out about the data
--   that is currently available in a clipboard using
--   <a>clipboardGetFormats</a>.
--   
--   To make text or image data available in a clipboard, use
--   <a>Clipboard</a>.<tt><i>set_text</i></tt>() or
--   <a>Clipboard</a>.<tt><i>set_texture</i></tt>(). For other data, you
--   can use <a>clipboardSetContent</a>, which takes a
--   <a>ContentProvider</a> object.
--   
--   To read textual or image data from a clipboard, use
--   <a>clipboardReadTextAsync</a> or <a>clipboardReadTextureAsync</a>. For
--   other data, use <a>clipboardReadAsync</a>, which provides a
--   <tt>GInputStream</tt> object.
module GI.Gdk.Objects.Clipboard

-- | Memory-managed wrapper type.
newtype Clipboard
Clipboard :: ManagedPtr Clipboard -> Clipboard

-- | Type class for types which can be safely cast to <a>Clipboard</a>, for
--   instance with <a>toClipboard</a>.
class (GObject o, IsDescendantOf Clipboard o) => IsClipboard o

-- | Cast to <a>Clipboard</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toClipboard :: (MonadIO m, IsClipboard o) => o -> m Clipboard

-- | Returns the <tt>GdkContentProvider</tt> currently set on
--   <i><tt>clipboard</tt></i>.
--   
--   If the <i><tt>clipboard</tt></i> is empty or its contents are not
--   owned by the current process, <a>Nothing</a> will be returned.
clipboardGetContent :: (HasCallStack, MonadIO m, IsClipboard a) => a -> m (Maybe ContentProvider)

-- | Gets the <tt>GdkDisplay</tt> that the clipboard was created for.
clipboardGetDisplay :: (HasCallStack, MonadIO m, IsClipboard a) => a -> m Display

-- | Gets the formats that the clipboard can provide its current contents
--   in.
clipboardGetFormats :: (HasCallStack, MonadIO m, IsClipboard a) => a -> m ContentFormats

-- | Returns if the clipboard is local.
--   
--   A clipboard is considered local if it was last claimed by the running
--   application.
--   
--   Note that <a>clipboardGetContent</a> may return <a>Nothing</a> even on
--   a local clipboard. In this case the clipboard is empty.
clipboardIsLocal :: (HasCallStack, MonadIO m, IsClipboard a) => a -> m Bool

-- | Asynchronously requests an input stream to read the
--   <i><tt>clipboard</tt></i>'s contents from.
--   
--   The clipboard will choose the most suitable mime type from the given
--   list to fulfill the request, preferring the ones listed first.
clipboardReadAsync :: (HasCallStack, MonadIO m, IsClipboard a, IsCancellable b) => a -> [Text] -> Int32 -> Maybe b -> Maybe AsyncReadyCallback -> m ()

-- | Finishes an asynchronous clipboard read.
--   
--   See <a>clipboardReadAsync</a>.
clipboardReadFinish :: (HasCallStack, MonadIO m, IsClipboard a, IsAsyncResult b) => a -> b -> m (Maybe InputStream, Text)

-- | Asynchronously request the <i><tt>clipboard</tt></i> contents
--   converted to a string.
--   
--   This is a simple wrapper around <a>clipboardReadValueAsync</a>. Use
--   that function or <a>clipboardReadAsync</a> directly if you need more
--   control over the operation.
clipboardReadTextAsync :: (HasCallStack, MonadIO m, IsClipboard a, IsCancellable b) => a -> Maybe b -> Maybe AsyncReadyCallback -> m ()

-- | Finishes an asynchronous clipboard read.
--   
--   See <a>clipboardReadTextAsync</a>.
clipboardReadTextFinish :: (HasCallStack, MonadIO m, IsClipboard a, IsAsyncResult b) => a -> b -> m (Maybe Text)

-- | Asynchronously request the <i><tt>clipboard</tt></i> contents
--   converted to a <tt>GdkPixbuf</tt>.
--   
--   This is a simple wrapper around <a>clipboardReadValueAsync</a>. Use
--   that function or <a>clipboardReadAsync</a> directly if you need more
--   control over the operation.
clipboardReadTextureAsync :: (HasCallStack, MonadIO m, IsClipboard a, IsCancellable b) => a -> Maybe b -> Maybe AsyncReadyCallback -> m ()

-- | Finishes an asynchronous clipboard read.
--   
--   See <a>clipboardReadTextureAsync</a>.
clipboardReadTextureFinish :: (HasCallStack, MonadIO m, IsClipboard a, IsAsyncResult b) => a -> b -> m (Maybe Texture)

-- | Asynchronously request the <i><tt>clipboard</tt></i> contents
--   converted to the given <i><tt>type</tt></i>.
--   
--   For local clipboard contents that are available in the given
--   <tt>GType</tt>, the value will be copied directly. Otherwise, GDK will
--   try to use [func<i><tt>contentDeserializeAsync</tt></i>] to convert
--   the clipboard's data.
clipboardReadValueAsync :: (HasCallStack, MonadIO m, IsClipboard a, IsCancellable b) => a -> GType -> Int32 -> Maybe b -> Maybe AsyncReadyCallback -> m ()

-- | Finishes an asynchronous clipboard read.
--   
--   See <a>clipboardReadValueAsync</a>.
clipboardReadValueFinish :: (HasCallStack, MonadIO m, IsClipboard a, IsAsyncResult b) => a -> b -> m GValue

-- | Sets the <i><tt>clipboard</tt></i> to contain the given
--   <i><tt>value</tt></i>.
clipboardSet :: (HasCallStack, MonadIO m, IsClipboard a) => a -> GValue -> m ()

-- | Sets a new content provider on <i><tt>clipboard</tt></i>.
--   
--   The clipboard will claim the <tt>GdkDisplay</tt>'s resources and
--   advertise these new contents to other applications.
--   
--   In the rare case of a failure, this function will return <a>False</a>.
--   The clipboard will then continue reporting its old contents and ignore
--   <i><tt>provider</tt></i>.
--   
--   If the contents are read by either an external application or the
--   <i><tt>clipboard</tt></i>'s read functions, <i><tt>clipboard</tt></i>
--   will select the best format to transfer the contents and then request
--   that format from <i><tt>provider</tt></i>.
clipboardSetContent :: (HasCallStack, MonadIO m, IsClipboard a, IsContentProvider b) => a -> Maybe b -> m Bool

-- | Asynchronously instructs the <i><tt>clipboard</tt></i> to store its
--   contents remotely.
--   
--   If the clipboard is not local, this function does nothing but report
--   success.
--   
--   The purpose of this call is to preserve clipboard contents beyond the
--   lifetime of an application, so this function is typically called on
--   exit. Depending on the platform, the functionality may not be
--   available unless a "clipboard manager" is running.
--   
--   This function is called automatically when a <a>GtkApplication</a> is
--   shut down, so you likely don't need to call it.
clipboardStoreAsync :: (HasCallStack, MonadIO m, IsClipboard a, IsCancellable b) => a -> Int32 -> Maybe b -> Maybe AsyncReadyCallback -> m ()

-- | Finishes an asynchronous clipboard store.
--   
--   See <a>clipboardStoreAsync</a>.
clipboardStoreFinish :: (HasCallStack, MonadIO m, IsClipboard a, IsAsyncResult b) => a -> b -> m ()

-- | Get the value of the “<tt>content</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> clipboard #content
--   </pre>
getClipboardContent :: (MonadIO m, IsClipboard o) => o -> m (Maybe ContentProvider)

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>display</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructClipboardDisplay :: (IsClipboard o, MonadIO m, IsDisplay a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>display</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> clipboard #display
--   </pre>
getClipboardDisplay :: (MonadIO m, IsClipboard o) => o -> m Display

-- | Get the value of the “<tt>formats</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> clipboard #formats
--   </pre>
getClipboardFormats :: (MonadIO m, IsClipboard o) => o -> m ContentFormats

-- | Get the value of the “<tt>local</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> clipboard #local
--   </pre>
getClipboardLocal :: (MonadIO m, IsClipboard o) => o -> m Bool

-- | Emitted when the clipboard changes ownership.
type ClipboardChangedCallback = IO ()

-- | Connect a signal handler for the <a>changed</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> clipboard #changed callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterClipboardChanged :: (IsClipboard a, MonadIO m) => a -> ((?self :: a) => ClipboardChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>changed</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> clipboard #changed callback
--   </pre>
onClipboardChanged :: (IsClipboard a, MonadIO m) => a -> ((?self :: a) => ClipboardChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gdk.Objects.Clipboard.Clipboard
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.Clipboard.Clipboard
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.Clipboard.Clipboard
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.Clipboard.Clipboard o) => GI.Gdk.Objects.Clipboard.IsClipboard o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.Clipboard.Clipboard)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.Clipboard.Clipboard
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.Clipboard.Clipboard


-- | Represents the platform-specific draw context.
--   
--   <tt>GdkCairoContext</tt>s are created for a surface using
--   <a>surfaceCreateCairoContext</a>, and the context can then be used to
--   draw on that surface.
module GI.Gdk.Objects.CairoContext

-- | Memory-managed wrapper type.
newtype CairoContext
CairoContext :: ManagedPtr CairoContext -> CairoContext

-- | Type class for types which can be safely cast to <a>CairoContext</a>,
--   for instance with <a>toCairoContext</a>.
class (GObject o, IsDescendantOf CairoContext o) => IsCairoContext o

-- | Cast to <a>CairoContext</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toCairoContext :: (MonadIO m, IsCairoContext o) => o -> m CairoContext

-- | Retrieves a Cairo context to be used to draw on the
--   <tt>GdkSurface</tt> of <i><tt>context</tt></i>.
--   
--   A call to <a>drawContextBeginFrame</a> with this
--   <i><tt>context</tt></i> must have been done or this function will
--   return <a>Nothing</a>.
--   
--   The returned context is guaranteed to be valid until
--   <a>drawContextEndFrame</a> is called.

-- | <i>Deprecated: (Since version 4.18)Drawing content with Cairo should
--   be done viaCairo rendernodes, not by using renderers.</i>
cairoContextCairoCreate :: (HasCallStack, MonadIO m, IsCairoContext a) => a -> m (Maybe Context)
instance GHC.Classes.Eq GI.Gdk.Objects.CairoContext.CairoContext
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.CairoContext.CairoContext
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.CairoContext.CairoContext
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.CairoContext.CairoContext o) => GI.Gdk.Objects.CairoContext.IsCairoContext o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.CairoContext.CairoContext)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.CairoContext.CairoContext
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.CairoContext.CairoContext


-- | An event related to a button on a pointer device.
module GI.Gdk.Objects.ButtonEvent

-- | Memory-managed wrapper type.
newtype ButtonEvent
ButtonEvent :: ManagedPtr ButtonEvent -> ButtonEvent

-- | Type class for types which can be safely cast to <a>ButtonEvent</a>,
--   for instance with <a>toButtonEvent</a>.
class (BoxedPtr o, TypedObject o, IsDescendantOf ButtonEvent o) => IsButtonEvent o

-- | Cast to <a>ButtonEvent</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toButtonEvent :: (MonadIO m, IsButtonEvent o) => o -> m ButtonEvent

-- | Extract the button number from a button event.
buttonEventGetButton :: (HasCallStack, MonadIO m, IsButtonEvent a) => a -> m Word32
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Objects.ButtonEvent.ButtonEvent
instance GHC.Classes.Eq GI.Gdk.Objects.ButtonEvent.ButtonEvent
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.ButtonEvent.ButtonEvent
instance (Data.GI.Base.BasicTypes.BoxedPtr o, Data.GI.Base.BasicTypes.TypedObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.ButtonEvent.ButtonEvent o) => GI.Gdk.Objects.ButtonEvent.IsButtonEvent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.ButtonEvent.ButtonEvent
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.ButtonEvent.ButtonEvent


-- | Handles launching an application in a graphical context.
--   
--   It is an implementation of <tt>GAppLaunchContext</tt> that provides
--   startup notification and allows to launch applications on a specific
--   workspace.
--   
--   <h2>Launching an application</h2>
--   
--   <h3><i>c code</i></h3>
--   
--   <pre>
--   GdkAppLaunchContext *context;
--   
--   context = gdk_display_get_app_launch_context (display);
--   
--   gdk_app_launch_context_set_timestamp (gdk_event_get_time (event));
--   
--   if (!g_app_info_launch_default_for_uri ("http://www.gtk.org", context, &amp;error))
--     g_warning ("Launching failed: %s\n", error-&gt;message);
--   
--   g_object_unref (context);
--   </pre>
module GI.Gdk.Objects.AppLaunchContext

-- | Memory-managed wrapper type.
newtype AppLaunchContext
AppLaunchContext :: ManagedPtr AppLaunchContext -> AppLaunchContext

-- | Type class for types which can be safely cast to
--   <a>AppLaunchContext</a>, for instance with <a>toAppLaunchContext</a>.
class (GObject o, IsDescendantOf AppLaunchContext o) => IsAppLaunchContext o

-- | Cast to <a>AppLaunchContext</a>, for types for which this is known to
--   be safe. For general casts, use <a>castTo</a>.
toAppLaunchContext :: (MonadIO m, IsAppLaunchContext o) => o -> m AppLaunchContext

-- | Gets the <tt>GdkDisplay</tt> that <i><tt>context</tt></i> is for.
appLaunchContextGetDisplay :: (HasCallStack, MonadIO m, IsAppLaunchContext a) => a -> m Display

-- | Sets the workspace on which applications will be launched.
--   
--   This only works when running under a window manager that supports
--   multiple workspaces, as described in the <a>Extended Window Manager
--   Hints</a>. Specifically this sets the <tt>_NET_WM_DESKTOP</tt>
--   property described in that spec.
--   
--   This only works when using the X11 backend.
--   
--   When the workspace is not specified or <i><tt>desktop</tt></i> is set
--   to -1, it is up to the window manager to pick one, typically it will
--   be the current workspace.
appLaunchContextSetDesktop :: (HasCallStack, MonadIO m, IsAppLaunchContext a) => a -> Int32 -> m ()

-- | Sets the icon for applications that are launched with this context.
--   
--   Window Managers can use this information when displaying startup
--   notification.
--   
--   See also <a>appLaunchContextSetIconName</a>.
appLaunchContextSetIcon :: (HasCallStack, MonadIO m, IsAppLaunchContext a, IsIcon b) => a -> Maybe b -> m ()

-- | Sets the icon for applications that are launched with this context.
--   
--   The <i><tt>iconName</tt></i> will be interpreted in the same way as
--   the Icon field in desktop files. See also
--   <a>appLaunchContextSetIcon</a>.
--   
--   If both <i><tt>icon</tt></i> and <i><tt>iconName</tt></i> are set, the
--   <i><tt>iconName</tt></i> takes priority. If neither
--   <i><tt>icon</tt></i> or <i><tt>iconName</tt></i> is set, the icon is
--   taken from either the file that is passed to launched application or
--   from the <tt>GAppInfo</tt> for the launched application itself.
appLaunchContextSetIconName :: (HasCallStack, MonadIO m, IsAppLaunchContext a) => a -> Maybe Text -> m ()

-- | Sets the timestamp of <i><tt>context</tt></i>.
--   
--   The timestamp should ideally be taken from the event that triggered
--   the launch.
--   
--   Window managers can use this information to avoid moving the focus to
--   the newly launched application when the user is busy typing in another
--   window. This is also known as 'focus stealing prevention'.
appLaunchContextSetTimestamp :: (HasCallStack, MonadIO m, IsAppLaunchContext a) => a -> Word32 -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>display</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructAppLaunchContextDisplay :: (IsAppLaunchContext o, MonadIO m, IsDisplay a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>display</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> appLaunchContext #display
--   </pre>
getAppLaunchContextDisplay :: (MonadIO m, IsAppLaunchContext o) => o -> m Display
instance GHC.Classes.Eq GI.Gdk.Objects.AppLaunchContext.AppLaunchContext
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Objects.AppLaunchContext.AppLaunchContext
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Objects.AppLaunchContext.AppLaunchContext
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Objects.AppLaunchContext.AppLaunchContext o) => GI.Gdk.Objects.AppLaunchContext.IsAppLaunchContext o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Objects.AppLaunchContext.AppLaunchContext)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Objects.AppLaunchContext.AppLaunchContext
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Objects.AppLaunchContext.AppLaunchContext


module GI.Gdk.Objects


-- | A surface that is attached to another surface.
--   
--   The <tt>GdkPopup</tt> is positioned relative to its parent surface.
--   
--   <tt>GdkPopup</tt>s are typically used to implement menus and similar
--   popups. They can be modal, which is indicated by the
--   <a>Popup:autohide</a> property.
module GI.Gdk.Interfaces.Popup

-- | Memory-managed wrapper type.
newtype Popup
Popup :: ManagedPtr Popup -> Popup

-- | Type class for types which can be safely cast to <a>Popup</a>, for
--   instance with <a>toPopup</a>.
class (GObject o, IsDescendantOf Popup o) => IsPopup o

-- | Cast to <a>Popup</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toPopup :: (MonadIO m, IsPopup o) => o -> m Popup

-- | Returns whether this popup is set to hide on outside clicks.
popupGetAutohide :: (HasCallStack, MonadIO m, IsPopup a) => a -> m Bool

-- | Returns the parent surface of a popup.
popupGetParent :: (HasCallStack, MonadIO m, IsPopup a) => a -> m (Maybe Surface)

-- | Obtains the position of the popup relative to its parent.
popupGetPositionX :: (HasCallStack, MonadIO m, IsPopup a) => a -> m Int32

-- | Obtains the position of the popup relative to its parent.
popupGetPositionY :: (HasCallStack, MonadIO m, IsPopup a) => a -> m Int32

-- | Gets the current popup rectangle anchor.
--   
--   The value returned may change after calling <a>popupPresent</a>, or
--   after the <a>Surface::layout</a> signal is emitted.
popupGetRectAnchor :: (HasCallStack, MonadIO m, IsPopup a) => a -> m Gravity

-- | Gets the current popup surface anchor.
--   
--   The value returned may change after calling <a>popupPresent</a>, or
--   after the <a>Surface::layout</a> signal is emitted.
popupGetSurfaceAnchor :: (HasCallStack, MonadIO m, IsPopup a) => a -> m Gravity

-- | Present <i><tt>popup</tt></i> after having processed the
--   <tt>GdkPopupLayout</tt> rules.
--   
--   If the popup was previously not showing, it will be shown, otherwise
--   it will change position according to <i><tt>layout</tt></i>.
--   
--   After calling this function, the result should be handled in response
--   to the <a>Surface::layout</a> signal being emitted. The resulting
--   popup position can be queried using <a>popupGetPositionX</a>,
--   <a>popupGetPositionY</a>, and the resulting size will be sent as
--   parameters in the layout signal. Use <a>popupGetRectAnchor</a> and
--   <a>popupGetSurfaceAnchor</a> to get the resulting anchors.
--   
--   Presenting may fail, for example if the <i><tt>popup</tt></i> is set
--   to autohide and is immediately hidden upon being presented. If
--   presenting failed, the <a>Surface::layout</a> signal will not me
--   emitted.
popupPresent :: (HasCallStack, MonadIO m, IsPopup a) => a -> Int32 -> Int32 -> PopupLayout -> m Bool

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>autohide</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructPopupAutohide :: (IsPopup o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>autohide</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> popup #autohide
--   </pre>
getPopupAutohide :: (MonadIO m, IsPopup o) => o -> m Bool

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>parent</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructPopupParent :: (IsPopup o, MonadIO m, IsSurface a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>parent</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> popup #parent
--   </pre>
getPopupParent :: (MonadIO m, IsPopup o) => o -> m (Maybe Surface)
instance GHC.Classes.Eq GI.Gdk.Interfaces.Popup.Popup
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Interfaces.Popup.Popup
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Interfaces.Popup.Popup
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Interfaces.Popup.Popup)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Interfaces.Popup.Popup o) => GI.Gdk.Interfaces.Popup.IsPopup o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Interfaces.Popup.Popup
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Interfaces.Popup.Popup


-- | A surface that is used during DND.
module GI.Gdk.Interfaces.DragSurface

-- | Memory-managed wrapper type.
newtype DragSurface
DragSurface :: ManagedPtr DragSurface -> DragSurface

-- | Type class for types which can be safely cast to <a>DragSurface</a>,
--   for instance with <a>toDragSurface</a>.
class (GObject o, IsDescendantOf DragSurface o) => IsDragSurface o

-- | Cast to <a>DragSurface</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toDragSurface :: (MonadIO m, IsDragSurface o) => o -> m DragSurface

-- | Present <i><tt>dragSurface</tt></i>.
dragSurfacePresent :: (HasCallStack, MonadIO m, IsDragSurface a) => a -> Int32 -> Int32 -> m Bool

-- | Emitted when the size for the surface needs to be computed, when it is
--   present.
--   
--   This signal will normally be emitted during the native surface layout
--   cycle when the surface size needs to be recomputed.
--   
--   It is the responsibility of the drag surface user to handle this
--   signal and compute the desired size of the surface, storing the
--   computed size in the <a>DragSurfaceSize</a> object that is passed to
--   the signal handler, using <a>dragSurfaceSizeSetSize</a>.
--   
--   Failing to set a size so will result in an arbitrary size being used
--   as a result.
--   
--   <i>Since: 4.12</i>
type DragSurfaceComputeSizeCallback = DragSurfaceSize -> IO ()

-- | Connect a signal handler for the <a>computeSize</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> dragSurface #computeSize callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDragSurfaceComputeSize :: (IsDragSurface a, MonadIO m) => a -> ((?self :: a) => DragSurfaceComputeSizeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>computeSize</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> dragSurface #computeSize callback
--   </pre>
onDragSurfaceComputeSize :: (IsDragSurface a, MonadIO m) => a -> ((?self :: a) => DragSurfaceComputeSizeCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gdk.Interfaces.DragSurface.DragSurface
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Interfaces.DragSurface.DragSurface
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Interfaces.DragSurface.DragSurface
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Interfaces.DragSurface.DragSurface o) => GI.Gdk.Interfaces.DragSurface.IsDragSurface o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Interfaces.DragSurface.DragSurface)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Interfaces.DragSurface.DragSurface
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Interfaces.DragSurface.DragSurface


-- | An interface for tablet pad devices.
--   
--   It allows querying the features provided by the pad device.
--   
--   Tablet pads may contain one or more groups, each containing a subset
--   of the buttons/rings/strips available. <a>devicePadGetNGroups</a> can
--   be used to obtain the number of groups, <a>devicePadGetNFeatures</a>
--   and <a>devicePadGetFeatureGroup</a> can be combined to find out the
--   number of buttons/rings/strips the device has, and how are they
--   grouped.
--   
--   Each of those groups have different modes, which may be used to map
--   each individual pad feature to multiple actions. Only one mode is
--   effective (current) for each given group, different groups may have
--   different current modes. The number of available modes in a group can
--   be found out through <a>devicePadGetGroupNModes</a>, and the current
--   mode for a given group will be notified through events of type
--   <tt>GDK_PAD_GROUP_MODE</tt>.
module GI.Gdk.Interfaces.DevicePad

-- | Memory-managed wrapper type.
newtype DevicePad
DevicePad :: ManagedPtr DevicePad -> DevicePad

-- | Type class for types which can be safely cast to <a>DevicePad</a>, for
--   instance with <a>toDevicePad</a>.
class (GObject o, IsDescendantOf DevicePad o) => IsDevicePad o

-- | Cast to <a>DevicePad</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toDevicePad :: (MonadIO m, IsDevicePad o) => o -> m DevicePad

-- | Returns the group the given <i><tt>feature</tt></i> and
--   <i><tt>idx</tt></i> belong to.
--   
--   f the feature or index do not exist in <i><tt>pad</tt></i>, -1 is
--   returned.
devicePadGetFeatureGroup :: (HasCallStack, MonadIO m, IsDevicePad a) => a -> DevicePadFeature -> Int32 -> m Int32

-- | Returns the number of modes that <i><tt>group</tt></i> may have.
devicePadGetGroupNModes :: (HasCallStack, MonadIO m, IsDevicePad a) => a -> Int32 -> m Int32

-- | Returns the number of features a tablet pad has.
devicePadGetNFeatures :: (HasCallStack, MonadIO m, IsDevicePad a) => a -> DevicePadFeature -> m Int32

-- | Returns the number of groups this pad device has.
--   
--   Pads have at least one group. A pad group is a subcollection of
--   buttons/strip/rings that is affected collectively by a same current
--   mode.
devicePadGetNGroups :: (HasCallStack, MonadIO m, IsDevicePad a) => a -> m Int32
instance GHC.Classes.Eq GI.Gdk.Interfaces.DevicePad.DevicePad
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Interfaces.DevicePad.DevicePad
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Interfaces.DevicePad.DevicePad
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Interfaces.DevicePad.DevicePad o) => GI.Gdk.Interfaces.DevicePad.IsDevicePad o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Interfaces.DevicePad.DevicePad)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Interfaces.DevicePad.DevicePad
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Interfaces.DevicePad.DevicePad


module GI.Gdk.Functions

-- | Draws GL content onto a cairo context.
--   
--   It takes a render buffer ID (<i><tt>sourceType</tt></i> ==
--   GL_RENDERBUFFER) or a texture id (<i><tt>sourceType</tt></i> ==
--   GL_TEXTURE) and draws it onto <i><tt>cr</tt></i> with an OVER
--   operation, respecting the current clip. The top left corner of the
--   rectangle specified by <i><tt>x</tt></i>, <i><tt>y</tt></i>,
--   <i><tt>width</tt></i> and <i><tt>height</tt></i> will be drawn at the
--   current (0,0) position of the <tt>cairo_t</tt>.
--   
--   This will work for *all* <tt>cairo_t</tt>, as long as
--   <i><tt>surface</tt></i> is realized, but the fallback implementation
--   that reads back the pixels from the buffer may be used in the general
--   case. In the case of direct drawing to a surface with no special
--   effects applied to <i><tt>cr</tt></i> it will however use a more
--   efficient approach.
--   
--   For GL_RENDERBUFFER the code will always fall back to software for
--   buffers with alpha components, so make sure you use GL_TEXTURE if
--   using alpha.
--   
--   Calling this may change the current GL context.

-- | <i>Deprecated: (Since version 4.6)The function is overly complex and
--   produces broken outputin various combinations of arguments. If you
--   want to draw with GL texturesin GTK, use <a>gLTextureNew</a>; if you
--   want to use that texture inCairo, use <a>textureDownload</a> to
--   download the data into a Cairoimage surface.</i>
cairoDrawFromGl :: (HasCallStack, MonadIO m, IsSurface a) => Context -> a -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> m ()

-- | Adds the given rectangle to the current path of <i><tt>cr</tt></i>.
cairoRectangle :: (HasCallStack, MonadIO m) => Context -> Rectangle -> m ()

-- | Adds the given region to the current path of <i><tt>cr</tt></i>.
cairoRegion :: (HasCallStack, MonadIO m) => Context -> Region -> m ()

-- | Creates region that covers the area where the given
--   <i><tt>surface</tt></i> is more than 50% opaque.
--   
--   This function takes into account device offsets that might be set with
--   <tt><i>cairo_surface_set_device_offset()</i></tt>.
cairoRegionCreateFromSurface :: (HasCallStack, MonadIO m) => Surface -> m Region

-- | Sets the given pixbuf as the source pattern for <i><tt>cr</tt></i>.
--   
--   The pattern has an extend mode of <a>ExtendNone</a> and is aligned so
--   that the origin of <i><tt>pixbuf</tt></i> is <i><tt>pixbufX</tt></i>,
--   <i><tt>pixbufY</tt></i>.

-- | <i>Deprecated: (Since version 4.20)Use
--   <tt><i>cairo_set_source_surface()</i></tt> and
--   <a>textureDownload</a></i>
cairoSetSourcePixbuf :: (HasCallStack, MonadIO m, IsPixbuf a) => Context -> a -> Double -> Double -> m ()

-- | Sets the specified <tt>GdkRGBA</tt> as the source color of
--   <i><tt>cr</tt></i>.
cairoSetSourceRgba :: (HasCallStack, MonadIO m) => Context -> RGBA -> m ()

-- | Reads content from the given input stream and deserialize it,
--   asynchronously.
--   
--   The default I/O priority is <tt>G_PRIORITY_DEFAULT</tt> (i.e. 0), and
--   lower numbers indicate a higher priority.
contentDeserializeAsync :: (HasCallStack, MonadIO m, IsInputStream a, IsCancellable b) => a -> Text -> GType -> Int32 -> Maybe b -> Maybe AsyncReadyCallback -> m ()

-- | Finishes a content deserialization operation.
contentDeserializeFinish :: (HasCallStack, MonadIO m, IsAsyncResult a) => a -> m GValue

-- | Registers a function to deserialize object of a given type.
--   
--   Since 4.20, when looking up a deserializer to use, GTK will use the
--   last registered deserializer for a given mime type, so applications
--   can override the built-in deserializers.
contentRegisterDeserializer :: (HasCallStack, MonadIO m) => Text -> GType -> ContentDeserializeFunc -> m ()

-- | Registers a function to serialize objects of a given type.
--   
--   Since 4.20, when looking up a serializer to use, GTK will use the last
--   registered serializer for a given mime type, so applications can
--   override the built-in serializers.
contentRegisterSerializer :: (HasCallStack, MonadIO m) => GType -> Text -> ContentSerializeFunc -> m ()

-- | Serialize content and write it to the given output stream,
--   asynchronously.
--   
--   The default I/O priority is <a>PRIORITY_DEFAULT</a> (i.e. 0), and
--   lower numbers indicate a higher priority.
contentSerializeAsync :: (HasCallStack, MonadIO m, IsOutputStream a, IsCancellable b) => a -> Text -> GValue -> Int32 -> Maybe b -> Maybe AsyncReadyCallback -> m ()

-- | Finishes a content serialization operation.
contentSerializeFinish :: (HasCallStack, MonadIO m, IsAsyncResult a) => a -> m ()

-- | Returns the relative angle from <i><tt>event1</tt></i> to
--   <i><tt>event2</tt></i>.
--   
--   The relative angle is the angle between the X axis and the line
--   through both events' positions. The rotation direction for positive
--   angles is from the positive X axis towards the positive Y axis.
--   
--   This assumes that both events have X/Y information. If not, this
--   function returns <a>False</a>.
eventsGetAngle :: (HasCallStack, MonadIO m, IsEvent a, IsEvent b) => a -> b -> m (Bool, Double)

-- | Returns the point halfway between the events' positions.
--   
--   This assumes that both events have X/Y information. If not, this
--   function returns <a>False</a>.
eventsGetCenter :: (HasCallStack, MonadIO m, IsEvent a, IsEvent b) => a -> b -> m (Bool, Double, Double)

-- | Returns the distance between the event locations.
--   
--   This assumes that both events have X/Y information. If not, this
--   function returns <a>False</a>.
eventsGetDistance :: (HasCallStack, MonadIO m, IsEvent a, IsEvent b) => a -> b -> m (Bool, Double)

-- | Canonicalizes the given mime type and interns the result.
--   
--   If <i><tt>string</tt></i> is not a valid mime type, <a>Nothing</a> is
--   returned instead. See RFC 2048 for the syntax if mime types.
internMimeType :: (HasCallStack, MonadIO m) => Text -> m (Maybe Text)

-- | Obtains the upper- and lower-case versions of the keyval
--   <i><tt>symbol</tt></i>.
--   
--   Examples of keyvals are <tt>GDK_KEY_a</tt>, <tt>GDK_KEY_Enter</tt>,
--   <tt>GDK_KEY_F1</tt>, etc.
keyvalConvertCase :: (HasCallStack, MonadIO m) => Word32 -> m (Word32, Word32)

-- | Converts a key name to a key value.
--   
--   The names are the same as those in the <tt>gdk/gdkkeysyms.h</tt>
--   header file but without the leading “GDK_KEY_”.
keyvalFromName :: (HasCallStack, MonadIO m) => Text -> m Word32

-- | Returns true if the given key value is in lower case.
keyvalIsLower :: (HasCallStack, MonadIO m) => Word32 -> m Bool

-- | Returns true if the given key value is in upper case.
keyvalIsUpper :: (HasCallStack, MonadIO m) => Word32 -> m Bool

-- | Converts a key value into a symbolic name.
--   
--   The names are the same as those in the <tt>gdk/gdkkeysyms.h</tt>
--   header file but without the leading “GDK_KEY_”.
keyvalName :: (HasCallStack, MonadIO m) => Word32 -> m (Maybe Text)

-- | Converts a key value to lower case, if applicable.
keyvalToLower :: (HasCallStack, MonadIO m) => Word32 -> m Word32

-- | Converts from a GDK key symbol to the corresponding Unicode character.
--   
--   Note that the conversion does not take the current locale into
--   consideration, which might be expected for particular keyvals, such as
--   <tt>GDK_KEY_KP_Decimal</tt>.
keyvalToUnicode :: (HasCallStack, MonadIO m) => Word32 -> m Word32

-- | Converts a key value to upper case, if applicable.
keyvalToUpper :: (HasCallStack, MonadIO m) => Word32 -> m Word32

-- | Transfers image data from a <tt>cairo_surface_t</tt> and converts it
--   to a <tt>GdkPixbuf</tt>.
--   
--   This allows you to efficiently read individual pixels from cairo
--   surfaces.
--   
--   This function will create an RGB pixbuf with 8 bits per channel. The
--   pixbuf will contain an alpha channel if the <i><tt>surface</tt></i>
--   contains one.

-- | <i>Deprecated: (Since version 4.12)Use <a>Texture</a> and subclasses
--   insteadcairo surfaces and pixbufs</i>
pixbufGetFromSurface :: (HasCallStack, MonadIO m) => Surface -> Int32 -> Int32 -> Int32 -> Int32 -> m (Maybe Pixbuf)

-- | Creates a new pixbuf from <i><tt>texture</tt></i>.
--   
--   This should generally not be used in newly written code as later
--   stages will almost certainly convert the pixbuf back into a texture to
--   draw it on screen.

-- | <i>Deprecated: (Since version 4.12)Use <a>Texture</a> and subclasses
--   insteadcairo surfaces and pixbufs</i>
pixbufGetFromTexture :: (HasCallStack, MonadIO m, IsTexture a) => a -> m (Maybe Pixbuf)

-- | Sets a list of backends that GDK should try to use.
--   
--   This can be useful if your application does not work with certain GDK
--   backends.
--   
--   By default, GDK tries all included backends.
--   
--   For example:
--   
--   <h3><i>c code</i></h3>
--   
--   <pre>
--   gdk_set_allowed_backends ("wayland,macos,*");
--   </pre>
--   
--   instructs GDK to try the Wayland backend first, followed by the MacOs
--   backend, and then all others.
--   
--   If the <tt>GDK_BACKEND</tt> environment variable is set, it determines
--   what backends are tried in what order, while still respecting the set
--   of allowed backends that are specified by this function.
--   
--   The possible backend names are:
--   
--   <ul>
--   <li><pre>broadway</pre></li>
--   <li><pre>macos</pre></li>
--   <li><tt>wayland</tt>.</li>
--   <li><pre>win32</pre></li>
--   <li><pre>x11</pre></li>
--   </ul>
--   
--   You can also include a <tt>*</tt> in the list to try all remaining
--   backends.
--   
--   This call must happen prior to functions that open a display, such as
--   <a>displayOpen</a>, <tt>gtk_init()</tt>, or <tt>gtk_init_check()</tt>
--   in order to take effect.
setAllowedBackends :: (HasCallStack, MonadIO m) => Text -> m ()

-- | Converts from a Unicode character to a key symbol.
unicodeToKeyval :: (HasCallStack, MonadIO m) => Word32 -> m Word32


-- | Contains information that is necessary to present a sovereign window
--   on screen.
--   
--   The <tt>GdkToplevelLayout</tt> struct is necessary for using
--   <a>toplevelPresent</a>.
--   
--   Toplevel surfaces are sovereign windows that can be presented to the
--   user in various states (maximized, on all workspaces, etc).
module GI.Gdk.Structs.ToplevelLayout

-- | Memory-managed wrapper type.
newtype ToplevelLayout
ToplevelLayout :: ManagedPtr ToplevelLayout -> ToplevelLayout

-- | Create a new <tt>GdkToplevelLayout</tt> and copy the contents of
--   <i><tt>layout</tt></i> into it.
toplevelLayoutCopy :: (HasCallStack, MonadIO m) => ToplevelLayout -> m ToplevelLayout

-- | Check whether <i><tt>layout</tt></i> and <i><tt>other</tt></i> has
--   identical layout properties.
toplevelLayoutEqual :: (HasCallStack, MonadIO m) => ToplevelLayout -> ToplevelLayout -> m Bool

-- | If the layout specifies whether to the toplevel should go fullscreen,
--   the value pointed to by <i><tt>fullscreen</tt></i> is set to true if
--   it should go fullscreen, or false, if it should go unfullscreen.
toplevelLayoutGetFullscreen :: (HasCallStack, MonadIO m) => ToplevelLayout -> m (Bool, Bool)

-- | Returns the monitor that the layout is fullscreening the surface on.
toplevelLayoutGetFullscreenMonitor :: (HasCallStack, MonadIO m) => ToplevelLayout -> m (Maybe Monitor)

-- | If the layout specifies whether to the toplevel should go maximized,
--   the value pointed to by <i><tt>maximized</tt></i> is set to true if it
--   should go maximized, or false, if it should go unmaximized.
toplevelLayoutGetMaximized :: (HasCallStack, MonadIO m) => ToplevelLayout -> m (Bool, Bool)

-- | Returns whether the layout should allow the user to resize the
--   surface.
toplevelLayoutGetResizable :: (HasCallStack, MonadIO m) => ToplevelLayout -> m Bool

-- | Create a toplevel layout description.
--   
--   Used together with <a>toplevelPresent</a> to describe how a toplevel
--   surface should be placed and behave on-screen.
--   
--   The size is in ”application pixels”, not ”device pixels” (see
--   <a>surfaceGetScale</a>).
toplevelLayoutNew :: (HasCallStack, MonadIO m) => m ToplevelLayout

-- | Increases the reference count of <i><tt>layout</tt></i>.
toplevelLayoutRef :: (HasCallStack, MonadIO m) => ToplevelLayout -> m ToplevelLayout

-- | Sets whether the layout should cause the surface to be fullscreen when
--   presented.
toplevelLayoutSetFullscreen :: (HasCallStack, MonadIO m, IsMonitor a) => ToplevelLayout -> Bool -> Maybe a -> m ()

-- | Sets whether the layout should cause the surface to be maximized when
--   presented.
toplevelLayoutSetMaximized :: (HasCallStack, MonadIO m) => ToplevelLayout -> Bool -> m ()

-- | Sets whether the layout should allow the user to resize the surface
--   after it has been presented.
toplevelLayoutSetResizable :: (HasCallStack, MonadIO m) => ToplevelLayout -> Bool -> m ()

-- | Decreases the reference count of <i><tt>layout</tt></i>.
toplevelLayoutUnref :: (HasCallStack, MonadIO m) => ToplevelLayout -> m ()
instance GHC.Classes.Eq GI.Gdk.Structs.ToplevelLayout.ToplevelLayout
instance Data.GI.Base.BasicTypes.GBoxed GI.Gdk.Structs.ToplevelLayout.ToplevelLayout
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Structs.ToplevelLayout.ToplevelLayout
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Structs.ToplevelLayout.ToplevelLayout)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.ToplevelLayout.ToplevelLayout
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Structs.ToplevelLayout.ToplevelLayout


-- | Contains information that is useful to compute the size of a toplevel.
module GI.Gdk.Structs.ToplevelSize

-- | Memory-managed wrapper type.
newtype ToplevelSize
ToplevelSize :: ManagedPtr ToplevelSize -> ToplevelSize

-- | Retrieves the bounds the toplevel is placed within.
--   
--   The bounds represent the largest size a toplevel may have while still
--   being able to fit within some type of boundary. Depending on the
--   backend, this may be equivalent to the dimensions of the work area or
--   the monitor on which the window is being presented on, or something
--   else that limits the way a toplevel can be presented.
toplevelSizeGetBounds :: (HasCallStack, MonadIO m) => ToplevelSize -> m (Int32, Int32)

-- | Sets the minimum size of the toplevel.
--   
--   The minimum size corresponds to the limitations the toplevel can be
--   shrunk to, without resulting in incorrect painting. A user of a
--   <tt>GdkToplevel</tt> should calculate these given both the existing
--   size, and the bounds retrieved from the <tt>GdkToplevelSize</tt>
--   object.
--   
--   The minimum size should be within the bounds (see
--   <a>toplevelSizeGetBounds</a>).
toplevelSizeSetMinSize :: (HasCallStack, MonadIO m) => ToplevelSize -> Int32 -> Int32 -> m ()

-- | Sets the shadows size of the toplevel.
--   
--   The shadow width corresponds to the part of the computed surface size
--   that would consist of the shadow margin surrounding the window, would
--   there be any.
--   
--   Shadow width should only be set if
--   <tt><i>Gtk.Display.supports_shadow_width()</i></tt> is <a>True</a>.
toplevelSizeSetShadowWidth :: (HasCallStack, MonadIO m) => ToplevelSize -> Int32 -> Int32 -> Int32 -> Int32 -> m ()

-- | Sets the size the toplevel prefers to be resized to.
--   
--   The size should be within the bounds (see
--   <a>toplevelSizeGetBounds</a>). The set size should be considered as a
--   hint, and should not be assumed to be respected by the windowing
--   system, or backend.
toplevelSizeSetSize :: (HasCallStack, MonadIO m) => ToplevelSize -> Int32 -> Int32 -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Gdk.Structs.ToplevelSize.ToplevelSize
instance GHC.Classes.Eq GI.Gdk.Structs.ToplevelSize.ToplevelSize
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Structs.ToplevelSize.ToplevelSize


module GI.Gdk.Structs


-- | A freestanding toplevel surface.
--   
--   The <tt>GdkToplevel</tt> interface provides useful APIs for
--   interacting with the windowing system, such as controlling
--   maximization and size of the surface, setting icons and transient
--   parents for dialogs.
module GI.Gdk.Interfaces.Toplevel

-- | Memory-managed wrapper type.
newtype Toplevel
Toplevel :: ManagedPtr Toplevel -> Toplevel

-- | Type class for types which can be safely cast to <a>Toplevel</a>, for
--   instance with <a>toToplevel</a>.
class (GObject o, IsDescendantOf Toplevel o) => IsToplevel o

-- | Cast to <a>Toplevel</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toToplevel :: (MonadIO m, IsToplevel o) => o -> m Toplevel

-- | Begins an interactive move operation.
--   
--   You might use this function to implement draggable titlebars.
toplevelBeginMove :: (HasCallStack, MonadIO m, IsToplevel a, IsDevice b) => a -> b -> Int32 -> Double -> Double -> Word32 -> m ()

-- | Begins an interactive resize operation.
--   
--   You might use this function to implement a “window resize grip.”
toplevelBeginResize :: (HasCallStack, MonadIO m, IsToplevel a, IsDevice b) => a -> SurfaceEdge -> Maybe b -> Int32 -> Double -> Double -> Word32 -> m ()

-- | Sets keyboard focus to <i><tt>surface</tt></i>.
--   
--   In most cases, <a>gtk_window_present_with_time()</a> should be used on
--   a <a>GtkWindow</a>, rather than calling this function.
toplevelFocus :: (HasCallStack, MonadIO m, IsToplevel a) => a -> Word32 -> m ()

-- | The capabilities that are available for this toplevel.
--   
--   <i>Since: 4.20</i>
toplevelGetCapabilities :: (HasCallStack, MonadIO m, IsToplevel a) => a -> m [ToplevelCapabilities]

-- | Returns the gravity that is used when changing the toplevel size
--   programmatically.
--   
--   <i>Since: 4.20</i>
toplevelGetGravity :: (HasCallStack, MonadIO m, IsToplevel a) => a -> m Gravity

-- | Gets the bitwise or of the currently active surface state flags, from
--   the <tt>GdkToplevelState</tt> enumeration.
toplevelGetState :: (HasCallStack, MonadIO m, IsToplevel a) => a -> m [ToplevelState]

-- | Requests that the <i><tt>toplevel</tt></i> inhibit the system
--   shortcuts.
--   
--   This is asking the desktop environment/windowing system to let all
--   keyboard events reach the surface, as long as it is focused, instead
--   of triggering system actions.
--   
--   If granted, the rerouting remains active until the default shortcuts
--   processing is restored with <a>toplevelRestoreSystemShortcuts</a>, or
--   the request is revoked by the desktop environment, windowing system or
--   the user.
--   
--   A typical use case for this API is remote desktop or virtual machine
--   viewers which need to inhibit the default system keyboard shortcuts so
--   that the remote session or virtual host gets those instead of the
--   local environment.
--   
--   The windowing system or desktop environment may ask the user to grant
--   or deny the request or even choose to ignore the request entirely.
--   
--   The caller can be notified whenever the request is granted or revoked
--   by listening to the <a>Toplevel:shortcutsInhibited</a> property.
toplevelInhibitSystemShortcuts :: (HasCallStack, MonadIO m, IsToplevel a, IsEvent b) => a -> Maybe b -> m ()

-- | Asks to lower the <i><tt>toplevel</tt></i> below other windows.
--   
--   The windowing system may choose to ignore the request.
toplevelLower :: (HasCallStack, MonadIO m, IsToplevel a) => a -> m Bool

-- | Asks to minimize the <i><tt>toplevel</tt></i>.
--   
--   The windowing system may choose to ignore the request.
toplevelMinimize :: (HasCallStack, MonadIO m, IsToplevel a) => a -> m Bool

-- | Present <i><tt>toplevel</tt></i> after having processed the
--   <tt>GdkToplevelLayout</tt> rules.
--   
--   If the toplevel was previously not showing, it will be showed,
--   otherwise it will change layout according to <i><tt>layout</tt></i>.
--   
--   GDK may emit the <a>Toplevel::computeSize</a> signal to let the user
--   of this toplevel compute the preferred size of the toplevel surface.
--   
--   Presenting is asynchronous and the specified layout parameters are not
--   guaranteed to be respected.
toplevelPresent :: (HasCallStack, MonadIO m, IsToplevel a) => a -> ToplevelLayout -> m ()

-- | Restore default system keyboard shortcuts which were previously
--   inhibited.
--   
--   This undoes the effect of <a>toplevelInhibitSystemShortcuts</a>.
toplevelRestoreSystemShortcuts :: (HasCallStack, MonadIO m, IsToplevel a) => a -> m ()

-- | Sets the toplevel to be decorated.
--   
--   Setting <i><tt>decorated</tt></i> to <a>False</a> hints the desktop
--   environment that the surface has its own, client-side decorations and
--   does not need to have window decorations added.
toplevelSetDecorated :: (HasCallStack, MonadIO m, IsToplevel a) => a -> Bool -> m ()

-- | Sets the toplevel to be deletable.
--   
--   Setting <i><tt>deletable</tt></i> to <a>True</a> hints the desktop
--   environment that it should offer the user a way to close the surface.
toplevelSetDeletable :: (HasCallStack, MonadIO m, IsToplevel a) => a -> Bool -> m ()

-- | Sets the gravity that is used when changing the toplevel size
--   programmatically.
--   
--   <i>Since: 4.20</i>
toplevelSetGravity :: (HasCallStack, MonadIO m, IsToplevel a) => a -> Gravity -> m ()

-- | Sets a list of icons for the surface.
--   
--   One of these will be used to represent the surface in iconic form. The
--   icon may be shown in window lists or task bars. Which icon size is
--   shown depends on the window manager. The window manager can scale the
--   icon but setting several size icons can give better image quality.
--   
--   Note that some platforms don't support surface icons.
toplevelSetIconList :: (HasCallStack, MonadIO m, IsToplevel a, IsTexture b) => a -> [b] -> m ()

-- | Sets the toplevel to be modal.
--   
--   The application can use this hint to tell the window manager that a
--   certain surface has modal behaviour. The window manager can use this
--   information to handle modal surfaces in a special way.
--   
--   You should only use this on surfaces for which you have previously
--   called <a>toplevelSetTransientFor</a>.
toplevelSetModal :: (HasCallStack, MonadIO m, IsToplevel a) => a -> Bool -> m ()

-- | Sets the startup notification ID.
--   
--   When using GTK, typically you should use
--   <a>gtk_window_set_startup_id()</a> instead of this low-level function.
toplevelSetStartupId :: (HasCallStack, MonadIO m, IsToplevel a) => a -> Text -> m ()

-- | Sets the title of a toplevel surface.
--   
--   The title maybe be displayed in the titlebar, in lists of windows,
--   etc.
toplevelSetTitle :: (HasCallStack, MonadIO m, IsToplevel a) => a -> Text -> m ()

-- | Sets a transient-for parent.
--   
--   Indicates to the window manager that <i><tt>surface</tt></i> is a
--   transient dialog associated with the application surface
--   <i><tt>parent</tt></i>. This allows the window manager to do things
--   like center <i><tt>surface</tt></i> on <i><tt>parent</tt></i> and keep
--   <i><tt>surface</tt></i> above <i><tt>parent</tt></i>.
--   
--   See <a>gtk_window_set_transient_for()</a> if you’re using
--   <a>GtkWindow</a>.
toplevelSetTransientFor :: (HasCallStack, MonadIO m, IsToplevel a, IsSurface b) => a -> b -> m ()

-- | Asks the windowing system to show the window menu.
--   
--   The window menu is the menu shown when right-clicking the titlebar on
--   traditional windows managed by the window manager. This is useful for
--   windows using client-side decorations, activating it with a
--   right-click on the window decorations.
toplevelShowWindowMenu :: (HasCallStack, MonadIO m, IsToplevel a, IsEvent b) => a -> b -> m Bool

-- | Returns whether the desktop environment supports tiled window states.
toplevelSupportsEdgeConstraints :: (HasCallStack, MonadIO m, IsToplevel a) => a -> m Bool

-- | Performs a title bar gesture.
--   
--   <i>Since: 4.4</i>
toplevelTitlebarGesture :: (HasCallStack, MonadIO m, IsToplevel a) => a -> TitlebarGesture -> m Bool

-- | Get the value of the “<tt>capabilities</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> toplevel #capabilities
--   </pre>
getToplevelCapabilities :: (MonadIO m, IsToplevel o) => o -> m [ToplevelCapabilities]

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>decorated</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructToplevelDecorated :: (IsToplevel o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>decorated</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> toplevel #decorated
--   </pre>
getToplevelDecorated :: (MonadIO m, IsToplevel o) => o -> m Bool

-- | Set the value of the “<tt>decorated</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> toplevel [ #decorated <a>:=</a> value ]
--   </pre>
setToplevelDecorated :: (MonadIO m, IsToplevel o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>deletable</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructToplevelDeletable :: (IsToplevel o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>deletable</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> toplevel #deletable
--   </pre>
getToplevelDeletable :: (MonadIO m, IsToplevel o) => o -> m Bool

-- | Set the value of the “<tt>deletable</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> toplevel [ #deletable <a>:=</a> value ]
--   </pre>
setToplevelDeletable :: (MonadIO m, IsToplevel o) => o -> Bool -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>fullscreen-mode</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructToplevelFullscreenMode :: (IsToplevel o, MonadIO m) => FullscreenMode -> m (GValueConstruct o)

-- | Get the value of the “<tt>fullscreen-mode</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> toplevel #fullscreenMode
--   </pre>
getToplevelFullscreenMode :: (MonadIO m, IsToplevel o) => o -> m FullscreenMode

-- | Set the value of the “<tt>fullscreen-mode</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> toplevel [ #fullscreenMode <a>:=</a> value ]
--   </pre>
setToplevelFullscreenMode :: (MonadIO m, IsToplevel o) => o -> FullscreenMode -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>gravity</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructToplevelGravity :: (IsToplevel o, MonadIO m) => Gravity -> m (GValueConstruct o)

-- | Get the value of the “<tt>gravity</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> toplevel #gravity
--   </pre>
getToplevelGravity :: (MonadIO m, IsToplevel o) => o -> m Gravity

-- | Set the value of the “<tt>gravity</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> toplevel [ #gravity <a>:=</a> value ]
--   </pre>
setToplevelGravity :: (MonadIO m, IsToplevel o) => o -> Gravity -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>icon-list</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructToplevelIconList :: (IsToplevel o, MonadIO m) => Ptr () -> m (GValueConstruct o)

-- | Get the value of the “<tt>icon-list</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> toplevel #iconList
--   </pre>
getToplevelIconList :: (MonadIO m, IsToplevel o) => o -> m (Ptr ())

-- | Set the value of the “<tt>icon-list</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> toplevel [ #iconList <a>:=</a> value ]
--   </pre>
setToplevelIconList :: (MonadIO m, IsToplevel o) => o -> Ptr () -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>modal</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructToplevelModal :: (IsToplevel o, MonadIO m) => Bool -> m (GValueConstruct o)

-- | Get the value of the “<tt>modal</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> toplevel #modal
--   </pre>
getToplevelModal :: (MonadIO m, IsToplevel o) => o -> m Bool

-- | Set the value of the “<tt>modal</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> toplevel [ #modal <a>:=</a> value ]
--   </pre>
setToplevelModal :: (MonadIO m, IsToplevel o) => o -> Bool -> m ()

-- | Get the value of the “<tt>shortcuts-inhibited</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> toplevel #shortcutsInhibited
--   </pre>
getToplevelShortcutsInhibited :: (MonadIO m, IsToplevel o) => o -> m Bool

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>startup-id</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructToplevelStartupId :: (IsToplevel o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>startup-id</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> toplevel #startupId
--   </pre>
getToplevelStartupId :: (MonadIO m, IsToplevel o) => o -> m (Maybe Text)

-- | Set the value of the “<tt>startup-id</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> toplevel [ #startupId <a>:=</a> value ]
--   </pre>
setToplevelStartupId :: (MonadIO m, IsToplevel o) => o -> Text -> m ()

-- | Get the value of the “<tt>state</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> toplevel #state
--   </pre>
getToplevelState :: (MonadIO m, IsToplevel o) => o -> m [ToplevelState]

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>title</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructToplevelTitle :: (IsToplevel o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>title</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> toplevel #title
--   </pre>
getToplevelTitle :: (MonadIO m, IsToplevel o) => o -> m (Maybe Text)

-- | Set the value of the “<tt>title</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> toplevel [ #title <a>:=</a> value ]
--   </pre>
setToplevelTitle :: (MonadIO m, IsToplevel o) => o -> Text -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>transient-for</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructToplevelTransientFor :: (IsToplevel o, MonadIO m, IsSurface a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>transient-for</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> toplevel #transientFor
--   </pre>
getToplevelTransientFor :: (MonadIO m, IsToplevel o) => o -> m (Maybe Surface)

-- | Set the value of the “<tt>transient-for</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> toplevel [ #transientFor <a>:=</a> value ]
--   </pre>
setToplevelTransientFor :: (MonadIO m, IsToplevel o, IsSurface a) => o -> a -> m ()

-- | Emitted when the size for the surface needs to be computed, when it is
--   present.
--   
--   This signal will normally be emitted during or after a call to
--   <a>toplevelPresent</a>, depending on the configuration received by the
--   windowing system. It may also be emitted at any other point in time,
--   in response to the windowing system spontaneously changing the
--   configuration of the toplevel surface.
--   
--   It is the responsibility of the toplevel user to handle this signal
--   and compute the desired size of the toplevel, given the information
--   passed via the <a>ToplevelSize</a> object. Failing to do so will
--   result in an arbitrary size being used as a result.
type ToplevelComputeSizeCallback = ToplevelSize -> IO ()

-- | Connect a signal handler for the <a>computeSize</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> toplevel #computeSize callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterToplevelComputeSize :: (IsToplevel a, MonadIO m) => a -> ((?self :: a) => ToplevelComputeSizeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>computeSize</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> toplevel #computeSize callback
--   </pre>
onToplevelComputeSize :: (IsToplevel a, MonadIO m) => a -> ((?self :: a) => ToplevelComputeSizeCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Gdk.Interfaces.Toplevel.Toplevel
instance Data.GI.Base.BasicTypes.GObject GI.Gdk.Interfaces.Toplevel.Toplevel
instance Data.GI.Base.Overloading.HasParentTypes GI.Gdk.Interfaces.Toplevel.Toplevel
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Gdk.Interfaces.Toplevel.Toplevel)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Gdk.Interfaces.Toplevel.Toplevel o) => GI.Gdk.Interfaces.Toplevel.IsToplevel o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Gdk.Interfaces.Toplevel.Toplevel
instance Data.GI.Base.BasicTypes.TypedObject GI.Gdk.Interfaces.Toplevel.Toplevel


module GI.Gdk.Interfaces


module GI.Gdk
