gdk

package
v0.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2026 License: MIT Imports: 12 Imported by: 2

Documentation

Overview

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Package gdk was automatically generated by github.com/bnema/puregotk DO NOT EDIT

Index

Constants

View Source
const (
	// Defines all possible DND actions.
	//
	// This can be used in [method@Gdk.Drop.status] messages when any drop
	// can be accepted or a more specific drop method is not yet known.
	ACTION_ALL int = 7
	// A mask covering all entries in `GdkModifierType`.
	MODIFIER_MASK int = 469769999
)
View Source
const (
	// The middle button.
	BUTTON_MIDDLE int = 2
	// The primary button. This is typically the left mouse button, or the
	// right button in a left-handed setup.
	BUTTON_PRIMARY int = 1
	// The secondary button. This is typically the right mouse button, or the
	// left button in a left-handed setup.
	BUTTON_SECONDARY int = 3
	// Use this macro as the return value for continuing the propagation of
	// an event handler.
	EVENT_PROPAGATE bool = false
	// Use this macro as the return value for stopping the propagation of
	// an event handler.
	EVENT_STOP bool = true
	// This is the priority that the idle handler processing surface updates
	// is given in the main loop.
	PRIORITY_REDRAW int = 120
)
View Source
const (
	KEY_0 int = 48

	KEY_1 int = 49

	KEY_10ChannelsDown int = 268964281

	KEY_10ChannelsUp int = 268964280

	KEY_2 int = 50

	KEY_3 int = 51

	KEY_3270_AltCursor int = 64784

	KEY_3270_Attn int = 64782

	KEY_3270_BackTab int = 64773

	KEY_3270_ChangeScreen int = 64793

	KEY_3270_Copy int = 64789

	KEY_3270_CursorBlink int = 64783

	KEY_3270_CursorSelect int = 64796

	KEY_3270_DeleteWord int = 64794

	KEY_3270_Duplicate int = 64769

	KEY_3270_Enter int = 64798

	KEY_3270_EraseEOF int = 64774

	KEY_3270_EraseInput int = 64775

	KEY_3270_ExSelect int = 64795

	KEY_3270_FieldMark int = 64770

	KEY_3270_Ident int = 64787

	KEY_3270_Jump int = 64786

	KEY_3270_KeyClick int = 64785

	KEY_3270_Left2 int = 64772

	KEY_3270_PA1 int = 64778

	KEY_3270_PA2 int = 64779

	KEY_3270_PA3 int = 64780

	KEY_3270_Play int = 64790

	KEY_3270_PrintScreen int = 64797

	KEY_3270_Quit int = 64777

	KEY_3270_Record int = 64792

	KEY_3270_Reset int = 64776

	KEY_3270_Right2 int = 64771

	KEY_3270_Rule int = 64788

	KEY_3270_Setup int = 64791

	KEY_3270_Test int = 64781

	KEY_3DMode int = 268964463

	KEY_4 int = 52

	KEY_5 int = 53

	KEY_6 int = 54

	KEY_7 int = 55

	KEY_8 int = 56

	KEY_9 int = 57

	KEY_A int = 65

	KEY_AE int = 198

	KEY_ALSToggle int = 268964400

	KEY_Aacute int = 193

	KEY_Abelowdot int = 16785056

	KEY_Abreve int = 451

	KEY_Abreveacute int = 16785070

	KEY_Abrevebelowdot int = 16785078

	KEY_Abrevegrave int = 16785072

	KEY_Abrevehook int = 16785074

	KEY_Abrevetilde int = 16785076

	KEY_AccessX_Enable int = 65136

	KEY_AccessX_Feedback_Enable int = 65137

	KEY_Accessibility int = 268964430

	KEY_Acircumflex int = 194

	KEY_Acircumflexacute int = 16785060

	KEY_Acircumflexbelowdot int = 16785068

	KEY_Acircumflexgrave int = 16785062

	KEY_Acircumflexhook int = 16785064

	KEY_Acircumflextilde int = 16785066

	KEY_AddFavorite int = 269025081

	KEY_Addressbook int = 268964269

	KEY_Adiaeresis int = 196

	KEY_Agrave int = 192

	KEY_Ahook int = 16785058

	KEY_Alt_L int = 65513

	KEY_Alt_R int = 65514

	KEY_Amacron int = 960

	KEY_Aogonek int = 417

	KEY_AppSelect int = 268964420

	KEY_ApplicationLeft int = 269025104

	KEY_ApplicationRight int = 269025105

	KEY_Arabic_0 int = 16778848

	KEY_Arabic_1 int = 16778849

	KEY_Arabic_2 int = 16778850

	KEY_Arabic_3 int = 16778851

	KEY_Arabic_4 int = 16778852

	KEY_Arabic_5 int = 16778853

	KEY_Arabic_6 int = 16778854

	KEY_Arabic_7 int = 16778855

	KEY_Arabic_8 int = 16778856

	KEY_Arabic_9 int = 16778857

	KEY_Arabic_ain int = 1497

	KEY_Arabic_alef int = 1479

	KEY_Arabic_alefmaksura int = 1513

	KEY_Arabic_beh int = 1480

	KEY_Arabic_comma int = 1452

	KEY_Arabic_dad int = 1494

	KEY_Arabic_dal int = 1487

	KEY_Arabic_damma int = 1519

	KEY_Arabic_dammatan int = 1516

	KEY_Arabic_ddal int = 16778888

	KEY_Arabic_farsi_yeh int = 16778956

	KEY_Arabic_fatha int = 1518

	KEY_Arabic_fathatan int = 1515

	KEY_Arabic_feh int = 1505

	KEY_Arabic_fullstop int = 16778964

	KEY_Arabic_gaf int = 16778927

	KEY_Arabic_ghain int = 1498

	KEY_Arabic_ha int = 1511

	KEY_Arabic_hah int = 1485

	KEY_Arabic_hamza int = 1473

	KEY_Arabic_hamza_above int = 16778836

	KEY_Arabic_hamza_below int = 16778837

	KEY_Arabic_hamzaonalef int = 1475

	KEY_Arabic_hamzaonwaw int = 1476

	KEY_Arabic_hamzaonyeh int = 1478

	KEY_Arabic_hamzaunderalef int = 1477

	KEY_Arabic_heh int = 1511

	KEY_Arabic_heh_doachashmee int = 16778942

	KEY_Arabic_heh_goal int = 16778945

	KEY_Arabic_jeem int = 1484

	KEY_Arabic_jeh int = 16778904

	KEY_Arabic_kaf int = 1507

	KEY_Arabic_kasra int = 1520

	KEY_Arabic_kasratan int = 1517

	KEY_Arabic_keheh int = 16778921

	KEY_Arabic_khah int = 1486

	KEY_Arabic_lam int = 1508

	KEY_Arabic_madda_above int = 16778835

	KEY_Arabic_maddaonalef int = 1474

	KEY_Arabic_meem int = 1509

	KEY_Arabic_noon int = 1510

	KEY_Arabic_noon_ghunna int = 16778938

	KEY_Arabic_peh int = 16778878

	KEY_Arabic_percent int = 16778858

	KEY_Arabic_qaf int = 1506

	KEY_Arabic_question_mark int = 1471

	KEY_Arabic_ra int = 1489

	KEY_Arabic_rreh int = 16778897

	KEY_Arabic_sad int = 1493

	KEY_Arabic_seen int = 1491

	KEY_Arabic_semicolon int = 1467

	KEY_Arabic_shadda int = 1521

	KEY_Arabic_sheen int = 1492

	KEY_Arabic_sukun int = 1522

	KEY_Arabic_superscript_alef int = 16778864

	KEY_Arabic_switch int = 65406

	KEY_Arabic_tah int = 1495

	KEY_Arabic_tatweel int = 1504

	KEY_Arabic_tcheh int = 16778886

	KEY_Arabic_teh int = 1482

	KEY_Arabic_tehmarbuta int = 1481

	KEY_Arabic_thal int = 1488

	KEY_Arabic_theh int = 1483

	KEY_Arabic_tteh int = 16778873

	KEY_Arabic_veh int = 16778916

	KEY_Arabic_waw int = 1512

	KEY_Arabic_yeh int = 1514

	KEY_Arabic_yeh_baree int = 16778962

	KEY_Arabic_zah int = 1496

	KEY_Arabic_zain int = 1490

	KEY_Aring int = 197

	KEY_Armenian_AT int = 16778552

	KEY_Armenian_AYB int = 16778545

	KEY_Armenian_BEN int = 16778546

	KEY_Armenian_CHA int = 16778569

	KEY_Armenian_DA int = 16778548

	KEY_Armenian_DZA int = 16778561

	KEY_Armenian_E int = 16778551

	KEY_Armenian_FE int = 16778582

	KEY_Armenian_GHAT int = 16778562

	KEY_Armenian_GIM int = 16778547

	KEY_Armenian_HI int = 16778565

	KEY_Armenian_HO int = 16778560

	KEY_Armenian_INI int = 16778555

	KEY_Armenian_JE int = 16778571

	KEY_Armenian_KE int = 16778580

	KEY_Armenian_KEN int = 16778559

	KEY_Armenian_KHE int = 16778557

	KEY_Armenian_LYUN int = 16778556

	KEY_Armenian_MEN int = 16778564

	KEY_Armenian_NU int = 16778566

	KEY_Armenian_O int = 16778581

	KEY_Armenian_PE int = 16778570

	KEY_Armenian_PYUR int = 16778579

	KEY_Armenian_RA int = 16778572

	KEY_Armenian_RE int = 16778576

	KEY_Armenian_SE int = 16778573

	KEY_Armenian_SHA int = 16778567

	KEY_Armenian_TCHE int = 16778563

	KEY_Armenian_TO int = 16778553

	KEY_Armenian_TSA int = 16778558

	KEY_Armenian_TSO int = 16778577

	KEY_Armenian_TYUN int = 16778575

	KEY_Armenian_VEV int = 16778574

	KEY_Armenian_VO int = 16778568

	KEY_Armenian_VYUN int = 16778578

	KEY_Armenian_YECH int = 16778549

	KEY_Armenian_ZA int = 16778550

	KEY_Armenian_ZHE int = 16778554

	KEY_Armenian_accent int = 16778587

	KEY_Armenian_amanak int = 16778588

	KEY_Armenian_apostrophe int = 16778586

	KEY_Armenian_at int = 16778600

	KEY_Armenian_ayb int = 16778593

	KEY_Armenian_ben int = 16778594

	KEY_Armenian_but int = 16778589

	KEY_Armenian_cha int = 16778617

	KEY_Armenian_da int = 16778596

	KEY_Armenian_dza int = 16778609

	KEY_Armenian_e int = 16778599

	KEY_Armenian_exclam int = 16778588

	KEY_Armenian_fe int = 16778630

	KEY_Armenian_full_stop int = 16778633

	KEY_Armenian_ghat int = 16778610

	KEY_Armenian_gim int = 16778595

	KEY_Armenian_hi int = 16778613

	KEY_Armenian_ho int = 16778608

	KEY_Armenian_hyphen int = 16778634

	KEY_Armenian_ini int = 16778603

	KEY_Armenian_je int = 16778619

	KEY_Armenian_ke int = 16778628

	KEY_Armenian_ken int = 16778607

	KEY_Armenian_khe int = 16778605

	KEY_Armenian_ligature_ew int = 16778631

	KEY_Armenian_lyun int = 16778604

	KEY_Armenian_men int = 16778612

	KEY_Armenian_nu int = 16778614

	KEY_Armenian_o int = 16778629

	KEY_Armenian_paruyk int = 16778590

	KEY_Armenian_pe int = 16778618

	KEY_Armenian_pyur int = 16778627

	KEY_Armenian_question int = 16778590

	KEY_Armenian_ra int = 16778620

	KEY_Armenian_re int = 16778624

	KEY_Armenian_se int = 16778621

	KEY_Armenian_separation_mark int = 16778589

	KEY_Armenian_sha int = 16778615

	KEY_Armenian_shesht int = 16778587

	KEY_Armenian_tche int = 16778611

	KEY_Armenian_to int = 16778601

	KEY_Armenian_tsa int = 16778606

	KEY_Armenian_tso int = 16778625

	KEY_Armenian_tyun int = 16778623

	KEY_Armenian_verjaket int = 16778633

	KEY_Armenian_vev int = 16778622

	KEY_Armenian_vo int = 16778616

	KEY_Armenian_vyun int = 16778626

	KEY_Armenian_yech int = 16778597

	KEY_Armenian_yentamna int = 16778634

	KEY_Armenian_za int = 16778598

	KEY_Armenian_zhe int = 16778602

	KEY_AspectRatio int = 268964215

	KEY_Assistant int = 268964423

	KEY_Atilde int = 195

	KEY_AttendantOff int = 268964380

	KEY_AttendantOn int = 268964379

	KEY_AttendantToggle int = 268964381

	KEY_AudibleBell_Enable int = 65146

	KEY_Audio int = 268964232

	KEY_AudioCycleTrack int = 269025179

	KEY_AudioDesc int = 268964462

	KEY_AudioForward int = 269025175

	KEY_AudioLowerVolume int = 269025041

	KEY_AudioMedia int = 269025074

	KEY_AudioMicMute int = 269025202

	KEY_AudioMute int = 269025042

	KEY_AudioNext int = 269025047

	KEY_AudioPause int = 269025073

	KEY_AudioPlay int = 269025044

	KEY_AudioPreset int = 269025206

	KEY_AudioPrev int = 269025046

	KEY_AudioRaiseVolume int = 269025043

	KEY_AudioRandomPlay int = 269025177

	KEY_AudioRecord int = 269025052

	KEY_AudioRepeat int = 269025176

	KEY_AudioRewind int = 269025086

	KEY_AudioStop int = 269025045

	KEY_AutopilotEngageToggle int = 268964477

	KEY_Away int = 269025165

	KEY_B int = 66

	KEY_Babovedot int = 16784898

	KEY_Back int = 269025062

	KEY_BackForward int = 269025087

	KEY_BackSpace int = 65288

	KEY_Battery int = 269025171

	KEY_Begin int = 65368

	KEY_Blue int = 269025190

	KEY_Bluetooth int = 269025172

	KEY_Book int = 269025106

	KEY_BounceKeys_Enable int = 65140

	KEY_Break int = 65387

	KEY_BrightnessAdjust int = 269025083

	KEY_BrightnessAuto int = 268964084

	KEY_BrightnessMax int = 268964433

	KEY_BrightnessMin int = 268964432

	KEY_Buttonconfig int = 268964416

	KEY_Byelorussian_SHORTU int = 1726

	KEY_Byelorussian_shortu int = 1710

	KEY_C int = 67

	KEY_CD int = 269025107

	KEY_CH int = 65186

	KEY_C_H int = 65189

	KEY_C_h int = 65188

	KEY_Cabovedot int = 709

	KEY_Cacute int = 454

	KEY_Calculator int = 269025053

	KEY_Calendar int = 269025056

	KEY_CameraAccessDisable int = 268964428

	KEY_CameraAccessEnable int = 268964427

	KEY_CameraAccessToggle int = 268964429

	KEY_CameraDown int = 268964376

	KEY_CameraFocus int = 268964368

	KEY_CameraLeft int = 268964377

	KEY_CameraRight int = 268964378

	KEY_CameraUp int = 268964375

	KEY_CameraZoomIn int = 268964373

	KEY_CameraZoomOut int = 268964374

	KEY_Cancel int = 65385

	KEY_Caps_Lock int = 65509

	KEY_Ccaron int = 456

	KEY_Ccedilla int = 199

	KEY_Ccircumflex int = 710

	KEY_Ch int = 65185

	KEY_ChannelDown int = 268964243

	KEY_ChannelUp int = 268964242

	KEY_Clear int = 65291

	KEY_ClearGrab int = 269024801

	KEY_ClearvuSonar int = 268964486

	KEY_Close int = 269025110

	KEY_Codeinput int = 65335

	KEY_ColonSign int = 16785569

	KEY_Community int = 269025085

	KEY_ContextMenu int = 268964278

	KEY_ContrastAdjust int = 269025058

	KEY_ControlPanel int = 268964419

	KEY_Control_L int = 65507

	KEY_Control_R int = 65508

	KEY_Copy int = 269025111

	KEY_CruzeiroSign int = 16785570

	KEY_Cut int = 269025112

	KEY_CycleAngle int = 269025180

	KEY_Cyrillic_A int = 1761

	KEY_Cyrillic_BE int = 1762

	KEY_Cyrillic_CHE int = 1790

	KEY_Cyrillic_CHE_descender int = 16778422

	KEY_Cyrillic_CHE_vertstroke int = 16778424

	KEY_Cyrillic_DE int = 1764

	KEY_Cyrillic_DZHE int = 1727

	KEY_Cyrillic_E int = 1788

	KEY_Cyrillic_EF int = 1766

	KEY_Cyrillic_EL int = 1772

	KEY_Cyrillic_EM int = 1773

	KEY_Cyrillic_EN int = 1774

	KEY_Cyrillic_EN_descender int = 16778402

	KEY_Cyrillic_ER int = 1778

	KEY_Cyrillic_ES int = 1779

	KEY_Cyrillic_GHE int = 1767

	KEY_Cyrillic_GHE_bar int = 16778386

	KEY_Cyrillic_HA int = 1768

	KEY_Cyrillic_HARDSIGN int = 1791

	KEY_Cyrillic_HA_descender int = 16778418

	KEY_Cyrillic_I int = 1769

	KEY_Cyrillic_IE int = 1765

	KEY_Cyrillic_IO int = 1715

	KEY_Cyrillic_I_macron int = 16778466

	KEY_Cyrillic_JE int = 1720

	KEY_Cyrillic_KA int = 1771

	KEY_Cyrillic_KA_descender int = 16778394

	KEY_Cyrillic_KA_vertstroke int = 16778396

	KEY_Cyrillic_LJE int = 1721

	KEY_Cyrillic_NJE int = 1722

	KEY_Cyrillic_O int = 1775

	KEY_Cyrillic_O_bar int = 16778472

	KEY_Cyrillic_PE int = 1776

	KEY_Cyrillic_SCHWA int = 16778456

	KEY_Cyrillic_SHA int = 1787

	KEY_Cyrillic_SHCHA int = 1789

	KEY_Cyrillic_SHHA int = 16778426

	KEY_Cyrillic_SHORTI int = 1770

	KEY_Cyrillic_SOFTSIGN int = 1784

	KEY_Cyrillic_TE int = 1780

	KEY_Cyrillic_TSE int = 1763

	KEY_Cyrillic_U int = 1781

	KEY_Cyrillic_U_macron int = 16778478

	KEY_Cyrillic_U_straight int = 16778414

	KEY_Cyrillic_U_straight_bar int = 16778416

	KEY_Cyrillic_VE int = 1783

	KEY_Cyrillic_YA int = 1777

	KEY_Cyrillic_YERU int = 1785

	KEY_Cyrillic_YU int = 1760

	KEY_Cyrillic_ZE int = 1786

	KEY_Cyrillic_ZHE int = 1782

	KEY_Cyrillic_ZHE_descender int = 16778390

	KEY_Cyrillic_a int = 1729

	KEY_Cyrillic_be int = 1730

	KEY_Cyrillic_che int = 1758

	KEY_Cyrillic_che_descender int = 16778423

	KEY_Cyrillic_che_vertstroke int = 16778425

	KEY_Cyrillic_de int = 1732

	KEY_Cyrillic_dzhe int = 1711

	KEY_Cyrillic_e int = 1756

	KEY_Cyrillic_ef int = 1734

	KEY_Cyrillic_el int = 1740

	KEY_Cyrillic_em int = 1741

	KEY_Cyrillic_en int = 1742

	KEY_Cyrillic_en_descender int = 16778403

	KEY_Cyrillic_er int = 1746

	KEY_Cyrillic_es int = 1747

	KEY_Cyrillic_ghe int = 1735

	KEY_Cyrillic_ghe_bar int = 16778387

	KEY_Cyrillic_ha int = 1736

	KEY_Cyrillic_ha_descender int = 16778419

	KEY_Cyrillic_hardsign int = 1759

	KEY_Cyrillic_i int = 1737

	KEY_Cyrillic_i_macron int = 16778467

	KEY_Cyrillic_ie int = 1733

	KEY_Cyrillic_io int = 1699

	KEY_Cyrillic_je int = 1704

	KEY_Cyrillic_ka int = 1739

	KEY_Cyrillic_ka_descender int = 16778395

	KEY_Cyrillic_ka_vertstroke int = 16778397

	KEY_Cyrillic_lje int = 1705

	KEY_Cyrillic_nje int = 1706

	KEY_Cyrillic_o int = 1743

	KEY_Cyrillic_o_bar int = 16778473

	KEY_Cyrillic_pe int = 1744

	KEY_Cyrillic_schwa int = 16778457

	KEY_Cyrillic_sha int = 1755

	KEY_Cyrillic_shcha int = 1757

	KEY_Cyrillic_shha int = 16778427

	KEY_Cyrillic_shorti int = 1738

	KEY_Cyrillic_softsign int = 1752

	KEY_Cyrillic_te int = 1748

	KEY_Cyrillic_tse int = 1731

	KEY_Cyrillic_u int = 1749

	KEY_Cyrillic_u_macron int = 16778479

	KEY_Cyrillic_u_straight int = 16778415

	KEY_Cyrillic_u_straight_bar int = 16778417

	KEY_Cyrillic_ve int = 1751

	KEY_Cyrillic_ya int = 1745

	KEY_Cyrillic_yeru int = 1753

	KEY_Cyrillic_yu int = 1728

	KEY_Cyrillic_ze int = 1754

	KEY_Cyrillic_zhe int = 1750

	KEY_Cyrillic_zhe_descender int = 16778391

	KEY_D int = 68

	KEY_DOS int = 269025114

	KEY_DVD int = 268964229

	KEY_Dabovedot int = 16784906

	KEY_Data int = 268964471

	KEY_Database int = 268964266

	KEY_Dcaron int = 463

	KEY_Delete int = 65535

	KEY_Dictate int = 268964426

	KEY_Display int = 269025113

	KEY_DisplayOff int = 268964085

	KEY_DisplayToggle int = 268964271

	KEY_DoNotDisturb int = 268964431

	KEY_Documents int = 269025115

	KEY_DongSign int = 16785579

	KEY_Down int = 65364

	KEY_Dstroke int = 464

	KEY_DualRangeRadar int = 268964483

	KEY_E int = 69

	KEY_ENG int = 957

	KEY_ETH int = 208

	KEY_EZH int = 16777655

	KEY_Eabovedot int = 972

	KEY_Eacute int = 201

	KEY_Ebelowdot int = 16785080

	KEY_Ecaron int = 460

	KEY_Ecircumflex int = 202

	KEY_Ecircumflexacute int = 16785086

	KEY_Ecircumflexbelowdot int = 16785094

	KEY_Ecircumflexgrave int = 16785088

	KEY_Ecircumflexhook int = 16785090

	KEY_Ecircumflextilde int = 16785092

	KEY_EcuSign int = 16785568

	KEY_Ediaeresis int = 203

	KEY_Editor int = 268964262

	KEY_Egrave int = 200

	KEY_Ehook int = 16785082

	KEY_Eisu_Shift int = 65327

	KEY_Eisu_toggle int = 65328

	KEY_Eject int = 269025068

	KEY_Emacron int = 938

	KEY_EmojiPicker int = 268964425

	KEY_End int = 65367

	KEY_Eogonek int = 458

	KEY_Escape int = 65307

	KEY_Eth int = 208

	KEY_Etilde int = 16785084

	KEY_EuroSign int = 8364

	KEY_Excel int = 269025116

	KEY_Execute int = 65378

	KEY_Explorer int = 269025117

	KEY_F int = 70

	KEY_F1 int = 65470

	KEY_F10 int = 65479

	KEY_F11 int = 65480

	KEY_F12 int = 65481

	KEY_F13 int = 65482

	KEY_F14 int = 65483

	KEY_F15 int = 65484

	KEY_F16 int = 65485

	KEY_F17 int = 65486

	KEY_F18 int = 65487

	KEY_F19 int = 65488

	KEY_F2 int = 65471

	KEY_F20 int = 65489

	KEY_F21 int = 65490

	KEY_F22 int = 65491

	KEY_F23 int = 65492

	KEY_F24 int = 65493

	KEY_F25 int = 65494

	KEY_F26 int = 65495

	KEY_F27 int = 65496

	KEY_F28 int = 65497

	KEY_F29 int = 65498

	KEY_F3 int = 65472

	KEY_F30 int = 65499

	KEY_F31 int = 65500

	KEY_F32 int = 65501

	KEY_F33 int = 65502

	KEY_F34 int = 65503

	KEY_F35 int = 65504

	KEY_F4 int = 65473

	KEY_F5 int = 65474

	KEY_F6 int = 65475

	KEY_F7 int = 65476

	KEY_F8 int = 65477

	KEY_F9 int = 65478

	KEY_FFrancSign int = 16785571

	KEY_Fabovedot int = 16784926

	KEY_Farsi_0 int = 16778992

	KEY_Farsi_1 int = 16778993

	KEY_Farsi_2 int = 16778994

	KEY_Farsi_3 int = 16778995

	KEY_Farsi_4 int = 16778996

	KEY_Farsi_5 int = 16778997

	KEY_Farsi_6 int = 16778998

	KEY_Farsi_7 int = 16778999

	KEY_Farsi_8 int = 16779000

	KEY_Farsi_9 int = 16779001

	KEY_Farsi_yeh int = 16778956

	KEY_FastReverse int = 268964469

	KEY_Favorites int = 269025072

	KEY_Finance int = 269025084

	KEY_Find int = 65384

	KEY_First_Virtual_Screen int = 65232

	KEY_FishingChart int = 268964481

	KEY_Fn int = 268964304

	KEY_FnRightShift int = 268964325

	KEY_Fn_Esc int = 268964305

	KEY_Forward int = 269025063

	KEY_FrameBack int = 269025181

	KEY_FrameForward int = 269025182

	KEY_FullScreen int = 269025208

	KEY_G int = 71

	KEY_Gabovedot int = 725

	KEY_Game int = 269025118

	KEY_Gbreve int = 683

	KEY_Gcaron int = 16777702

	KEY_Gcedilla int = 939

	KEY_Gcircumflex int = 728

	KEY_Georgian_an int = 16781520

	KEY_Georgian_ban int = 16781521

	KEY_Georgian_can int = 16781546

	KEY_Georgian_char int = 16781549

	KEY_Georgian_chin int = 16781545

	KEY_Georgian_cil int = 16781548

	KEY_Georgian_don int = 16781523

	KEY_Georgian_en int = 16781524

	KEY_Georgian_fi int = 16781558

	KEY_Georgian_gan int = 16781522

	KEY_Georgian_ghan int = 16781542

	KEY_Georgian_hae int = 16781552

	KEY_Georgian_har int = 16781556

	KEY_Georgian_he int = 16781553

	KEY_Georgian_hie int = 16781554

	KEY_Georgian_hoe int = 16781557

	KEY_Georgian_in int = 16781528

	KEY_Georgian_jhan int = 16781551

	KEY_Georgian_jil int = 16781547

	KEY_Georgian_kan int = 16781529

	KEY_Georgian_khar int = 16781541

	KEY_Georgian_las int = 16781530

	KEY_Georgian_man int = 16781531

	KEY_Georgian_nar int = 16781532

	KEY_Georgian_on int = 16781533

	KEY_Georgian_par int = 16781534

	KEY_Georgian_phar int = 16781540

	KEY_Georgian_qar int = 16781543

	KEY_Georgian_rae int = 16781536

	KEY_Georgian_san int = 16781537

	KEY_Georgian_shin int = 16781544

	KEY_Georgian_tan int = 16781527

	KEY_Georgian_tar int = 16781538

	KEY_Georgian_un int = 16781539

	KEY_Georgian_vin int = 16781525

	KEY_Georgian_we int = 16781555

	KEY_Georgian_xan int = 16781550

	KEY_Georgian_zen int = 16781526

	KEY_Georgian_zhar int = 16781535

	KEY_Go int = 269025119

	KEY_GraphicsEditor int = 268964264

	KEY_Greek_ALPHA int = 1985

	KEY_Greek_ALPHAaccent int = 1953

	KEY_Greek_BETA int = 1986

	KEY_Greek_CHI int = 2007

	KEY_Greek_DELTA int = 1988

	KEY_Greek_EPSILON int = 1989

	KEY_Greek_EPSILONaccent int = 1954

	KEY_Greek_ETA int = 1991

	KEY_Greek_ETAaccent int = 1955

	KEY_Greek_GAMMA int = 1987

	KEY_Greek_IOTA int = 1993

	KEY_Greek_IOTAaccent int = 1956

	KEY_Greek_IOTAdiaeresis int = 1957

	KEY_Greek_IOTAdieresis int = 1957

	KEY_Greek_KAPPA int = 1994

	KEY_Greek_LAMBDA int = 1995

	KEY_Greek_LAMDA int = 1995

	KEY_Greek_MU int = 1996

	KEY_Greek_NU int = 1997

	KEY_Greek_OMEGA int = 2009

	KEY_Greek_OMEGAaccent int = 1963

	KEY_Greek_OMICRON int = 1999

	KEY_Greek_OMICRONaccent int = 1959

	KEY_Greek_PHI int = 2006

	KEY_Greek_PI int = 2000

	KEY_Greek_PSI int = 2008

	KEY_Greek_RHO int = 2001

	KEY_Greek_SIGMA int = 2002

	KEY_Greek_TAU int = 2004

	KEY_Greek_THETA int = 1992

	KEY_Greek_UPSILON int = 2005

	KEY_Greek_UPSILONaccent int = 1960

	KEY_Greek_UPSILONdieresis int = 1961

	KEY_Greek_XI int = 1998

	KEY_Greek_ZETA int = 1990

	KEY_Greek_accentdieresis int = 1966

	KEY_Greek_alpha int = 2017

	KEY_Greek_alphaaccent int = 1969

	KEY_Greek_beta int = 2018

	KEY_Greek_chi int = 2039

	KEY_Greek_delta int = 2020

	KEY_Greek_epsilon int = 2021

	KEY_Greek_epsilonaccent int = 1970

	KEY_Greek_eta int = 2023

	KEY_Greek_etaaccent int = 1971

	KEY_Greek_finalsmallsigma int = 2035

	KEY_Greek_gamma int = 2019

	KEY_Greek_horizbar int = 1967

	KEY_Greek_iota int = 2025

	KEY_Greek_iotaaccent int = 1972

	KEY_Greek_iotaaccentdieresis int = 1974

	KEY_Greek_iotadieresis int = 1973

	KEY_Greek_kappa int = 2026

	KEY_Greek_lambda int = 2027

	KEY_Greek_lamda int = 2027

	KEY_Greek_mu int = 2028

	KEY_Greek_nu int = 2029

	KEY_Greek_omega int = 2041

	KEY_Greek_omegaaccent int = 1979

	KEY_Greek_omicron int = 2031

	KEY_Greek_omicronaccent int = 1975

	KEY_Greek_phi int = 2038

	KEY_Greek_pi int = 2032

	KEY_Greek_psi int = 2040

	KEY_Greek_rho int = 2033

	KEY_Greek_sigma int = 2034

	KEY_Greek_switch int = 65406

	KEY_Greek_tau int = 2036

	KEY_Greek_theta int = 2024

	KEY_Greek_upsilon int = 2037

	KEY_Greek_upsilonaccent int = 1976

	KEY_Greek_upsilonaccentdieresis int = 1978

	KEY_Greek_upsilondieresis int = 1977

	KEY_Greek_xi int = 2030

	KEY_Greek_zeta int = 2022

	KEY_Green int = 269025188

	KEY_H int = 72

	KEY_Hangul int = 65329

	KEY_Hangul_A int = 3775

	KEY_Hangul_AE int = 3776

	KEY_Hangul_AraeA int = 3830

	KEY_Hangul_AraeAE int = 3831

	KEY_Hangul_Banja int = 65337

	KEY_Hangul_Cieuc int = 3770

	KEY_Hangul_Codeinput int = 65335

	KEY_Hangul_Dikeud int = 3751

	KEY_Hangul_E int = 3780

	KEY_Hangul_EO int = 3779

	KEY_Hangul_EU int = 3793

	KEY_Hangul_End int = 65331

	KEY_Hangul_Hanja int = 65332

	KEY_Hangul_Hieuh int = 3774

	KEY_Hangul_I int = 3795

	KEY_Hangul_Ieung int = 3767

	KEY_Hangul_J_Cieuc int = 3818

	KEY_Hangul_J_Dikeud int = 3802

	KEY_Hangul_J_Hieuh int = 3822

	KEY_Hangul_J_Ieung int = 3816

	KEY_Hangul_J_Jieuj int = 3817

	KEY_Hangul_J_Khieuq int = 3819

	KEY_Hangul_J_Kiyeog int = 3796

	KEY_Hangul_J_KiyeogSios int = 3798

	KEY_Hangul_J_KkogjiDalrinIeung int = 3833

	KEY_Hangul_J_Mieum int = 3811

	KEY_Hangul_J_Nieun int = 3799

	KEY_Hangul_J_NieunHieuh int = 3801

	KEY_Hangul_J_NieunJieuj int = 3800

	KEY_Hangul_J_PanSios int = 3832

	KEY_Hangul_J_Phieuf int = 3821

	KEY_Hangul_J_Pieub int = 3812

	KEY_Hangul_J_PieubSios int = 3813

	KEY_Hangul_J_Rieul int = 3803

	KEY_Hangul_J_RieulHieuh int = 3810

	KEY_Hangul_J_RieulKiyeog int = 3804

	KEY_Hangul_J_RieulMieum int = 3805

	KEY_Hangul_J_RieulPhieuf int = 3809

	KEY_Hangul_J_RieulPieub int = 3806

	KEY_Hangul_J_RieulSios int = 3807

	KEY_Hangul_J_RieulTieut int = 3808

	KEY_Hangul_J_Sios int = 3814

	KEY_Hangul_J_SsangKiyeog int = 3797

	KEY_Hangul_J_SsangSios int = 3815

	KEY_Hangul_J_Tieut int = 3820

	KEY_Hangul_J_YeorinHieuh int = 3834

	KEY_Hangul_Jamo int = 65333

	KEY_Hangul_Jeonja int = 65336

	KEY_Hangul_Jieuj int = 3768

	KEY_Hangul_Khieuq int = 3771

	KEY_Hangul_Kiyeog int = 3745

	KEY_Hangul_KiyeogSios int = 3747

	KEY_Hangul_KkogjiDalrinIeung int = 3827

	KEY_Hangul_Mieum int = 3761

	KEY_Hangul_MultipleCandidate int = 65341

	KEY_Hangul_Nieun int = 3748

	KEY_Hangul_NieunHieuh int = 3750

	KEY_Hangul_NieunJieuj int = 3749

	KEY_Hangul_O int = 3783

	KEY_Hangul_OE int = 3786

	KEY_Hangul_PanSios int = 3826

	KEY_Hangul_Phieuf int = 3773

	KEY_Hangul_Pieub int = 3762

	KEY_Hangul_PieubSios int = 3764

	KEY_Hangul_PostHanja int = 65339

	KEY_Hangul_PreHanja int = 65338

	KEY_Hangul_PreviousCandidate int = 65342

	KEY_Hangul_Rieul int = 3753

	KEY_Hangul_RieulHieuh int = 3760

	KEY_Hangul_RieulKiyeog int = 3754

	KEY_Hangul_RieulMieum int = 3755

	KEY_Hangul_RieulPhieuf int = 3759

	KEY_Hangul_RieulPieub int = 3756

	KEY_Hangul_RieulSios int = 3757

	KEY_Hangul_RieulTieut int = 3758

	KEY_Hangul_RieulYeorinHieuh int = 3823

	KEY_Hangul_Romaja int = 65334

	KEY_Hangul_SingleCandidate int = 65340

	KEY_Hangul_Sios int = 3765

	KEY_Hangul_Special int = 65343

	KEY_Hangul_SsangDikeud int = 3752

	KEY_Hangul_SsangJieuj int = 3769

	KEY_Hangul_SsangKiyeog int = 3746

	KEY_Hangul_SsangPieub int = 3763

	KEY_Hangul_SsangSios int = 3766

	KEY_Hangul_Start int = 65330

	KEY_Hangul_SunkyeongeumMieum int = 3824

	KEY_Hangul_SunkyeongeumPhieuf int = 3828

	KEY_Hangul_SunkyeongeumPieub int = 3825

	KEY_Hangul_Tieut int = 3772

	KEY_Hangul_U int = 3788

	KEY_Hangul_WA int = 3784

	KEY_Hangul_WAE int = 3785

	KEY_Hangul_WE int = 3790

	KEY_Hangul_WEO int = 3789

	KEY_Hangul_WI int = 3791

	KEY_Hangul_YA int = 3777

	KEY_Hangul_YAE int = 3778

	KEY_Hangul_YE int = 3782

	KEY_Hangul_YEO int = 3781

	KEY_Hangul_YI int = 3794

	KEY_Hangul_YO int = 3787

	KEY_Hangul_YU int = 3792

	KEY_Hangul_YeorinHieuh int = 3829

	KEY_Hangul_switch int = 65406

	KEY_HangupPhone int = 268964286

	KEY_Hankaku int = 65321

	KEY_Hcircumflex int = 678

	KEY_Hebrew_switch int = 65406

	KEY_Help int = 65386

	KEY_Henkan int = 65315

	KEY_Henkan_Mode int = 65315

	KEY_Hibernate int = 269025192

	KEY_Hiragana int = 65317

	KEY_Hiragana_Katakana int = 65319

	KEY_History int = 269025079

	KEY_Home int = 65360

	KEY_HomePage int = 269025048

	KEY_HotLinks int = 269025082

	KEY_Hstroke int = 673

	KEY_Hyper_L int = 65517

	KEY_Hyper_R int = 65518

	KEY_I int = 73

	KEY_ISO_Center_Object int = 65075

	KEY_ISO_Continuous_Underline int = 65072

	KEY_ISO_Discontinuous_Underline int = 65073

	KEY_ISO_Emphasize int = 65074

	KEY_ISO_Enter int = 65076

	KEY_ISO_Fast_Cursor_Down int = 65071

	KEY_ISO_Fast_Cursor_Left int = 65068

	KEY_ISO_Fast_Cursor_Right int = 65069

	KEY_ISO_Fast_Cursor_Up int = 65070

	KEY_ISO_First_Group int = 65036

	KEY_ISO_First_Group_Lock int = 65037

	KEY_ISO_Group_Latch int = 65030

	KEY_ISO_Group_Lock int = 65031

	KEY_ISO_Group_Shift int = 65406

	KEY_ISO_Last_Group int = 65038

	KEY_ISO_Last_Group_Lock int = 65039

	KEY_ISO_Left_Tab int = 65056

	KEY_ISO_Level2_Latch int = 65026

	KEY_ISO_Level3_Latch int = 65028

	KEY_ISO_Level3_Lock int = 65029

	KEY_ISO_Level3_Shift int = 65027

	KEY_ISO_Level5_Latch int = 65042

	KEY_ISO_Level5_Lock int = 65043

	KEY_ISO_Level5_Shift int = 65041

	KEY_ISO_Lock int = 65025

	KEY_ISO_Move_Line_Down int = 65058

	KEY_ISO_Move_Line_Up int = 65057

	KEY_ISO_Next_Group int = 65032

	KEY_ISO_Next_Group_Lock int = 65033

	KEY_ISO_Partial_Line_Down int = 65060

	KEY_ISO_Partial_Line_Up int = 65059

	KEY_ISO_Partial_Space_Left int = 65061

	KEY_ISO_Partial_Space_Right int = 65062

	KEY_ISO_Prev_Group int = 65034

	KEY_ISO_Prev_Group_Lock int = 65035

	KEY_ISO_Release_Both_Margins int = 65067

	KEY_ISO_Release_Margin_Left int = 65065

	KEY_ISO_Release_Margin_Right int = 65066

	KEY_ISO_Set_Margin_Left int = 65063

	KEY_ISO_Set_Margin_Right int = 65064

	KEY_Iabovedot int = 681

	KEY_Iacute int = 205

	KEY_Ibelowdot int = 16785098

	KEY_Ibreve int = 16777516

	KEY_Icircumflex int = 206

	KEY_Idiaeresis int = 207

	KEY_Igrave int = 204

	KEY_Ihook int = 16785096

	KEY_Imacron int = 975

	KEY_Images int = 268964282

	KEY_Info int = 268964198

	KEY_Insert int = 65379

	KEY_Iogonek int = 967

	KEY_Itilde int = 933

	KEY_J int = 74

	KEY_Jcircumflex int = 684

	KEY_Journal int = 268964418

	KEY_K int = 75

	KEY_KP_0 int = 65456

	KEY_KP_1 int = 65457

	KEY_KP_2 int = 65458

	KEY_KP_3 int = 65459

	KEY_KP_4 int = 65460

	KEY_KP_5 int = 65461

	KEY_KP_6 int = 65462

	KEY_KP_7 int = 65463

	KEY_KP_8 int = 65464

	KEY_KP_9 int = 65465

	KEY_KP_Add int = 65451

	KEY_KP_Begin int = 65437

	KEY_KP_Decimal int = 65454

	KEY_KP_Delete int = 65439

	KEY_KP_Divide int = 65455

	KEY_KP_Down int = 65433

	KEY_KP_End int = 65436

	KEY_KP_Enter int = 65421

	KEY_KP_Equal int = 65469

	KEY_KP_F1 int = 65425

	KEY_KP_F2 int = 65426

	KEY_KP_F3 int = 65427

	KEY_KP_F4 int = 65428

	KEY_KP_Home int = 65429

	KEY_KP_Insert int = 65438

	KEY_KP_Left int = 65430

	KEY_KP_Multiply int = 65450

	KEY_KP_Next int = 65435

	KEY_KP_Page_Down int = 65435

	KEY_KP_Page_Up int = 65434

	KEY_KP_Prior int = 65434

	KEY_KP_Right int = 65432

	KEY_KP_Separator int = 65452

	KEY_KP_Space int = 65408

	KEY_KP_Subtract int = 65453

	KEY_KP_Tab int = 65417

	KEY_KP_Up int = 65431

	KEY_Kana_Lock int = 65325

	KEY_Kana_Shift int = 65326

	KEY_Kanji int = 65313

	KEY_Kanji_Bangou int = 65335

	KEY_Katakana int = 65318

	KEY_KbdBrightnessDown int = 269025030

	KEY_KbdBrightnessUp int = 269025029

	KEY_KbdInputAssistAccept int = 268964452

	KEY_KbdInputAssistCancel int = 268964453

	KEY_KbdInputAssistNext int = 268964449

	KEY_KbdInputAssistNextgroup int = 268964451

	KEY_KbdInputAssistPrev int = 268964448

	KEY_KbdInputAssistPrevgroup int = 268964450

	KEY_KbdLcdMenu1 int = 268964536

	KEY_KbdLcdMenu2 int = 268964537

	KEY_KbdLcdMenu3 int = 268964538

	KEY_KbdLcdMenu4 int = 268964539

	KEY_KbdLcdMenu5 int = 268964540

	KEY_KbdLightOnOff int = 269025028

	KEY_Kcedilla int = 979

	KEY_Keyboard int = 269025203

	KEY_Korean_Won int = 3839

	KEY_L int = 76

	KEY_L1 int = 65480

	KEY_L10 int = 65489

	KEY_L2 int = 65481

	KEY_L3 int = 65482

	KEY_L4 int = 65483

	KEY_L5 int = 65484

	KEY_L6 int = 65485

	KEY_L7 int = 65486

	KEY_L8 int = 65487

	KEY_L9 int = 65488

	KEY_Lacute int = 453

	KEY_Last_Virtual_Screen int = 65236

	KEY_Launch0 int = 269025088

	KEY_Launch1 int = 269025089

	KEY_Launch2 int = 269025090

	KEY_Launch3 int = 269025091

	KEY_Launch4 int = 269025092

	KEY_Launch5 int = 269025093

	KEY_Launch6 int = 269025094

	KEY_Launch7 int = 269025095

	KEY_Launch8 int = 269025096

	KEY_Launch9 int = 269025097

	KEY_LaunchA int = 269025098

	KEY_LaunchB int = 269025099

	KEY_LaunchC int = 269025100

	KEY_LaunchD int = 269025101

	KEY_LaunchE int = 269025102

	KEY_LaunchF int = 269025103

	KEY_Lbelowdot int = 16784950

	KEY_Lcaron int = 421

	KEY_Lcedilla int = 934

	KEY_Left int = 65361

	KEY_LeftDown int = 268964457

	KEY_LeftUp int = 268964456

	KEY_LightBulb int = 269025077

	KEY_LightsToggle int = 268964382

	KEY_Linefeed int = 65290

	KEY_LiraSign int = 16785572

	KEY_LogGrabInfo int = 269024805

	KEY_LogOff int = 269025121

	KEY_LogWindowTree int = 269024804

	KEY_Lstroke int = 419

	KEY_M int = 77

	KEY_Mabovedot int = 16784960

	KEY_Macedonia_DSE int = 1717

	KEY_Macedonia_GJE int = 1714

	KEY_Macedonia_KJE int = 1724

	KEY_Macedonia_dse int = 1701

	KEY_Macedonia_gje int = 1698

	KEY_Macedonia_kje int = 1708

	KEY_Macro1 int = 268964496

	KEY_Macro10 int = 268964505

	KEY_Macro11 int = 268964506

	KEY_Macro12 int = 268964507

	KEY_Macro13 int = 268964508

	KEY_Macro14 int = 268964509

	KEY_Macro15 int = 268964510

	KEY_Macro16 int = 268964511

	KEY_Macro17 int = 268964512

	KEY_Macro18 int = 268964513

	KEY_Macro19 int = 268964514

	KEY_Macro2 int = 268964497

	KEY_Macro20 int = 268964515

	KEY_Macro21 int = 268964516

	KEY_Macro22 int = 268964517

	KEY_Macro23 int = 268964518

	KEY_Macro24 int = 268964519

	KEY_Macro25 int = 268964520

	KEY_Macro26 int = 268964521

	KEY_Macro27 int = 268964522

	KEY_Macro28 int = 268964523

	KEY_Macro29 int = 268964524

	KEY_Macro3 int = 268964498

	KEY_Macro30 int = 268964525

	KEY_Macro4 int = 268964499

	KEY_Macro5 int = 268964500

	KEY_Macro6 int = 268964501

	KEY_Macro7 int = 268964502

	KEY_Macro8 int = 268964503

	KEY_Macro9 int = 268964504

	KEY_MacroPreset1 int = 268964531

	KEY_MacroPreset2 int = 268964532

	KEY_MacroPreset3 int = 268964533

	KEY_MacroPresetCycle int = 268964530

	KEY_MacroRecordStart int = 268964528

	KEY_MacroRecordStop int = 268964529

	KEY_Mae_Koho int = 65342

	KEY_Mail int = 269025049

	KEY_MailForward int = 269025168

	KEY_MarkWaypoint int = 268964478

	KEY_Market int = 269025122

	KEY_Massyo int = 65324

	KEY_MediaRepeat int = 268964279

	KEY_MediaTopMenu int = 268964459

	KEY_Meeting int = 269025123

	KEY_Memo int = 269025054

	KEY_Menu int = 65383

	KEY_MenuKB int = 269025125

	KEY_MenuPB int = 269025126

	KEY_Messenger int = 269025166

	KEY_Meta_L int = 65511

	KEY_Meta_R int = 65512

	KEY_MillSign int = 16785573

	KEY_ModeLock int = 269025025

	KEY_Mode_switch int = 65406

	KEY_MonBrightnessCycle int = 269025031

	KEY_MonBrightnessDown int = 269025027

	KEY_MonBrightnessUp int = 269025026

	KEY_MouseKeys_Accel_Enable int = 65143

	KEY_MouseKeys_Enable int = 65142

	KEY_Muhenkan int = 65314

	KEY_Multi_key int = 65312

	KEY_MultipleCandidate int = 65341

	KEY_Music int = 269025170

	KEY_MyComputer int = 269025075

	KEY_MySites int = 269025127

	KEY_N int = 78

	KEY_Nacute int = 465

	KEY_NairaSign int = 16785574

	KEY_NavChart int = 268964480

	KEY_NavInfo int = 268964488

	KEY_Ncaron int = 466

	KEY_Ncedilla int = 977

	KEY_New int = 269025128

	KEY_NewSheqelSign int = 16785578

	KEY_News int = 269025129

	KEY_Next int = 65366

	KEY_NextElement int = 268964475

	KEY_NextFavorite int = 268964464

	KEY_Next_VMode int = 269024802

	KEY_Next_Virtual_Screen int = 65234

	KEY_NotificationCenter int = 268964284

	KEY_Ntilde int = 209

	KEY_Num_Lock int = 65407

	KEY_Numeric0 int = 268964352

	KEY_Numeric1 int = 268964353

	KEY_Numeric11 int = 268964460

	KEY_Numeric12 int = 268964461

	KEY_Numeric2 int = 268964354

	KEY_Numeric3 int = 268964355

	KEY_Numeric4 int = 268964356

	KEY_Numeric5 int = 268964357

	KEY_Numeric6 int = 268964358

	KEY_Numeric7 int = 268964359

	KEY_Numeric8 int = 268964360

	KEY_Numeric9 int = 268964361

	KEY_NumericA int = 268964364

	KEY_NumericB int = 268964365

	KEY_NumericC int = 268964366

	KEY_NumericD int = 268964367

	KEY_NumericPound int = 268964363

	KEY_NumericStar int = 268964362

	KEY_O int = 79

	KEY_OE int = 5052

	KEY_Oacute int = 211

	KEY_Obarred int = 16777631

	KEY_Obelowdot int = 16785100

	KEY_Ocaron int = 16777681

	KEY_Ocircumflex int = 212

	KEY_Ocircumflexacute int = 16785104

	KEY_Ocircumflexbelowdot int = 16785112

	KEY_Ocircumflexgrave int = 16785106

	KEY_Ocircumflexhook int = 16785108

	KEY_Ocircumflextilde int = 16785110

	KEY_Odiaeresis int = 214

	KEY_Odoubleacute int = 469

	KEY_OfficeHome int = 269025130

	KEY_Ograve int = 210

	KEY_Ohook int = 16785102

	KEY_Ohorn int = 16777632

	KEY_Ohornacute int = 16785114

	KEY_Ohornbelowdot int = 16785122

	KEY_Ohorngrave int = 16785116

	KEY_Ohornhook int = 16785118

	KEY_Ohorntilde int = 16785120

	KEY_Omacron int = 978

	KEY_OnScreenKeyboard int = 268964472

	KEY_Ooblique int = 216

	KEY_Open int = 269025131

	KEY_OpenURL int = 269025080

	KEY_Option int = 269025132

	KEY_Oslash int = 216

	KEY_Otilde int = 213

	KEY_Overlay1_Enable int = 65144

	KEY_Overlay2_Enable int = 65145

	KEY_P int = 80

	KEY_Pabovedot int = 16784982

	KEY_Page_Down int = 65366

	KEY_Page_Up int = 65365

	KEY_Paste int = 269025133

	KEY_Pause int = 65299

	KEY_PauseRecord int = 268964466

	KEY_PesetaSign int = 16785575

	KEY_Phone int = 269025134

	KEY_PickupPhone int = 268964285

	KEY_Pictures int = 269025169

	KEY_Pointer_Accelerate int = 65274

	KEY_Pointer_Button1 int = 65257

	KEY_Pointer_Button2 int = 65258

	KEY_Pointer_Button3 int = 65259

	KEY_Pointer_Button4 int = 65260

	KEY_Pointer_Button5 int = 65261

	KEY_Pointer_Button_Dflt int = 65256

	KEY_Pointer_DblClick1 int = 65263

	KEY_Pointer_DblClick2 int = 65264

	KEY_Pointer_DblClick3 int = 65265

	KEY_Pointer_DblClick4 int = 65266

	KEY_Pointer_DblClick5 int = 65267

	KEY_Pointer_DblClick_Dflt int = 65262

	KEY_Pointer_DfltBtnNext int = 65275

	KEY_Pointer_DfltBtnPrev int = 65276

	KEY_Pointer_Down int = 65251

	KEY_Pointer_DownLeft int = 65254

	KEY_Pointer_DownRight int = 65255

	KEY_Pointer_Drag1 int = 65269

	KEY_Pointer_Drag2 int = 65270

	KEY_Pointer_Drag3 int = 65271

	KEY_Pointer_Drag4 int = 65272

	KEY_Pointer_Drag5 int = 65277

	KEY_Pointer_Drag_Dflt int = 65268

	KEY_Pointer_EnableKeys int = 65273

	KEY_Pointer_Left int = 65248

	KEY_Pointer_Right int = 65249

	KEY_Pointer_Up int = 65250

	KEY_Pointer_UpLeft int = 65252

	KEY_Pointer_UpRight int = 65253

	KEY_PowerDown int = 269025057

	KEY_PowerOff int = 269025066

	KEY_Presentation int = 268964265

	KEY_Prev_VMode int = 269024803

	KEY_Prev_Virtual_Screen int = 65233

	KEY_PreviousCandidate int = 65342

	KEY_PreviousElement int = 268964476

	KEY_Print int = 65377

	KEY_Prior int = 65365

	KEY_PrivacyScreenToggle int = 268964473

	KEY_Q int = 81

	KEY_R int = 82

	KEY_R1 int = 65490

	KEY_R10 int = 65499

	KEY_R11 int = 65500

	KEY_R12 int = 65501

	KEY_R13 int = 65502

	KEY_R14 int = 65503

	KEY_R15 int = 65504

	KEY_R2 int = 65491

	KEY_R3 int = 65492

	KEY_R4 int = 65493

	KEY_R5 int = 65494

	KEY_R6 int = 65495

	KEY_R7 int = 65496

	KEY_R8 int = 65497

	KEY_R9 int = 65498

	KEY_RFKill int = 269025205

	KEY_Racute int = 448

	KEY_RadarOverlay int = 268964484

	KEY_Rcaron int = 472

	KEY_Rcedilla int = 931

	KEY_Red int = 269025187

	KEY_Redo int = 65382

	KEY_Refresh int = 269025065

	KEY_RefreshRateToggle int = 268964402

	KEY_Reload int = 269025139

	KEY_RepeatKeys_Enable int = 65138

	KEY_Reply int = 269025138

	KEY_Return int = 65293

	KEY_Right int = 65363

	KEY_RightDown int = 268964455

	KEY_RightUp int = 268964454

	KEY_RockerDown int = 269025060

	KEY_RockerEnter int = 269025061

	KEY_RockerUp int = 269025059

	KEY_Romaji int = 65316

	KEY_RootMenu int = 268964458

	KEY_RotateWindows int = 269025140

	KEY_RotationKB int = 269025142

	KEY_RotationLockToggle int = 269025207

	KEY_RotationPB int = 269025141

	KEY_RupeeSign int = 16785576

	KEY_S int = 83

	KEY_SCHWA int = 16777615

	KEY_Sabovedot int = 16784992

	KEY_Sacute int = 422

	KEY_Save int = 269025143

	KEY_Scaron int = 425

	KEY_Scedilla int = 426

	KEY_Scircumflex int = 734

	KEY_ScreenSaver int = 269025069

	KEY_Screensaver int = 268964421

	KEY_ScrollClick int = 269025146

	KEY_ScrollDown int = 269025145

	KEY_ScrollUp int = 269025144

	KEY_Scroll_Lock int = 65300

	KEY_Search int = 269025051

	KEY_Select int = 65376

	KEY_SelectButton int = 269025184

	KEY_SelectiveScreenshot int = 268964474

	KEY_Send int = 269025147

	KEY_Serbian_DJE int = 1713

	KEY_Serbian_DZE int = 1727

	KEY_Serbian_JE int = 1720

	KEY_Serbian_LJE int = 1721

	KEY_Serbian_NJE int = 1722

	KEY_Serbian_TSHE int = 1723

	KEY_Serbian_dje int = 1697

	KEY_Serbian_dze int = 1711

	KEY_Serbian_je int = 1704

	KEY_Serbian_lje int = 1705

	KEY_Serbian_nje int = 1706

	KEY_Serbian_tshe int = 1707

	KEY_Shift_L int = 65505

	KEY_Shift_Lock int = 65510

	KEY_Shift_R int = 65506

	KEY_Shop int = 269025078

	KEY_SidevuSonar int = 268964487

	KEY_SingleCandidate int = 65340

	KEY_SingleRangeRadar int = 268964482

	KEY_Sinh_a int = 16780677

	KEY_Sinh_aa int = 16780678

	KEY_Sinh_aa2 int = 16780751

	KEY_Sinh_ae int = 16780679

	KEY_Sinh_ae2 int = 16780752

	KEY_Sinh_aee int = 16780680

	KEY_Sinh_aee2 int = 16780753

	KEY_Sinh_ai int = 16780691

	KEY_Sinh_ai2 int = 16780763

	KEY_Sinh_al int = 16780746

	KEY_Sinh_au int = 16780694

	KEY_Sinh_au2 int = 16780766

	KEY_Sinh_ba int = 16780726

	KEY_Sinh_bha int = 16780727

	KEY_Sinh_ca int = 16780704

	KEY_Sinh_cha int = 16780705

	KEY_Sinh_dda int = 16780713

	KEY_Sinh_ddha int = 16780714

	KEY_Sinh_dha int = 16780719

	KEY_Sinh_dhha int = 16780720

	KEY_Sinh_e int = 16780689

	KEY_Sinh_e2 int = 16780761

	KEY_Sinh_ee int = 16780690

	KEY_Sinh_ee2 int = 16780762

	KEY_Sinh_fa int = 16780742

	KEY_Sinh_ga int = 16780700

	KEY_Sinh_gha int = 16780701

	KEY_Sinh_h2 int = 16780675

	KEY_Sinh_ha int = 16780740

	KEY_Sinh_i int = 16780681

	KEY_Sinh_i2 int = 16780754

	KEY_Sinh_ii int = 16780682

	KEY_Sinh_ii2 int = 16780755

	KEY_Sinh_ja int = 16780706

	KEY_Sinh_jha int = 16780707

	KEY_Sinh_jnya int = 16780709

	KEY_Sinh_ka int = 16780698

	KEY_Sinh_kha int = 16780699

	KEY_Sinh_kunddaliya int = 16780788

	KEY_Sinh_la int = 16780733

	KEY_Sinh_lla int = 16780741

	KEY_Sinh_lu int = 16780687

	KEY_Sinh_lu2 int = 16780767

	KEY_Sinh_luu int = 16780688

	KEY_Sinh_luu2 int = 16780787

	KEY_Sinh_ma int = 16780728

	KEY_Sinh_mba int = 16780729

	KEY_Sinh_na int = 16780721

	KEY_Sinh_ndda int = 16780716

	KEY_Sinh_ndha int = 16780723

	KEY_Sinh_ng int = 16780674

	KEY_Sinh_ng2 int = 16780702

	KEY_Sinh_nga int = 16780703

	KEY_Sinh_nja int = 16780710

	KEY_Sinh_nna int = 16780715

	KEY_Sinh_nya int = 16780708

	KEY_Sinh_o int = 16780692

	KEY_Sinh_o2 int = 16780764

	KEY_Sinh_oo int = 16780693

	KEY_Sinh_oo2 int = 16780765

	KEY_Sinh_pa int = 16780724

	KEY_Sinh_pha int = 16780725

	KEY_Sinh_ra int = 16780731

	KEY_Sinh_ri int = 16780685

	KEY_Sinh_rii int = 16780686

	KEY_Sinh_ru2 int = 16780760

	KEY_Sinh_ruu2 int = 16780786

	KEY_Sinh_sa int = 16780739

	KEY_Sinh_sha int = 16780737

	KEY_Sinh_ssha int = 16780738

	KEY_Sinh_tha int = 16780717

	KEY_Sinh_thha int = 16780718

	KEY_Sinh_tta int = 16780711

	KEY_Sinh_ttha int = 16780712

	KEY_Sinh_u int = 16780683

	KEY_Sinh_u2 int = 16780756

	KEY_Sinh_uu int = 16780684

	KEY_Sinh_uu2 int = 16780758

	KEY_Sinh_va int = 16780736

	KEY_Sinh_ya int = 16780730

	KEY_Sleep int = 269025071

	KEY_SlowKeys_Enable int = 65139

	KEY_SlowReverse int = 268964470

	KEY_Sos int = 268964479

	KEY_Spell int = 269025148

	KEY_SpellCheck int = 268964272

	KEY_SplitScreen int = 269025149

	KEY_Standby int = 269025040

	KEY_Start int = 269025050

	KEY_StickyKeys_Enable int = 65141

	KEY_Stop int = 269025064

	KEY_StopRecord int = 268964465

	KEY_Subtitle int = 269025178

	KEY_Super_L int = 65515

	KEY_Super_R int = 65516

	KEY_Support int = 269025150

	KEY_Suspend int = 269025191

	KEY_Switch_VT_1 int = 269024769

	KEY_Switch_VT_10 int = 269024778

	KEY_Switch_VT_11 int = 269024779

	KEY_Switch_VT_12 int = 269024780

	KEY_Switch_VT_2 int = 269024770

	KEY_Switch_VT_3 int = 269024771

	KEY_Switch_VT_4 int = 269024772

	KEY_Switch_VT_5 int = 269024773

	KEY_Switch_VT_6 int = 269024774

	KEY_Switch_VT_7 int = 269024775

	KEY_Switch_VT_8 int = 269024776

	KEY_Switch_VT_9 int = 269024777

	KEY_Sys_Req int = 65301

	KEY_T int = 84

	KEY_THORN int = 222

	KEY_Tab int = 65289

	KEY_Tabovedot int = 16785002

	KEY_TaskPane int = 269025151

	KEY_Taskmanager int = 268964417

	KEY_Tcaron int = 427

	KEY_Tcedilla int = 478

	KEY_Terminal int = 269025152

	KEY_Terminate_Server int = 65237

	KEY_Thai_baht int = 3551

	KEY_Thai_bobaimai int = 3514

	KEY_Thai_chochan int = 3496

	KEY_Thai_chochang int = 3498

	KEY_Thai_choching int = 3497

	KEY_Thai_chochoe int = 3500

	KEY_Thai_dochada int = 3502

	KEY_Thai_dodek int = 3508

	KEY_Thai_fofa int = 3517

	KEY_Thai_fofan int = 3519

	KEY_Thai_hohip int = 3531

	KEY_Thai_honokhuk int = 3534

	KEY_Thai_khokhai int = 3490

	KEY_Thai_khokhon int = 3493

	KEY_Thai_khokhuat int = 3491

	KEY_Thai_khokhwai int = 3492

	KEY_Thai_khorakhang int = 3494

	KEY_Thai_kokai int = 3489

	KEY_Thai_lakkhangyao int = 3557

	KEY_Thai_lekchet int = 3575

	KEY_Thai_lekha int = 3573

	KEY_Thai_lekhok int = 3574

	KEY_Thai_lekkao int = 3577

	KEY_Thai_leknung int = 3569

	KEY_Thai_lekpaet int = 3576

	KEY_Thai_leksam int = 3571

	KEY_Thai_leksi int = 3572

	KEY_Thai_leksong int = 3570

	KEY_Thai_leksun int = 3568

	KEY_Thai_lochula int = 3532

	KEY_Thai_loling int = 3525

	KEY_Thai_lu int = 3526

	KEY_Thai_maichattawa int = 3563

	KEY_Thai_maiek int = 3560

	KEY_Thai_maihanakat int = 3537

	KEY_Thai_maihanakat_maitho int = 3550

	KEY_Thai_maitaikhu int = 3559

	KEY_Thai_maitho int = 3561

	KEY_Thai_maitri int = 3562

	KEY_Thai_maiyamok int = 3558

	KEY_Thai_moma int = 3521

	KEY_Thai_ngongu int = 3495

	KEY_Thai_nikhahit int = 3565

	KEY_Thai_nonen int = 3507

	KEY_Thai_nonu int = 3513

	KEY_Thai_oang int = 3533

	KEY_Thai_paiyannoi int = 3535

	KEY_Thai_phinthu int = 3546

	KEY_Thai_phophan int = 3518

	KEY_Thai_phophung int = 3516

	KEY_Thai_phosamphao int = 3520

	KEY_Thai_popla int = 3515

	KEY_Thai_rorua int = 3523

	KEY_Thai_ru int = 3524

	KEY_Thai_saraa int = 3536

	KEY_Thai_saraaa int = 3538

	KEY_Thai_saraae int = 3553

	KEY_Thai_saraaimaimalai int = 3556

	KEY_Thai_saraaimaimuan int = 3555

	KEY_Thai_saraam int = 3539

	KEY_Thai_sarae int = 3552

	KEY_Thai_sarai int = 3540

	KEY_Thai_saraii int = 3541

	KEY_Thai_sarao int = 3554

	KEY_Thai_sarau int = 3544

	KEY_Thai_saraue int = 3542

	KEY_Thai_sarauee int = 3543

	KEY_Thai_sarauu int = 3545

	KEY_Thai_sorusi int = 3529

	KEY_Thai_sosala int = 3528

	KEY_Thai_soso int = 3499

	KEY_Thai_sosua int = 3530

	KEY_Thai_thanthakhat int = 3564

	KEY_Thai_thonangmontho int = 3505

	KEY_Thai_thophuthao int = 3506

	KEY_Thai_thothahan int = 3511

	KEY_Thai_thothan int = 3504

	KEY_Thai_thothong int = 3512

	KEY_Thai_thothung int = 3510

	KEY_Thai_topatak int = 3503

	KEY_Thai_totao int = 3509

	KEY_Thai_wowaen int = 3527

	KEY_Thai_yoyak int = 3522

	KEY_Thai_yoying int = 3501

	KEY_Thorn int = 222

	KEY_Time int = 269025183

	KEY_ToDoList int = 269025055

	KEY_Tools int = 269025153

	KEY_TopMenu int = 269025186

	KEY_TouchpadOff int = 269025201

	KEY_TouchpadOn int = 269025200

	KEY_TouchpadToggle int = 269025193

	KEY_Touroku int = 65323

	KEY_TraditionalSonar int = 268964485

	KEY_Travel int = 269025154

	KEY_Tslash int = 940

	KEY_U int = 85

	KEY_UWB int = 269025174

	KEY_Uacute int = 218

	KEY_Ubelowdot int = 16785124

	KEY_Ubreve int = 733

	KEY_Ucircumflex int = 219

	KEY_Udiaeresis int = 220

	KEY_Udoubleacute int = 475

	KEY_Ugrave int = 217

	KEY_Uhook int = 16785126

	KEY_Uhorn int = 16777647

	KEY_Uhornacute int = 16785128

	KEY_Uhornbelowdot int = 16785136

	KEY_Uhorngrave int = 16785130

	KEY_Uhornhook int = 16785132

	KEY_Uhorntilde int = 16785134

	KEY_Ukrainian_GHE_WITH_UPTURN int = 1725

	KEY_Ukrainian_I int = 1718

	KEY_Ukrainian_IE int = 1716

	KEY_Ukrainian_YI int = 1719

	KEY_Ukrainian_ghe_with_upturn int = 1709

	KEY_Ukrainian_i int = 1702

	KEY_Ukrainian_ie int = 1700

	KEY_Ukrainian_yi int = 1703

	KEY_Ukranian_I int = 1718

	KEY_Ukranian_JE int = 1716

	KEY_Ukranian_YI int = 1719

	KEY_Ukranian_i int = 1702

	KEY_Ukranian_je int = 1700

	KEY_Ukranian_yi int = 1703

	KEY_Umacron int = 990

	KEY_Undo int = 65381

	KEY_Ungrab int = 269024800

	KEY_Unmute int = 268964468

	KEY_Uogonek int = 985

	KEY_Up int = 65362

	KEY_Uring int = 473

	KEY_User1KB int = 269025157

	KEY_User2KB int = 269025158

	KEY_UserPB int = 269025156

	KEY_Utilde int = 989

	KEY_V int = 86

	KEY_VOD int = 268964467

	KEY_VendorHome int = 269025076

	KEY_Video int = 269025159

	KEY_VideoPhone int = 268964256

	KEY_View int = 269025185

	KEY_VoiceCommand int = 268964422

	KEY_Voicemail int = 268964268

	KEY_VoidSymbol int = 16777215

	KEY_W int = 87

	KEY_WLAN int = 269025173

	KEY_WPSButton int = 268964369

	KEY_WWAN int = 269025204

	KEY_WWW int = 269025070

	KEY_Wacute int = 16785026

	KEY_WakeUp int = 269025067

	KEY_Wcircumflex int = 16777588

	KEY_Wdiaeresis int = 16785028

	KEY_WebCam int = 269025167

	KEY_Wgrave int = 16785024

	KEY_WheelButton int = 269025160

	KEY_WindowClear int = 269025109

	KEY_WonSign int = 16785577

	KEY_Word int = 269025161

	KEY_X int = 88

	KEY_Xabovedot int = 16785034

	KEY_Xfer int = 269025162

	KEY_Y int = 89

	KEY_Yacute int = 221

	KEY_Ybelowdot int = 16785140

	KEY_Ycircumflex int = 16777590

	KEY_Ydiaeresis int = 5054

	KEY_Yellow int = 269025189

	KEY_Ygrave int = 16785138

	KEY_Yhook int = 16785142

	KEY_Ytilde int = 16785144

	KEY_Z int = 90

	KEY_Zabovedot int = 431

	KEY_Zacute int = 428

	KEY_Zcaron int = 430

	KEY_Zen_Koho int = 65341

	KEY_Zenkaku int = 65320

	KEY_Zenkaku_Hankaku int = 65322

	KEY_ZoomIn int = 269025163

	KEY_ZoomOut int = 269025164

	KEY_ZoomReset int = 268964260

	KEY_Zstroke int = 16777653

	KEY_a int = 97

	KEY_aacute int = 225

	KEY_abelowdot int = 16785057

	KEY_abovedot int = 511

	KEY_abreve int = 483

	KEY_abreveacute int = 16785071

	KEY_abrevebelowdot int = 16785079

	KEY_abrevegrave int = 16785073

	KEY_abrevehook int = 16785075

	KEY_abrevetilde int = 16785077

	KEY_acircumflex int = 226

	KEY_acircumflexacute int = 16785061

	KEY_acircumflexbelowdot int = 16785069

	KEY_acircumflexgrave int = 16785063

	KEY_acircumflexhook int = 16785065

	KEY_acircumflextilde int = 16785067

	KEY_acute int = 180

	KEY_adiaeresis int = 228

	KEY_ae int = 230

	KEY_agrave int = 224

	KEY_ahook int = 16785059

	KEY_amacron int = 992

	KEY_ampersand int = 38

	KEY_aogonek int = 433

	KEY_apostrophe int = 39

	KEY_approxeq int = 16785992

	KEY_approximate int = 2248

	KEY_aring int = 229

	KEY_asciicircum int = 94

	KEY_asciitilde int = 126

	KEY_asterisk int = 42

	KEY_at int = 64

	KEY_atilde int = 227

	KEY_b int = 98

	KEY_babovedot int = 16784899

	KEY_backslash int = 92

	KEY_ballotcross int = 2804

	KEY_bar int = 124

	KEY_because int = 16785973

	KEY_blank int = 2527

	KEY_botintegral int = 2213

	KEY_botleftparens int = 2220

	KEY_botleftsqbracket int = 2216

	KEY_botleftsummation int = 2226

	KEY_botrightparens int = 2222

	KEY_botrightsqbracket int = 2218

	KEY_botrightsummation int = 2230

	KEY_bott int = 2550

	KEY_botvertsummationconnector int = 2228

	KEY_braceleft int = 123

	KEY_braceright int = 125

	KEY_bracketleft int = 91

	KEY_bracketright int = 93

	KEY_braille_blank int = 16787456

	KEY_braille_dot_1 int = 65521

	KEY_braille_dot_10 int = 65530

	KEY_braille_dot_2 int = 65522

	KEY_braille_dot_3 int = 65523

	KEY_braille_dot_4 int = 65524

	KEY_braille_dot_5 int = 65525

	KEY_braille_dot_6 int = 65526

	KEY_braille_dot_7 int = 65527

	KEY_braille_dot_8 int = 65528

	KEY_braille_dot_9 int = 65529

	KEY_braille_dots_1 int = 16787457

	KEY_braille_dots_12 int = 16787459

	KEY_braille_dots_123 int = 16787463

	KEY_braille_dots_1234 int = 16787471

	KEY_braille_dots_12345 int = 16787487

	KEY_braille_dots_123456 int = 16787519

	KEY_braille_dots_1234567 int = 16787583

	KEY_braille_dots_12345678 int = 16787711

	KEY_braille_dots_1234568 int = 16787647

	KEY_braille_dots_123457 int = 16787551

	KEY_braille_dots_1234578 int = 16787679

	KEY_braille_dots_123458 int = 16787615

	KEY_braille_dots_12346 int = 16787503

	KEY_braille_dots_123467 int = 16787567

	KEY_braille_dots_1234678 int = 16787695

	KEY_braille_dots_123468 int = 16787631

	KEY_braille_dots_12347 int = 16787535

	KEY_braille_dots_123478 int = 16787663

	KEY_braille_dots_12348 int = 16787599

	KEY_braille_dots_1235 int = 16787479

	KEY_braille_dots_12356 int = 16787511

	KEY_braille_dots_123567 int = 16787575

	KEY_braille_dots_1235678 int = 16787703

	KEY_braille_dots_123568 int = 16787639

	KEY_braille_dots_12357 int = 16787543

	KEY_braille_dots_123578 int = 16787671

	KEY_braille_dots_12358 int = 16787607

	KEY_braille_dots_1236 int = 16787495

	KEY_braille_dots_12367 int = 16787559

	KEY_braille_dots_123678 int = 16787687

	KEY_braille_dots_12368 int = 16787623

	KEY_braille_dots_1237 int = 16787527

	KEY_braille_dots_12378 int = 16787655

	KEY_braille_dots_1238 int = 16787591

	KEY_braille_dots_124 int = 16787467

	KEY_braille_dots_1245 int = 16787483

	KEY_braille_dots_12456 int = 16787515

	KEY_braille_dots_124567 int = 16787579

	KEY_braille_dots_1245678 int = 16787707

	KEY_braille_dots_124568 int = 16787643

	KEY_braille_dots_12457 int = 16787547

	KEY_braille_dots_124578 int = 16787675

	KEY_braille_dots_12458 int = 16787611

	KEY_braille_dots_1246 int = 16787499

	KEY_braille_dots_12467 int = 16787563

	KEY_braille_dots_124678 int = 16787691

	KEY_braille_dots_12468 int = 16787627

	KEY_braille_dots_1247 int = 16787531

	KEY_braille_dots_12478 int = 16787659

	KEY_braille_dots_1248 int = 16787595

	KEY_braille_dots_125 int = 16787475

	KEY_braille_dots_1256 int = 16787507

	KEY_braille_dots_12567 int = 16787571

	KEY_braille_dots_125678 int = 16787699

	KEY_braille_dots_12568 int = 16787635

	KEY_braille_dots_1257 int = 16787539

	KEY_braille_dots_12578 int = 16787667

	KEY_braille_dots_1258 int = 16787603

	KEY_braille_dots_126 int = 16787491

	KEY_braille_dots_1267 int = 16787555

	KEY_braille_dots_12678 int = 16787683

	KEY_braille_dots_1268 int = 16787619

	KEY_braille_dots_127 int = 16787523

	KEY_braille_dots_1278 int = 16787651

	KEY_braille_dots_128 int = 16787587

	KEY_braille_dots_13 int = 16787461

	KEY_braille_dots_134 int = 16787469

	KEY_braille_dots_1345 int = 16787485

	KEY_braille_dots_13456 int = 16787517

	KEY_braille_dots_134567 int = 16787581

	KEY_braille_dots_1345678 int = 16787709

	KEY_braille_dots_134568 int = 16787645

	KEY_braille_dots_13457 int = 16787549

	KEY_braille_dots_134578 int = 16787677

	KEY_braille_dots_13458 int = 16787613

	KEY_braille_dots_1346 int = 16787501

	KEY_braille_dots_13467 int = 16787565

	KEY_braille_dots_134678 int = 16787693

	KEY_braille_dots_13468 int = 16787629

	KEY_braille_dots_1347 int = 16787533

	KEY_braille_dots_13478 int = 16787661

	KEY_braille_dots_1348 int = 16787597

	KEY_braille_dots_135 int = 16787477

	KEY_braille_dots_1356 int = 16787509

	KEY_braille_dots_13567 int = 16787573

	KEY_braille_dots_135678 int = 16787701

	KEY_braille_dots_13568 int = 16787637

	KEY_braille_dots_1357 int = 16787541

	KEY_braille_dots_13578 int = 16787669

	KEY_braille_dots_1358 int = 16787605

	KEY_braille_dots_136 int = 16787493

	KEY_braille_dots_1367 int = 16787557

	KEY_braille_dots_13678 int = 16787685

	KEY_braille_dots_1368 int = 16787621

	KEY_braille_dots_137 int = 16787525

	KEY_braille_dots_1378 int = 16787653

	KEY_braille_dots_138 int = 16787589

	KEY_braille_dots_14 int = 16787465

	KEY_braille_dots_145 int = 16787481

	KEY_braille_dots_1456 int = 16787513

	KEY_braille_dots_14567 int = 16787577

	KEY_braille_dots_145678 int = 16787705

	KEY_braille_dots_14568 int = 16787641

	KEY_braille_dots_1457 int = 16787545

	KEY_braille_dots_14578 int = 16787673

	KEY_braille_dots_1458 int = 16787609

	KEY_braille_dots_146 int = 16787497

	KEY_braille_dots_1467 int = 16787561

	KEY_braille_dots_14678 int = 16787689

	KEY_braille_dots_1468 int = 16787625

	KEY_braille_dots_147 int = 16787529

	KEY_braille_dots_1478 int = 16787657

	KEY_braille_dots_148 int = 16787593

	KEY_braille_dots_15 int = 16787473

	KEY_braille_dots_156 int = 16787505

	KEY_braille_dots_1567 int = 16787569

	KEY_braille_dots_15678 int = 16787697

	KEY_braille_dots_1568 int = 16787633

	KEY_braille_dots_157 int = 16787537

	KEY_braille_dots_1578 int = 16787665

	KEY_braille_dots_158 int = 16787601

	KEY_braille_dots_16 int = 16787489

	KEY_braille_dots_167 int = 16787553

	KEY_braille_dots_1678 int = 16787681

	KEY_braille_dots_168 int = 16787617

	KEY_braille_dots_17 int = 16787521

	KEY_braille_dots_178 int = 16787649

	KEY_braille_dots_18 int = 16787585

	KEY_braille_dots_2 int = 16787458

	KEY_braille_dots_23 int = 16787462

	KEY_braille_dots_234 int = 16787470

	KEY_braille_dots_2345 int = 16787486

	KEY_braille_dots_23456 int = 16787518

	KEY_braille_dots_234567 int = 16787582

	KEY_braille_dots_2345678 int = 16787710

	KEY_braille_dots_234568 int = 16787646

	KEY_braille_dots_23457 int = 16787550

	KEY_braille_dots_234578 int = 16787678

	KEY_braille_dots_23458 int = 16787614

	KEY_braille_dots_2346 int = 16787502

	KEY_braille_dots_23467 int = 16787566

	KEY_braille_dots_234678 int = 16787694

	KEY_braille_dots_23468 int = 16787630

	KEY_braille_dots_2347 int = 16787534

	KEY_braille_dots_23478 int = 16787662

	KEY_braille_dots_2348 int = 16787598

	KEY_braille_dots_235 int = 16787478

	KEY_braille_dots_2356 int = 16787510

	KEY_braille_dots_23567 int = 16787574

	KEY_braille_dots_235678 int = 16787702

	KEY_braille_dots_23568 int = 16787638

	KEY_braille_dots_2357 int = 16787542

	KEY_braille_dots_23578 int = 16787670

	KEY_braille_dots_2358 int = 16787606

	KEY_braille_dots_236 int = 16787494

	KEY_braille_dots_2367 int = 16787558

	KEY_braille_dots_23678 int = 16787686

	KEY_braille_dots_2368 int = 16787622

	KEY_braille_dots_237 int = 16787526

	KEY_braille_dots_2378 int = 16787654

	KEY_braille_dots_238 int = 16787590

	KEY_braille_dots_24 int = 16787466

	KEY_braille_dots_245 int = 16787482

	KEY_braille_dots_2456 int = 16787514

	KEY_braille_dots_24567 int = 16787578

	KEY_braille_dots_245678 int = 16787706

	KEY_braille_dots_24568 int = 16787642

	KEY_braille_dots_2457 int = 16787546

	KEY_braille_dots_24578 int = 16787674

	KEY_braille_dots_2458 int = 16787610

	KEY_braille_dots_246 int = 16787498

	KEY_braille_dots_2467 int = 16787562

	KEY_braille_dots_24678 int = 16787690

	KEY_braille_dots_2468 int = 16787626

	KEY_braille_dots_247 int = 16787530

	KEY_braille_dots_2478 int = 16787658

	KEY_braille_dots_248 int = 16787594

	KEY_braille_dots_25 int = 16787474

	KEY_braille_dots_256 int = 16787506

	KEY_braille_dots_2567 int = 16787570

	KEY_braille_dots_25678 int = 16787698

	KEY_braille_dots_2568 int = 16787634

	KEY_braille_dots_257 int = 16787538

	KEY_braille_dots_2578 int = 16787666

	KEY_braille_dots_258 int = 16787602

	KEY_braille_dots_26 int = 16787490

	KEY_braille_dots_267 int = 16787554

	KEY_braille_dots_2678 int = 16787682

	KEY_braille_dots_268 int = 16787618

	KEY_braille_dots_27 int = 16787522

	KEY_braille_dots_278 int = 16787650

	KEY_braille_dots_28 int = 16787586

	KEY_braille_dots_3 int = 16787460

	KEY_braille_dots_34 int = 16787468

	KEY_braille_dots_345 int = 16787484

	KEY_braille_dots_3456 int = 16787516

	KEY_braille_dots_34567 int = 16787580

	KEY_braille_dots_345678 int = 16787708

	KEY_braille_dots_34568 int = 16787644

	KEY_braille_dots_3457 int = 16787548

	KEY_braille_dots_34578 int = 16787676

	KEY_braille_dots_3458 int = 16787612

	KEY_braille_dots_346 int = 16787500

	KEY_braille_dots_3467 int = 16787564

	KEY_braille_dots_34678 int = 16787692

	KEY_braille_dots_3468 int = 16787628

	KEY_braille_dots_347 int = 16787532

	KEY_braille_dots_3478 int = 16787660

	KEY_braille_dots_348 int = 16787596

	KEY_braille_dots_35 int = 16787476

	KEY_braille_dots_356 int = 16787508

	KEY_braille_dots_3567 int = 16787572

	KEY_braille_dots_35678 int = 16787700

	KEY_braille_dots_3568 int = 16787636

	KEY_braille_dots_357 int = 16787540

	KEY_braille_dots_3578 int = 16787668

	KEY_braille_dots_358 int = 16787604

	KEY_braille_dots_36 int = 16787492

	KEY_braille_dots_367 int = 16787556

	KEY_braille_dots_3678 int = 16787684

	KEY_braille_dots_368 int = 16787620

	KEY_braille_dots_37 int = 16787524

	KEY_braille_dots_378 int = 16787652

	KEY_braille_dots_38 int = 16787588

	KEY_braille_dots_4 int = 16787464

	KEY_braille_dots_45 int = 16787480

	KEY_braille_dots_456 int = 16787512

	KEY_braille_dots_4567 int = 16787576

	KEY_braille_dots_45678 int = 16787704

	KEY_braille_dots_4568 int = 16787640

	KEY_braille_dots_457 int = 16787544

	KEY_braille_dots_4578 int = 16787672

	KEY_braille_dots_458 int = 16787608

	KEY_braille_dots_46 int = 16787496

	KEY_braille_dots_467 int = 16787560

	KEY_braille_dots_4678 int = 16787688

	KEY_braille_dots_468 int = 16787624

	KEY_braille_dots_47 int = 16787528

	KEY_braille_dots_478 int = 16787656

	KEY_braille_dots_48 int = 16787592

	KEY_braille_dots_5 int = 16787472

	KEY_braille_dots_56 int = 16787504

	KEY_braille_dots_567 int = 16787568

	KEY_braille_dots_5678 int = 16787696

	KEY_braille_dots_568 int = 16787632

	KEY_braille_dots_57 int = 16787536

	KEY_braille_dots_578 int = 16787664

	KEY_braille_dots_58 int = 16787600

	KEY_braille_dots_6 int = 16787488

	KEY_braille_dots_67 int = 16787552

	KEY_braille_dots_678 int = 16787680

	KEY_braille_dots_68 int = 16787616

	KEY_braille_dots_7 int = 16787520

	KEY_braille_dots_78 int = 16787648

	KEY_braille_dots_8 int = 16787584

	KEY_breve int = 418

	KEY_brokenbar int = 166

	KEY_c int = 99

	KEY_c_h int = 65187

	KEY_cabovedot int = 741

	KEY_cacute int = 486

	KEY_careof int = 2744

	KEY_caret int = 2812

	KEY_caron int = 439

	KEY_ccaron int = 488

	KEY_ccedilla int = 231

	KEY_ccircumflex int = 742

	KEY_cedilla int = 184

	KEY_cent int = 162

	KEY_ch int = 65184

	KEY_checkerboard int = 2529

	KEY_checkmark int = 2803

	KEY_circle int = 3023

	KEY_club int = 2796

	KEY_colon int = 58

	KEY_combining_acute int = 16777985

	KEY_combining_belowdot int = 16778019

	KEY_combining_grave int = 16777984

	KEY_combining_hook int = 16777993

	KEY_combining_tilde int = 16777987

	KEY_comma int = 44

	KEY_containsas int = 16785931

	KEY_copyright int = 169

	KEY_cr int = 2532

	KEY_crossinglines int = 2542

	KEY_cuberoot int = 16785947

	KEY_currency int = 164

	KEY_cursor int = 2815

	KEY_d int = 100

	KEY_dabovedot int = 16784907

	KEY_dagger int = 2801

	KEY_dcaron int = 495

	KEY_dead_A int = 65153

	KEY_dead_E int = 65155

	KEY_dead_I int = 65157

	KEY_dead_O int = 65159

	KEY_dead_SCHWA int = 65163

	KEY_dead_U int = 65161

	KEY_dead_a int = 65152

	KEY_dead_abovecomma int = 65124

	KEY_dead_abovedot int = 65110

	KEY_dead_abovereversedcomma int = 65125

	KEY_dead_abovering int = 65112

	KEY_dead_aboveverticalline int = 65169

	KEY_dead_acute int = 65105

	KEY_dead_belowbreve int = 65131

	KEY_dead_belowcircumflex int = 65129

	KEY_dead_belowcomma int = 65134

	KEY_dead_belowdiaeresis int = 65132

	KEY_dead_belowdot int = 65120

	KEY_dead_belowmacron int = 65128

	KEY_dead_belowring int = 65127

	KEY_dead_belowtilde int = 65130

	KEY_dead_belowverticalline int = 65170

	KEY_dead_breve int = 65109

	KEY_dead_capital_schwa int = 65163

	KEY_dead_caron int = 65114

	KEY_dead_cedilla int = 65115

	KEY_dead_circumflex int = 65106

	KEY_dead_currency int = 65135

	KEY_dead_dasia int = 65125

	KEY_dead_diaeresis int = 65111

	KEY_dead_doubleacute int = 65113

	KEY_dead_doublegrave int = 65126

	KEY_dead_e int = 65154

	KEY_dead_grave int = 65104

	KEY_dead_greek int = 65164

	KEY_dead_hamza int = 65165

	KEY_dead_hook int = 65121

	KEY_dead_horn int = 65122

	KEY_dead_i int = 65156

	KEY_dead_invertedbreve int = 65133

	KEY_dead_iota int = 65117

	KEY_dead_longsolidusoverlay int = 65171

	KEY_dead_lowline int = 65168

	KEY_dead_macron int = 65108

	KEY_dead_o int = 65158

	KEY_dead_ogonek int = 65116

	KEY_dead_perispomeni int = 65107

	KEY_dead_psili int = 65124

	KEY_dead_schwa int = 65162

	KEY_dead_semivoiced_sound int = 65119

	KEY_dead_small_schwa int = 65162

	KEY_dead_stroke int = 65123

	KEY_dead_tilde int = 65107

	KEY_dead_u int = 65160

	KEY_dead_voiced_sound int = 65118

	KEY_decimalpoint int = 2749

	KEY_degree int = 176

	KEY_diaeresis int = 168

	KEY_diamond int = 2797

	KEY_digitspace int = 2725

	KEY_dintegral int = 16785964

	KEY_division int = 247

	KEY_dollar int = 36

	KEY_doubbaselinedot int = 2735

	KEY_doubleacute int = 445

	KEY_doubledagger int = 2802

	KEY_doublelowquotemark int = 2814

	KEY_downarrow int = 2302

	KEY_downcaret int = 2984

	KEY_downshoe int = 3030

	KEY_downstile int = 3012

	KEY_downtack int = 3010

	KEY_dstroke int = 496

	KEY_e int = 101

	KEY_eabovedot int = 1004

	KEY_eacute int = 233

	KEY_ebelowdot int = 16785081

	KEY_ecaron int = 492

	KEY_ecircumflex int = 234

	KEY_ecircumflexacute int = 16785087

	KEY_ecircumflexbelowdot int = 16785095

	KEY_ecircumflexgrave int = 16785089

	KEY_ecircumflexhook int = 16785091

	KEY_ecircumflextilde int = 16785093

	KEY_ediaeresis int = 235

	KEY_egrave int = 232

	KEY_ehook int = 16785083

	KEY_eightsubscript int = 16785544

	KEY_eightsuperior int = 16785528

	KEY_elementof int = 16785928

	KEY_ellipsis int = 2734

	KEY_em3space int = 2723

	KEY_em4space int = 2724

	KEY_emacron int = 954

	KEY_emdash int = 2729

	KEY_emfilledcircle int = 2782

	KEY_emfilledrect int = 2783

	KEY_emopencircle int = 2766

	KEY_emopenrectangle int = 2767

	KEY_emptyset int = 16785925

	KEY_emspace int = 2721

	KEY_endash int = 2730

	KEY_enfilledcircbullet int = 2790

	KEY_enfilledsqbullet int = 2791

	KEY_eng int = 959

	KEY_enopencircbullet int = 2784

	KEY_enopensquarebullet int = 2785

	KEY_enspace int = 2722

	KEY_eogonek int = 490

	KEY_equal int = 61

	KEY_eth int = 240

	KEY_etilde int = 16785085

	KEY_exclam int = 33

	KEY_exclamdown int = 161

	KEY_ezh int = 16777874

	KEY_f int = 102

	KEY_fabovedot int = 16784927

	KEY_femalesymbol int = 2808

	KEY_ff int = 2531

	KEY_figdash int = 2747

	KEY_filledlefttribullet int = 2780

	KEY_filledrectbullet int = 2779

	KEY_filledrighttribullet int = 2781

	KEY_filledtribulletdown int = 2793

	KEY_filledtribulletup int = 2792

	KEY_fiveeighths int = 2757

	KEY_fivesixths int = 2743

	KEY_fivesubscript int = 16785541

	KEY_fivesuperior int = 16785525

	KEY_fourfifths int = 2741

	KEY_foursubscript int = 16785540

	KEY_foursuperior int = 16785524

	KEY_fourthroot int = 16785948

	KEY_function int = 2294

	KEY_g int = 103

	KEY_gabovedot int = 757

	KEY_gbreve int = 699

	KEY_gcaron int = 16777703

	KEY_gcedilla int = 955

	KEY_gcircumflex int = 760

	KEY_grave int = 96

	KEY_greater int = 62

	KEY_greaterthanequal int = 2238

	KEY_guillemetleft int = 171

	KEY_guillemetright int = 187

	KEY_guillemotleft int = 171

	KEY_guillemotright int = 187

	KEY_h int = 104

	KEY_hairspace int = 2728

	KEY_hcircumflex int = 694

	KEY_heart int = 2798

	KEY_hebrew_aleph int = 3296

	KEY_hebrew_ayin int = 3314

	KEY_hebrew_bet int = 3297

	KEY_hebrew_beth int = 3297

	KEY_hebrew_chet int = 3303

	KEY_hebrew_dalet int = 3299

	KEY_hebrew_daleth int = 3299

	KEY_hebrew_doublelowline int = 3295

	KEY_hebrew_finalkaph int = 3306

	KEY_hebrew_finalmem int = 3309

	KEY_hebrew_finalnun int = 3311

	KEY_hebrew_finalpe int = 3315

	KEY_hebrew_finalzade int = 3317

	KEY_hebrew_finalzadi int = 3317

	KEY_hebrew_gimel int = 3298

	KEY_hebrew_gimmel int = 3298

	KEY_hebrew_he int = 3300

	KEY_hebrew_het int = 3303

	KEY_hebrew_kaph int = 3307

	KEY_hebrew_kuf int = 3319

	KEY_hebrew_lamed int = 3308

	KEY_hebrew_mem int = 3310

	KEY_hebrew_nun int = 3312

	KEY_hebrew_pe int = 3316

	KEY_hebrew_qoph int = 3319

	KEY_hebrew_resh int = 3320

	KEY_hebrew_samech int = 3313

	KEY_hebrew_samekh int = 3313

	KEY_hebrew_shin int = 3321

	KEY_hebrew_taf int = 3322

	KEY_hebrew_taw int = 3322

	KEY_hebrew_tet int = 3304

	KEY_hebrew_teth int = 3304

	KEY_hebrew_waw int = 3301

	KEY_hebrew_yod int = 3305

	KEY_hebrew_zade int = 3318

	KEY_hebrew_zadi int = 3318

	KEY_hebrew_zain int = 3302

	KEY_hebrew_zayin int = 3302

	KEY_hexagram int = 2778

	KEY_horizconnector int = 2211

	KEY_horizlinescan1 int = 2543

	KEY_horizlinescan3 int = 2544

	KEY_horizlinescan5 int = 2545

	KEY_horizlinescan7 int = 2546

	KEY_horizlinescan9 int = 2547

	KEY_hstroke int = 689

	KEY_ht int = 2530

	KEY_hyphen int = 173

	KEY_i int = 105

	KEY_iTouch int = 269025120

	KEY_iacute int = 237

	KEY_ibelowdot int = 16785099

	KEY_ibreve int = 16777517

	KEY_icircumflex int = 238

	KEY_identical int = 2255

	KEY_idiaeresis int = 239

	KEY_idotless int = 697

	KEY_ifonlyif int = 2253

	KEY_igrave int = 236

	KEY_ihook int = 16785097

	KEY_imacron int = 1007

	KEY_implies int = 2254

	KEY_includedin int = 2266

	KEY_includes int = 2267

	KEY_infinity int = 2242

	KEY_integral int = 2239

	KEY_intersection int = 2268

	KEY_iogonek int = 999

	KEY_itilde int = 949

	KEY_j int = 106

	KEY_jcircumflex int = 700

	KEY_jot int = 3018

	KEY_k int = 107

	KEY_kana_A int = 1201

	KEY_kana_CHI int = 1217

	KEY_kana_E int = 1204

	KEY_kana_FU int = 1228

	KEY_kana_HA int = 1226

	KEY_kana_HE int = 1229

	KEY_kana_HI int = 1227

	KEY_kana_HO int = 1230

	KEY_kana_HU int = 1228

	KEY_kana_I int = 1202

	KEY_kana_KA int = 1206

	KEY_kana_KE int = 1209

	KEY_kana_KI int = 1207

	KEY_kana_KO int = 1210

	KEY_kana_KU int = 1208

	KEY_kana_MA int = 1231

	KEY_kana_ME int = 1234

	KEY_kana_MI int = 1232

	KEY_kana_MO int = 1235

	KEY_kana_MU int = 1233

	KEY_kana_N int = 1245

	KEY_kana_NA int = 1221

	KEY_kana_NE int = 1224

	KEY_kana_NI int = 1222

	KEY_kana_NO int = 1225

	KEY_kana_NU int = 1223

	KEY_kana_O int = 1205

	KEY_kana_RA int = 1239

	KEY_kana_RE int = 1242

	KEY_kana_RI int = 1240

	KEY_kana_RO int = 1243

	KEY_kana_RU int = 1241

	KEY_kana_SA int = 1211

	KEY_kana_SE int = 1214

	KEY_kana_SHI int = 1212

	KEY_kana_SO int = 1215

	KEY_kana_SU int = 1213

	KEY_kana_TA int = 1216

	KEY_kana_TE int = 1219

	KEY_kana_TI int = 1217

	KEY_kana_TO int = 1220

	KEY_kana_TSU int = 1218

	KEY_kana_TU int = 1218

	KEY_kana_U int = 1203

	KEY_kana_WA int = 1244

	KEY_kana_WO int = 1190

	KEY_kana_YA int = 1236

	KEY_kana_YO int = 1238

	KEY_kana_YU int = 1237

	KEY_kana_a int = 1191

	KEY_kana_closingbracket int = 1187

	KEY_kana_comma int = 1188

	KEY_kana_conjunctive int = 1189

	KEY_kana_e int = 1194

	KEY_kana_fullstop int = 1185

	KEY_kana_i int = 1192

	KEY_kana_middledot int = 1189

	KEY_kana_o int = 1195

	KEY_kana_openingbracket int = 1186

	KEY_kana_switch int = 65406

	KEY_kana_tsu int = 1199

	KEY_kana_tu int = 1199

	KEY_kana_u int = 1193

	KEY_kana_ya int = 1196

	KEY_kana_yo int = 1198

	KEY_kana_yu int = 1197

	KEY_kappa int = 930

	KEY_kcedilla int = 1011

	KEY_kra int = 930

	KEY_l int = 108

	KEY_lacute int = 485

	KEY_latincross int = 2777

	KEY_lbelowdot int = 16784951

	KEY_lcaron int = 437

	KEY_lcedilla int = 950

	KEY_leftanglebracket int = 2748

	KEY_leftarrow int = 2299

	KEY_leftcaret int = 2979

	KEY_leftdoublequotemark int = 2770

	KEY_leftmiddlecurlybrace int = 2223

	KEY_leftopentriangle int = 2764

	KEY_leftpointer int = 2794

	KEY_leftradical int = 2209

	KEY_leftshoe int = 3034

	KEY_leftsinglequotemark int = 2768

	KEY_leftt int = 2548

	KEY_lefttack int = 3036

	KEY_less int = 60

	KEY_lessthanequal int = 2236

	KEY_lf int = 2533

	KEY_logicaland int = 2270

	KEY_logicalor int = 2271

	KEY_lowleftcorner int = 2541

	KEY_lowrightcorner int = 2538

	KEY_lstroke int = 435

	KEY_m int = 109

	KEY_mabovedot int = 16784961

	KEY_macron int = 175

	KEY_malesymbol int = 2807

	KEY_maltesecross int = 2800

	KEY_marker int = 2751

	KEY_masculine int = 186

	KEY_minus int = 45

	KEY_minutes int = 2774

	KEY_mu int = 181

	KEY_multiply int = 215

	KEY_musicalflat int = 2806

	KEY_musicalsharp int = 2805

	KEY_n int = 110

	KEY_nabla int = 2245

	KEY_nacute int = 497

	KEY_ncaron int = 498

	KEY_ncedilla int = 1009

	KEY_ninesubscript int = 16785545

	KEY_ninesuperior int = 16785529

	KEY_nl int = 2536

	KEY_nobreakspace int = 160

	KEY_notapproxeq int = 16785991

	KEY_notelementof int = 16785929

	KEY_notequal int = 2237

	KEY_notidentical int = 16786018

	KEY_notsign int = 172

	KEY_ntilde int = 241

	KEY_numbersign int = 35

	KEY_numerosign int = 1712

	KEY_o int = 111

	KEY_oacute int = 243

	KEY_obarred int = 16777845

	KEY_obelowdot int = 16785101

	KEY_ocaron int = 16777682

	KEY_ocircumflex int = 244

	KEY_ocircumflexacute int = 16785105

	KEY_ocircumflexbelowdot int = 16785113

	KEY_ocircumflexgrave int = 16785107

	KEY_ocircumflexhook int = 16785109

	KEY_ocircumflextilde int = 16785111

	KEY_odiaeresis int = 246

	KEY_odoubleacute int = 501

	KEY_oe int = 5053

	KEY_ogonek int = 434

	KEY_ograve int = 242

	KEY_ohook int = 16785103

	KEY_ohorn int = 16777633

	KEY_ohornacute int = 16785115

	KEY_ohornbelowdot int = 16785123

	KEY_ohorngrave int = 16785117

	KEY_ohornhook int = 16785119

	KEY_ohorntilde int = 16785121

	KEY_omacron int = 1010

	KEY_oneeighth int = 2755

	KEY_onefifth int = 2738

	KEY_onehalf int = 189

	KEY_onequarter int = 188

	KEY_onesixth int = 2742

	KEY_onesubscript int = 16785537

	KEY_onesuperior int = 185

	KEY_onethird int = 2736

	KEY_ooblique int = 248

	KEY_openrectbullet int = 2786

	KEY_openstar int = 2789

	KEY_opentribulletdown int = 2788

	KEY_opentribulletup int = 2787

	KEY_ordfeminine int = 170

	KEY_ordmasculine int = 186

	KEY_oslash int = 248

	KEY_otilde int = 245

	KEY_overbar int = 3008

	KEY_overline int = 1150

	KEY_p int = 112

	KEY_pabovedot int = 16784983

	KEY_paragraph int = 182

	KEY_parenleft int = 40

	KEY_parenright int = 41

	KEY_partdifferential int = 16785922

	KEY_partialderivative int = 2287

	KEY_percent int = 37

	KEY_period int = 46

	KEY_periodcentered int = 183

	KEY_permille int = 2773

	KEY_phonographcopyright int = 2811

	KEY_plus int = 43

	KEY_plusminus int = 177

	KEY_prescription int = 2772

	KEY_prolongedsound int = 1200

	KEY_punctspace int = 2726

	KEY_q int = 113

	KEY_quad int = 3020

	KEY_question int = 63

	KEY_questiondown int = 191

	KEY_quotedbl int = 34

	KEY_quoteleft int = 96

	KEY_quoteright int = 39

	KEY_r int = 114

	KEY_racute int = 480

	KEY_radical int = 2262

	KEY_rcaron int = 504

	KEY_rcedilla int = 947

	KEY_registered int = 174

	KEY_rightanglebracket int = 2750

	KEY_rightarrow int = 2301

	KEY_rightcaret int = 2982

	KEY_rightdoublequotemark int = 2771

	KEY_rightmiddlecurlybrace int = 2224

	KEY_rightmiddlesummation int = 2231

	KEY_rightopentriangle int = 2765

	KEY_rightpointer int = 2795

	KEY_rightshoe int = 3032

	KEY_rightsinglequotemark int = 2769

	KEY_rightt int = 2549

	KEY_righttack int = 3068

	KEY_s int = 115

	KEY_sabovedot int = 16784993

	KEY_sacute int = 438

	KEY_scaron int = 441

	KEY_scedilla int = 442

	KEY_schwa int = 16777817

	KEY_scircumflex int = 766

	KEY_script_switch int = 65406

	KEY_seconds int = 2775

	KEY_section int = 167

	KEY_semicolon int = 59

	KEY_semivoicedsound int = 1247

	KEY_seveneighths int = 2758

	KEY_sevensubscript int = 16785543

	KEY_sevensuperior int = 16785527

	KEY_signaturemark int = 2762

	KEY_signifblank int = 2732

	KEY_similarequal int = 2249

	KEY_singlelowquotemark int = 2813

	KEY_sixsubscript int = 16785542

	KEY_sixsuperior int = 16785526

	KEY_slash int = 47

	KEY_soliddiamond int = 2528

	KEY_space int = 32

	KEY_squareroot int = 16785946

	KEY_ssharp int = 223

	KEY_sterling int = 163

	KEY_stricteq int = 16786019

	KEY_t int = 116

	KEY_tabovedot int = 16785003

	KEY_tcaron int = 443

	KEY_tcedilla int = 510

	KEY_telephone int = 2809

	KEY_telephonerecorder int = 2810

	KEY_therefore int = 2240

	KEY_thinspace int = 2727

	KEY_thorn int = 254

	KEY_threeeighths int = 2756

	KEY_threefifths int = 2740

	KEY_threequarters int = 190

	KEY_threesubscript int = 16785539

	KEY_threesuperior int = 179

	KEY_tintegral int = 16785965

	KEY_topintegral int = 2212

	KEY_topleftparens int = 2219

	KEY_topleftradical int = 2210

	KEY_topleftsqbracket int = 2215

	KEY_topleftsummation int = 2225

	KEY_toprightparens int = 2221

	KEY_toprightsqbracket int = 2217

	KEY_toprightsummation int = 2229

	KEY_topt int = 2551

	KEY_topvertsummationconnector int = 2227

	KEY_trademark int = 2761

	KEY_trademarkincircle int = 2763

	KEY_tslash int = 956

	KEY_twofifths int = 2739

	KEY_twosubscript int = 16785538

	KEY_twosuperior int = 178

	KEY_twothirds int = 2737

	KEY_u int = 117

	KEY_uacute int = 250

	KEY_ubelowdot int = 16785125

	KEY_ubreve int = 765

	KEY_ucircumflex int = 251

	KEY_udiaeresis int = 252

	KEY_udoubleacute int = 507

	KEY_ugrave int = 249

	KEY_uhook int = 16785127

	KEY_uhorn int = 16777648

	KEY_uhornacute int = 16785129

	KEY_uhornbelowdot int = 16785137

	KEY_uhorngrave int = 16785131

	KEY_uhornhook int = 16785133

	KEY_uhorntilde int = 16785135

	KEY_umacron int = 1022

	KEY_underbar int = 3014

	KEY_underscore int = 95

	KEY_union int = 2269

	KEY_uogonek int = 1017

	KEY_uparrow int = 2300

	KEY_upcaret int = 2985

	KEY_upleftcorner int = 2540

	KEY_uprightcorner int = 2539

	KEY_upshoe int = 3011

	KEY_upstile int = 3027

	KEY_uptack int = 3022

	KEY_uring int = 505

	KEY_utilde int = 1021

	KEY_v int = 118

	KEY_variation int = 2241

	KEY_vertbar int = 2552

	KEY_vertconnector int = 2214

	KEY_voicedsound int = 1246

	KEY_vt int = 2537

	KEY_w int = 119

	KEY_wacute int = 16785027

	KEY_wcircumflex int = 16777589

	KEY_wdiaeresis int = 16785029

	KEY_wgrave int = 16785025

	KEY_x int = 120

	KEY_xabovedot int = 16785035

	KEY_y int = 121

	KEY_yacute int = 253

	KEY_ybelowdot int = 16785141

	KEY_ycircumflex int = 16777591

	KEY_ydiaeresis int = 255

	KEY_yen int = 165

	KEY_ygrave int = 16785139

	KEY_yhook int = 16785143

	KEY_ytilde int = 16785145

	KEY_z int = 122

	KEY_zabovedot int = 447

	KEY_zacute int = 444

	KEY_zcaron int = 446

	KEY_zerosubscript int = 16785536

	KEY_zerosuperior int = 16785520

	KEY_zstroke int = 16777654
)
View Source
const (
	// Represents the current time, and can be used anywhere a time is expected.
	CURRENT_TIME int = 0
)

Variables

View Source
var (
	XGdkDevicePadGetFeatureGroup func(uintptr, DevicePadFeature, int) int
	XGdkDevicePadGetGroupNModes  func(uintptr, int) int
	XGdkDevicePadGetNFeatures    func(uintptr, DevicePadFeature) int
	XGdkDevicePadGetNGroups      func(uintptr) int
)
View Source
var (
	XGdkPaintableComputeConcreteSize     func(uintptr, float64, float64, float64, float64, *float64, *float64)
	XGdkPaintableGetCurrentImage         func(uintptr) uintptr
	XGdkPaintableGetFlags                func(uintptr) PaintableFlags
	XGdkPaintableGetIntrinsicAspectRatio func(uintptr) float64
	XGdkPaintableGetIntrinsicHeight      func(uintptr) int
	XGdkPaintableGetIntrinsicWidth       func(uintptr) int
	XGdkPaintableInvalidateContents      func(uintptr)
	XGdkPaintableInvalidateSize          func(uintptr)
	XGdkPaintableSnapshot                func(uintptr, uintptr, float64, float64)
)
View Source
var (
	XGdkPopupGetAutohide      func(uintptr) bool
	XGdkPopupGetParent        func(uintptr) uintptr
	XGdkPopupGetPositionX     func(uintptr) int
	XGdkPopupGetPositionY     func(uintptr) int
	XGdkPopupGetRectAnchor    func(uintptr) Gravity
	XGdkPopupGetSurfaceAnchor func(uintptr) Gravity
	XGdkPopupPresent          func(uintptr, int, int, *PopupLayout) bool
)
View Source
var (
	XGdkToplevelBeginMove               func(uintptr, uintptr, int, float64, float64, uint32)
	XGdkToplevelBeginResize             func(uintptr, SurfaceEdge, uintptr, int, float64, float64, uint32)
	XGdkToplevelFocus                   func(uintptr, uint32)
	XGdkToplevelGetCapabilities         func(uintptr) ToplevelCapabilities
	XGdkToplevelGetGravity              func(uintptr) Gravity
	XGdkToplevelGetState                func(uintptr) ToplevelState
	XGdkToplevelInhibitSystemShortcuts  func(uintptr, uintptr)
	XGdkToplevelLower                   func(uintptr) bool
	XGdkToplevelMinimize                func(uintptr) bool
	XGdkToplevelPresent                 func(uintptr, *ToplevelLayout)
	XGdkToplevelRestoreSystemShortcuts  func(uintptr)
	XGdkToplevelSetDecorated            func(uintptr, bool)
	XGdkToplevelSetDeletable            func(uintptr, bool)
	XGdkToplevelSetGravity              func(uintptr, Gravity)
	XGdkToplevelSetIconList             func(uintptr, *glib.List)
	XGdkToplevelSetModal                func(uintptr, bool)
	XGdkToplevelSetStartupId            func(uintptr, string)
	XGdkToplevelSetTitle                func(uintptr, string)
	XGdkToplevelSetTransientFor         func(uintptr, uintptr)
	XGdkToplevelShowWindowMenu          func(uintptr, uintptr) bool
	XGdkToplevelSupportsEdgeConstraints func(uintptr) bool
	XGdkToplevelTitlebarGesture         func(uintptr, TitlebarGesture) bool
)
View Source
var XGdkDragSurfacePresent func(uintptr, int, int) bool

Functions

func AnchorHintsGLibType

func AnchorHintsGLibType() types.GType

func AppLaunchContextGLibType

func AppLaunchContextGLibType() types.GType

func AxisFlagsGLibType

func AxisFlagsGLibType() types.GType

func AxisUseGLibType

func AxisUseGLibType() types.GType

func ButtonEventGLibType

func ButtonEventGLibType() types.GType

func CairoContextGLibType

func CairoContextGLibType() types.GType

func CairoDrawFromGl

func CairoDrawFromGl(CrVar *cairo.Context, SurfaceVar *Surface, SourceVar int, SourceTypeVar int, BufferScaleVar int, XVar int, YVar int, WidthVar int, HeightVar int)

Draws GL content onto a cairo context.

It takes a render buffer ID (@source_type == GL_RENDERBUFFER) or a texture id (@source_type == GL_TEXTURE) and draws it onto @cr with an OVER operation, respecting the current clip. The top left corner of the rectangle specified by @x, @y, @width and @height will be drawn at the current (0,0) position of the `cairo_t`.

This will work for *all* `cairo_t`, as long as @surface 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 @cr 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.

func CairoRectangle

func CairoRectangle(CrVar *cairo.Context, RectangleVar *Rectangle)

Adds the given rectangle to the current path of @cr.

func CairoRegion

func CairoRegion(CrVar *cairo.Context, RegionVar *cairo.Region)

Adds the given region to the current path of @cr.

func CairoRegionCreateFromSurface

func CairoRegionCreateFromSurface(SurfaceVar *cairo.Surface) *cairo.Region

Creates region that covers the area where the given @surface is more than 50% opaque.

This function takes into account device offsets that might be set with cairo_surface_set_device_offset().

func CairoSetSourcePixbuf

func CairoSetSourcePixbuf(CrVar *cairo.Context, PixbufVar *gdkpixbuf.Pixbuf, PixbufXVar float64, PixbufYVar float64)

Sets the given pixbuf as the source pattern for @cr.

The pattern has an extend mode of %CAIRO_EXTEND_NONE and is aligned so that the origin of @pixbuf is @pixbuf_x, @pixbuf_y.

func CairoSetSourceRgba

func CairoSetSourceRgba(CrVar *cairo.Context, RgbaVar *RGBA)

Sets the specified `GdkRGBA` as the source color of @cr.

func CicpParamsGLibType

func CicpParamsGLibType() types.GType

func CicpRangeGLibType

func CicpRangeGLibType() types.GType

func ClipboardGLibType

func ClipboardGLibType() types.GType

func ColorChannelGLibType added in v0.5.0

func ColorChannelGLibType() types.GType

func ColorStateGLibType

func ColorStateGLibType() types.GType

func ContentDeserializeAsync

func ContentDeserializeAsync(StreamVar *gio.InputStream, MimeTypeVar string, TypeVar types.GType, IoPriorityVar int, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr)

Reads content from the given input stream and deserialize it, asynchronously.

The default I/O priority is `G_PRIORITY_DEFAULT` (i.e. 0), and lower numbers indicate a higher priority.

func ContentDeserializeFinish

func ContentDeserializeFinish(ResultVar gio.AsyncResult, ValueVar *gobject.Value) (bool, error)

Finishes a content deserialization operation.

func ContentDeserializerGLibType

func ContentDeserializerGLibType() types.GType

func ContentFormatsBuilderGLibType

func ContentFormatsBuilderGLibType() types.GType

func ContentFormatsGLibType

func ContentFormatsGLibType() types.GType

func ContentProviderGLibType

func ContentProviderGLibType() types.GType

func ContentRegisterDeserializer

func ContentRegisterDeserializer(MimeTypeVar string, TypeVar types.GType, DeserializeVar *ContentDeserializeFunc, DataVar uintptr, NotifyVar *glib.DestroyNotify)

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.

func ContentRegisterSerializer

func ContentRegisterSerializer(TypeVar types.GType, MimeTypeVar string, SerializeVar *ContentSerializeFunc, DataVar uintptr, NotifyVar *glib.DestroyNotify)

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.

func ContentSerializeAsync

func ContentSerializeAsync(StreamVar *gio.OutputStream, MimeTypeVar string, ValueVar *gobject.Value, IoPriorityVar int, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr)

Serialize content and write it to the given output stream, asynchronously.

The default I/O priority is %G_PRIORITY_DEFAULT (i.e. 0), and lower numbers indicate a higher priority.

func ContentSerializeFinish

func ContentSerializeFinish(ResultVar gio.AsyncResult) (bool, error)

Finishes a content serialization operation.

func ContentSerializerGLibType

func ContentSerializerGLibType() types.GType

func CrossingEventGLibType

func CrossingEventGLibType() types.GType

func CrossingModeGLibType

func CrossingModeGLibType() types.GType

func CursorGLibType

func CursorGLibType() types.GType

func DNDEventGLibType

func DNDEventGLibType() types.GType

func DeleteEventGLibType

func DeleteEventGLibType() types.GType

func DeviceGLibType

func DeviceGLibType() types.GType

func DevicePadFeatureGLibType

func DevicePadFeatureGLibType() types.GType

func DevicePadGLibType

func DevicePadGLibType() types.GType

func DeviceToolGLibType

func DeviceToolGLibType() types.GType

func DeviceToolTypeGLibType

func DeviceToolTypeGLibType() types.GType

func DisplayGLibType

func DisplayGLibType() types.GType

func DisplayManagerGLibType

func DisplayManagerGLibType() types.GType

func DmabufErrorGLibType

func DmabufErrorGLibType() types.GType

func DmabufErrorQuark

func DmabufErrorQuark() glib.Quark

Registers an error quark for [class@Gdk.DmabufTexture] errors.

func DmabufFormatsGLibType

func DmabufFormatsGLibType() types.GType

func DmabufTextureBuilderGLibType

func DmabufTextureBuilderGLibType() types.GType

func DmabufTextureGLibType

func DmabufTextureGLibType() types.GType

func DragActionGLibType

func DragActionGLibType() types.GType

func DragActionIsUnique

func DragActionIsUnique(ActionVar DragAction) bool

Checks if @action represents a single action or includes multiple actions.

When @action is `GDK_ACTION_NONE` - ie no action was given, `TRUE` is returned.

func DragCancelReasonGLibType

func DragCancelReasonGLibType() types.GType

func DragGLibType

func DragGLibType() types.GType

func DragSurfaceGLibType

func DragSurfaceGLibType() types.GType

func DragSurfaceSizeGLibType

func DragSurfaceSizeGLibType() types.GType

func DrawContextGLibType

func DrawContextGLibType() types.GType

func DropGLibType

func DropGLibType() types.GType

func EventGLibType

func EventGLibType() types.GType

func EventSequenceGLibType

func EventSequenceGLibType() types.GType

func EventTypeGLibType

func EventTypeGLibType() types.GType

func EventsGetAngle

func EventsGetAngle(Event1Var *Event, Event2Var *Event, AngleVar *float64) bool

Returns the relative angle from @event1 to @event2.

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 %FALSE.

func EventsGetCenter

func EventsGetCenter(Event1Var *Event, Event2Var *Event, XVar *float64, YVar *float64) bool

Returns the point halfway between the events' positions.

This assumes that both events have X/Y information. If not, this function returns %FALSE.

func EventsGetDistance

func EventsGetDistance(Event1Var *Event, Event2Var *Event, DistanceVar *float64) bool

Returns the distance between the event locations.

This assumes that both events have X/Y information. If not, this function returns %FALSE.

func FileListGLibType

func FileListGLibType() types.GType

func FocusEventGLibType

func FocusEventGLibType() types.GType

func FrameClockGLibType

func FrameClockGLibType() types.GType

func FrameClockPhaseGLibType

func FrameClockPhaseGLibType() types.GType

func FrameTimingsGLibType

func FrameTimingsGLibType() types.GType

func FullscreenModeGLibType

func FullscreenModeGLibType() types.GType

func GLAPIGLibType

func GLAPIGLibType() types.GType

func GLContextClearCurrent

func GLContextClearCurrent()

Clears the current `GdkGLContext`.

Any OpenGL call after this function returns will be ignored until [method@Gdk.GLContext.make_current] is called.

func GLContextGLibType

func GLContextGLibType() types.GType

func GLErrorGLibType

func GLErrorGLibType() types.GType

func GLTextureBuilderGLibType

func GLTextureBuilderGLibType() types.GType

func GLTextureGLibType

func GLTextureGLibType() types.GType

func GlErrorQuark

func GlErrorQuark() glib.Quark

Registers an error quark for [class@Gdk.GLContext] errors.

func GrabBrokenEventGLibType

func GrabBrokenEventGLibType() types.GType

func GravityGLibType

func GravityGLibType() types.GType

func InputSourceGLibType

func InputSourceGLibType() types.GType

func InternMimeType

func InternMimeType(StringVar string) string

Canonicalizes the given mime type and interns the result.

If @string is not a valid mime type, %NULL is returned instead. See RFC 2048 for the syntax if mime types.

func KeyEventGLibType

func KeyEventGLibType() types.GType

func KeyMatchGLibType

func KeyMatchGLibType() types.GType

func KeyvalConvertCase

func KeyvalConvertCase(SymbolVar uint, LowerVar *uint, UpperVar *uint)

Obtains the upper- and lower-case versions of the keyval @symbol.

Examples of keyvals are `GDK_KEY_a`, `GDK_KEY_Enter`, `GDK_KEY_F1`, etc.

func KeyvalFromName

func KeyvalFromName(KeyvalNameVar string) uint

Converts a key name to a key value.

The names are the same as those in the `gdk/gdkkeysyms.h` header file but without the leading “GDK_KEY_”.

func KeyvalIsLower

func KeyvalIsLower(KeyvalVar uint) bool

Returns true if the given key value is in lower case.

func KeyvalIsUpper

func KeyvalIsUpper(KeyvalVar uint) bool

Returns true if the given key value is in upper case.

func KeyvalName

func KeyvalName(KeyvalVar uint) string

Converts a key value into a symbolic name.

The names are the same as those in the `gdk/gdkkeysyms.h` header file but without the leading “GDK_KEY_”.

func KeyvalToLower

func KeyvalToLower(KeyvalVar uint) uint

Converts a key value to lower case, if applicable.

func KeyvalToUnicode

func KeyvalToUnicode(KeyvalVar uint) uint32

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 `GDK_KEY_KP_Decimal`.

func KeyvalToUpper

func KeyvalToUpper(KeyvalVar uint) uint

Converts a key value to upper case, if applicable.

func MemoryFormatGLibType

func MemoryFormatGLibType() types.GType

func MemoryTextureBuilderGLibType

func MemoryTextureBuilderGLibType() types.GType

func MemoryTextureGLibType

func MemoryTextureGLibType() types.GType

func ModifierTypeGLibType

func ModifierTypeGLibType() types.GType

func MonitorGLibType

func MonitorGLibType() types.GType

func MotionEventGLibType

func MotionEventGLibType() types.GType

func NotifyTypeGLibType

func NotifyTypeGLibType() types.GType

func PadEventGLibType

func PadEventGLibType() types.GType

func PaintableFlagsGLibType

func PaintableFlagsGLibType() types.GType

func PaintableGLibType

func PaintableGLibType() types.GType

func PangoLayoutGetClipRegion

func PangoLayoutGetClipRegion(LayoutVar *pango.Layout, XOriginVar int, YOriginVar int, IndexRangesVar int, NRangesVar int) *cairo.Region

Obtains a clip region which contains the areas where the given ranges of text would be drawn.

@x_origin and @y_origin are the top left point to center the layout. @index_ranges should contain ranges of bytes in the layout’s text.

Note that the regions returned correspond to logical extents of the text ranges, not ink extents. So the drawn layout may in fact touch areas out of the clip region. The clip region is mainly useful for highlightling parts of text, such as when text is selected.

func PangoLayoutLineGetClipRegion

func PangoLayoutLineGetClipRegion(LineVar *pango.LayoutLine, XOriginVar int, YOriginVar int, IndexRangesVar []int, NRangesVar int) *cairo.Region

Obtains a clip region which contains the areas where the given ranges of text would be drawn.

@x_origin and @y_origin are the top left position of the layout. @index_ranges should contain ranges of bytes in the layout’s text. The clip region will include space to the left or right of the line (to the layout bounding box) if you have indexes above or below the indexes contained inside the line. This is to draw the selection all the way to the side of the layout. However, the clip region is in line coordinates, not layout coordinates.

Note that the regions returned correspond to logical extents of the text ranges, not ink extents. So the drawn line may in fact touch areas out of the clip region. The clip region is mainly useful for highlightling parts of text, such as when text is selected.

func PixbufGetFromSurface

func PixbufGetFromSurface(SurfaceVar *cairo.Surface, SrcXVar int, SrcYVar int, WidthVar int, HeightVar int) *gdkpixbuf.Pixbuf

Transfers image data from a `cairo_surface_t` and converts it to a `GdkPixbuf`.

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 @surface contains one.

func PixbufGetFromTexture

func PixbufGetFromTexture(TextureVar *Texture) *gdkpixbuf.Pixbuf

Creates a new pixbuf from @texture.

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.

func PopupGLibType

func PopupGLibType() types.GType

func PopupLayoutGLibType

func PopupLayoutGLibType() types.GType

func ProximityEventGLibType

func ProximityEventGLibType() types.GType

func RGBAGLibType

func RGBAGLibType() types.GType

func RectangleGLibType

func RectangleGLibType() types.GType

func ScrollDirectionGLibType

func ScrollDirectionGLibType() types.GType

func ScrollEventGLibType

func ScrollEventGLibType() types.GType

func ScrollRelativeDirectionGLibType

func ScrollRelativeDirectionGLibType() types.GType

func ScrollUnitGLibType

func ScrollUnitGLibType() types.GType

func SeatCapabilitiesGLibType

func SeatCapabilitiesGLibType() types.GType

func SeatGLibType

func SeatGLibType() types.GType

func SetAllowedBackends

func SetAllowedBackends(BackendsVar string)

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:

```c gdk_set_allowed_backends ("wayland,macos,*"); ```

instructs GDK to try the Wayland backend first, followed by the MacOs backend, and then all others.

If the `GDK_BACKEND` 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:

  • `broadway`
  • `macos`
  • `wayland`.
  • `win32`
  • `x11`

You can also include a `*` in the list to try all remaining backends.

This call must happen prior to functions that open a display, such as [func@Gdk.Display.open], `gtk_init()`, or `gtk_init_check()` in order to take effect.

func SnapshotGLibType

func SnapshotGLibType() types.GType

func SubpixelLayoutGLibType

func SubpixelLayoutGLibType() types.GType

func SurfaceEdgeGLibType

func SurfaceEdgeGLibType() types.GType

func SurfaceGLibType

func SurfaceGLibType() types.GType

func TextureDownloaderGLibType

func TextureDownloaderGLibType() types.GType

func TextureErrorGLibType

func TextureErrorGLibType() types.GType

func TextureErrorQuark

func TextureErrorQuark() glib.Quark

Registers an error quark for [class@Gdk.Texture] errors.

func TextureGLibType

func TextureGLibType() types.GType

func TitlebarGestureGLibType

func TitlebarGestureGLibType() types.GType

func ToplevelCapabilitiesGLibType

func ToplevelCapabilitiesGLibType() types.GType

func ToplevelGLibType

func ToplevelGLibType() types.GType

func ToplevelLayoutGLibType

func ToplevelLayoutGLibType() types.GType

func ToplevelSizeGLibType

func ToplevelSizeGLibType() types.GType

func ToplevelStateGLibType

func ToplevelStateGLibType() types.GType

func TouchEventGLibType

func TouchEventGLibType() types.GType

func TouchpadEventGLibType

func TouchpadEventGLibType() types.GType

func TouchpadGesturePhaseGLibType

func TouchpadGesturePhaseGLibType() types.GType

func UnicodeToKeyval

func UnicodeToKeyval(WcVar uint32) uint

Converts from a Unicode character to a key symbol.

func VulkanContextGLibType

func VulkanContextGLibType() types.GType

func VulkanErrorGLibType

func VulkanErrorGLibType() types.GType

func VulkanErrorQuark

func VulkanErrorQuark() glib.Quark

Registers an error quark for [class@Gdk.VulkanContext] errors.

Types

type AnchorHints

type AnchorHints int

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, %GDK_ANCHOR_FLIP_X will replace %GDK_GRAVITY_NORTH_WEST with %GDK_GRAVITY_NORTH_EAST and vice versa if the surface extends beyond the left or right edges of the monitor.

If %GDK_ANCHOR_SLIDE_X is set, the surface can be shifted horizontally to fit on-screen. If %GDK_ANCHOR_RESIZE_X 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.

const (

	// allow flipping anchors horizontally
	AnchorFlipXValue AnchorHints = 1
	// allow flipping anchors vertically
	AnchorFlipYValue AnchorHints = 2
	// allow sliding surface horizontally
	AnchorSlideXValue AnchorHints = 4
	// allow sliding surface vertically
	AnchorSlideYValue AnchorHints = 8
	// allow resizing surface horizontally
	AnchorResizeXValue AnchorHints = 16
	// allow resizing surface vertically
	AnchorResizeYValue AnchorHints = 32
	// allow flipping anchors on both axes
	AnchorFlipValue AnchorHints = 3
	// allow sliding surface on both axes
	AnchorSlideValue AnchorHints = 12
	// allow resizing surface on both axes
	AnchorResizeValue AnchorHints = 48
)

type AppLaunchContext

type AppLaunchContext struct {
	gio.AppLaunchContext
}

Handles launching an application in a graphical context.

It is an implementation of `GAppLaunchContext` that provides startup notification and allows to launch applications on a specific workspace.

## Launching an application

```c 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, &error))

g_warning ("Launching failed: %s\n", error->message);

g_object_unref (context); ```

func AppLaunchContextNewFromInternalPtr

func AppLaunchContextNewFromInternalPtr(ptr uintptr) *AppLaunchContext

func (*AppLaunchContext) GetDisplay

func (x *AppLaunchContext) GetDisplay() *Display

Gets the `GdkDisplay` that @context is for.

func (*AppLaunchContext) GoPointer

func (c *AppLaunchContext) GoPointer() uintptr

func (*AppLaunchContext) SetDesktop

func (x *AppLaunchContext) SetDesktop(DesktopVar int)

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 [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec). Specifically this sets the `_NET_WM_DESKTOP` property described in that spec.

This only works when using the X11 backend.

When the workspace is not specified or @desktop is set to -1, it is up to the window manager to pick one, typically it will be the current workspace.

func (*AppLaunchContext) SetGoPointer

func (c *AppLaunchContext) SetGoPointer(ptr uintptr)

func (*AppLaunchContext) SetIcon

func (x *AppLaunchContext) SetIcon(IconVar gio.Icon)

Sets the icon for applications that are launched with this context.

Window Managers can use this information when displaying startup notification.

See also [method@Gdk.AppLaunchContext.set_icon_name].

func (*AppLaunchContext) SetIconName

func (x *AppLaunchContext) SetIconName(IconNameVar *string)

Sets the icon for applications that are launched with this context.

The @icon_name will be interpreted in the same way as the Icon field in desktop files. See also [method@Gdk.AppLaunchContext.set_icon].

If both @icon and @icon_name are set, the @icon_name takes priority. If neither @icon or @icon_name is set, the icon is taken from either the file that is passed to launched application or from the `GAppInfo` for the launched application itself.

func (*AppLaunchContext) SetTimestamp

func (x *AppLaunchContext) SetTimestamp(TimestampVar uint32)

Sets the timestamp of @context.

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'.

type AxisFlags

type AxisFlags int

Flags describing the current capabilities of a device/tool.

const (

	// X axis is present
	AxisFlagXValue AxisFlags = 2
	// Y axis is present
	AxisFlagYValue AxisFlags = 4
	// Scroll X delta axis is present
	AxisFlagDeltaXValue AxisFlags = 8
	// Scroll Y delta axis is present
	AxisFlagDeltaYValue AxisFlags = 16
	// Pressure axis is present
	AxisFlagPressureValue AxisFlags = 32
	// X tilt axis is present
	AxisFlagXtiltValue AxisFlags = 64
	// Y tilt axis is present
	AxisFlagYtiltValue AxisFlags = 128
	// Wheel axis is present
	AxisFlagWheelValue AxisFlags = 256
	// Distance axis is present
	AxisFlagDistanceValue AxisFlags = 512
	// Z-axis rotation is present
	AxisFlagRotationValue AxisFlags = 1024
	// Slider axis is present
	AxisFlagSliderValue AxisFlags = 2048
)

type AxisUse

type AxisUse int

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.

const (

	// the axis is ignored.
	AxisIgnoreValue AxisUse = 0
	// the axis is used as the x axis.
	AxisXValue AxisUse = 1
	// the axis is used as the y axis.
	AxisYValue AxisUse = 2
	// the axis is used as the scroll x delta
	AxisDeltaXValue AxisUse = 3
	// the axis is used as the scroll y delta
	AxisDeltaYValue AxisUse = 4
	// the axis is used for pressure information.
	AxisPressureValue AxisUse = 5
	// the axis is used for x tilt information.
	AxisXtiltValue AxisUse = 6
	// the axis is used for y tilt information.
	AxisYtiltValue AxisUse = 7
	// the axis is used for wheel information.
	AxisWheelValue AxisUse = 8
	// the axis is used for pen/tablet distance information
	AxisDistanceValue AxisUse = 9
	// the axis is used for pen rotation information
	AxisRotationValue AxisUse = 10
	// the axis is used for pen slider information
	AxisSliderValue AxisUse = 11
	// a constant equal to the numerically highest axis value.
	AxisLastValue AxisUse = 12
)

type ButtonEvent

type ButtonEvent struct {
	Event
}

An event related to a button on a pointer device.

func ButtonEventNewFromInternalPtr

func ButtonEventNewFromInternalPtr(ptr uintptr) *ButtonEvent

func (*ButtonEvent) GetButton

func (x *ButtonEvent) GetButton() uint

Extract the button number from a button event.

func (*ButtonEvent) GoPointer

func (c *ButtonEvent) GoPointer() uintptr

func (*ButtonEvent) SetGoPointer

func (c *ButtonEvent) SetGoPointer(ptr uintptr)

type CairoContext

type CairoContext struct {
	DrawContext
}

Represents the platform-specific draw context.

`GdkCairoContext`s are created for a surface using [method@Gdk.Surface.create_cairo_context], and the context can then be used to draw on that surface.

func CairoContextNewFromInternalPtr

func CairoContextNewFromInternalPtr(ptr uintptr) *CairoContext

func (*CairoContext) CairoCreate

func (x *CairoContext) CairoCreate() *cairo.Context

Retrieves a Cairo context to be used to draw on the `GdkSurface` of @context.

A call to [method@Gdk.DrawContext.begin_frame] with this @context must have been done or this function will return %NULL.

The returned context is guaranteed to be valid until [method@Gdk.DrawContext.end_frame] is called.

func (*CairoContext) GoPointer

func (c *CairoContext) GoPointer() uintptr

func (*CairoContext) SetGoPointer

func (c *CairoContext) SetGoPointer(ptr uintptr)

type CicpParams

type CicpParams struct {
	gobject.Object
}

Contains the parameters that define a colorstate with cicp parameters.

Cicp parameters are specified in the ITU-T H.273 [specification](https://www.itu.int/rec/T-REC-H.273/en).

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.

`GdkCicpParams` can be used as a builder object to construct a color state from Cicp data with [method@Gdk.CicpParams.build_color_state]. The function will return an error if the given parameters are not supported.

You can obtain a `GdkCicpParams` object from a color state with [method@Gdk.ColorState.create_cicp_params]. 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.

func CicpParamsNewFromInternalPtr

func CicpParamsNewFromInternalPtr(ptr uintptr) *CicpParams

func NewCicpParams

func NewCicpParams() *CicpParams

Creates a new `GdkCicpParams` 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.

func (*CicpParams) BuildColorState

func (x *CicpParams) BuildColorState() (*ColorState, error)

Creates a new `GdkColorState` object for the cicp parameters in @self.

Note that this may fail if the cicp parameters in @self are not supported by GTK. In that case, `NULL` is returned, and @error is set with an error message that can be presented to the user.

func (*CicpParams) GetColorPrimaries

func (x *CicpParams) GetColorPrimaries() uint

Returns the value of the color-primaries property of @self.

func (*CicpParams) GetMatrixCoefficients

func (x *CicpParams) GetMatrixCoefficients() uint

Gets the matrix-coefficients property of @self.

func (*CicpParams) GetPropertyColorPrimaries

func (x *CicpParams) GetPropertyColorPrimaries() uint

GetPropertyColorPrimaries gets the "color-primaries" property. The color primaries to use.

Supported values:

- 1: BT.709 / sRGB - 2: unspecified - 5: PAL - 6,7: BT.601 / NTSC - 9: BT.2020 - 12: Display P3

func (*CicpParams) GetPropertyMatrixCoefficients

func (x *CicpParams) GetPropertyMatrixCoefficients() uint

GetPropertyMatrixCoefficients gets the "matrix-coefficients" property. The matrix coefficients (for YUV to RGB conversion).

Supported values:

- 0: RGB - 1: BT.709 - 2: unspecified - 5,6: BT.601 - 9: BT.2020

func (*CicpParams) GetPropertyTransferFunction

func (x *CicpParams) GetPropertyTransferFunction() uint

GetPropertyTransferFunction gets the "transfer-function" property. The transfer function to use.

Supported values:

- 1,6,14,15: BT.709, BT.601, BT.2020 - 2: unspecified - 4: gamma 2.2 - 5: gamma 2.8 - 8: linear - 13: sRGB - 16: BT.2100 PQ - 18: BT.2100 HLG

func (*CicpParams) GetRange

func (x *CicpParams) GetRange() CicpRange

Gets the range property of @self.

func (*CicpParams) GetTransferFunction

func (x *CicpParams) GetTransferFunction() uint

Gets the transfer-function property of @self.

func (*CicpParams) GoPointer

func (c *CicpParams) GoPointer() uintptr

func (*CicpParams) SetColorPrimaries

func (x *CicpParams) SetColorPrimaries(ColorPrimariesVar uint)

Sets the color-primaries property of @self.

func (*CicpParams) SetGoPointer

func (c *CicpParams) SetGoPointer(ptr uintptr)

func (*CicpParams) SetMatrixCoefficients

func (x *CicpParams) SetMatrixCoefficients(MatrixCoefficientsVar uint)

@self a `GdkCicpParams` Sets the matrix-coefficients property of @self.

func (*CicpParams) SetPropertyColorPrimaries

func (x *CicpParams) SetPropertyColorPrimaries(value uint)

SetPropertyColorPrimaries sets the "color-primaries" property. The color primaries to use.

Supported values:

- 1: BT.709 / sRGB - 2: unspecified - 5: PAL - 6,7: BT.601 / NTSC - 9: BT.2020 - 12: Display P3

func (*CicpParams) SetPropertyMatrixCoefficients

func (x *CicpParams) SetPropertyMatrixCoefficients(value uint)

SetPropertyMatrixCoefficients sets the "matrix-coefficients" property. The matrix coefficients (for YUV to RGB conversion).

Supported values:

- 0: RGB - 1: BT.709 - 2: unspecified - 5,6: BT.601 - 9: BT.2020

func (*CicpParams) SetPropertyTransferFunction

func (x *CicpParams) SetPropertyTransferFunction(value uint)

SetPropertyTransferFunction sets the "transfer-function" property. The transfer function to use.

Supported values:

- 1,6,14,15: BT.709, BT.601, BT.2020 - 2: unspecified - 4: gamma 2.2 - 5: gamma 2.8 - 8: linear - 13: sRGB - 16: BT.2100 PQ - 18: BT.2100 HLG

func (*CicpParams) SetRange

func (x *CicpParams) SetRange(RangeVar CicpRange)

Sets the range property of @self

func (*CicpParams) SetTransferFunction

func (x *CicpParams) SetTransferFunction(TransferFunctionVar uint)

Sets the transfer-function property of @self.

type CicpParamsClass

type CicpParamsClass struct {
	// contains filtered or unexported fields
}

func (*CicpParamsClass) GoPointer

func (x *CicpParamsClass) GoPointer() uintptr

type CicpRange

type CicpRange int

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).

const (

	// The values use the range of 16-235 (for Y) and 16-240 for u and v.
	CicpRangeNarrowValue CicpRange = 0
	// The values use the full range.
	CicpRangeFullValue CicpRange = 1
)

type Clipboard

type Clipboard struct {
	gobject.Object
}

Represents data shared between applications or inside an application.

To get a `GdkClipboard` object, use [method@Gdk.Display.get_clipboard] or [method@Gdk.Display.get_primary_clipboard]. You can find out about the data that is currently available in a clipboard using [method@Gdk.Clipboard.get_formats].

To make text or image data available in a clipboard, use [method@Gdk.Clipboard.set_text] or [method@Gdk.Clipboard.set_texture]. For other data, you can use [method@Gdk.Clipboard.set_content], which takes a [class@Gdk.ContentProvider] object.

To read textual or image data from a clipboard, use [method@Gdk.Clipboard.read_text_async] or [method@Gdk.Clipboard.read_texture_async]. For other data, use [method@Gdk.Clipboard.read_async], which provides a `GInputStream` object.

func ClipboardNewFromInternalPtr

func ClipboardNewFromInternalPtr(ptr uintptr) *Clipboard

func (*Clipboard) ConnectChanged

func (x *Clipboard) ConnectChanged(cb *func(Clipboard)) uint

Emitted when the clipboard changes ownership.

func (*Clipboard) GetContent

func (x *Clipboard) GetContent() *ContentProvider

Returns the `GdkContentProvider` currently set on @clipboard.

If the @clipboard is empty or its contents are not owned by the current process, %NULL will be returned.

func (*Clipboard) GetDisplay

func (x *Clipboard) GetDisplay() *Display

Gets the `GdkDisplay` that the clipboard was created for.

func (*Clipboard) GetFormats

func (x *Clipboard) GetFormats() *ContentFormats

Gets the formats that the clipboard can provide its current contents in.

func (*Clipboard) GetPropertyFormats

func (x *Clipboard) GetPropertyFormats() uintptr

GetPropertyFormats gets the "formats" property. The possible formats that the clipboard can provide its data in.

func (*Clipboard) GetPropertyLocal

func (x *Clipboard) GetPropertyLocal() bool

GetPropertyLocal gets the "local" property. %TRUE if the contents of the clipboard are owned by this process.

func (*Clipboard) GoPointer

func (c *Clipboard) GoPointer() uintptr

func (*Clipboard) IsLocal

func (x *Clipboard) IsLocal() bool

Returns if the clipboard is local.

A clipboard is considered local if it was last claimed by the running application.

Note that [method@Gdk.Clipboard.get_content] may return %NULL even on a local clipboard. In this case the clipboard is empty.

func (*Clipboard) ReadAsync

func (x *Clipboard) ReadAsync(MimeTypesVar []string, IoPriorityVar int, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr)

Asynchronously requests an input stream to read the @clipboard'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.

func (*Clipboard) ReadFinish

func (x *Clipboard) ReadFinish(ResultVar gio.AsyncResult, OutMimeTypeVar *string) (*gio.InputStream, error)

Finishes an asynchronous clipboard read.

See [method@Gdk.Clipboard.read_async].

func (*Clipboard) ReadTextAsync

func (x *Clipboard) ReadTextAsync(CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr)

Asynchronously request the @clipboard contents converted to a string.

This is a simple wrapper around [method@Gdk.Clipboard.read_value_async]. Use that function or [method@Gdk.Clipboard.read_async] directly if you need more control over the operation.

func (*Clipboard) ReadTextFinish

func (x *Clipboard) ReadTextFinish(ResultVar gio.AsyncResult) (string, error)

Finishes an asynchronous clipboard read.

See [method@Gdk.Clipboard.read_text_async].

func (*Clipboard) ReadTextureAsync

func (x *Clipboard) ReadTextureAsync(CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr)

Asynchronously request the @clipboard contents converted to a `GdkPixbuf`.

This is a simple wrapper around [method@Gdk.Clipboard.read_value_async]. Use that function or [method@Gdk.Clipboard.read_async] directly if you need more control over the operation.

func (*Clipboard) ReadTextureFinish

func (x *Clipboard) ReadTextureFinish(ResultVar gio.AsyncResult) (*Texture, error)

Finishes an asynchronous clipboard read.

See [method@Gdk.Clipboard.read_texture_async].

func (*Clipboard) ReadValueAsync

func (x *Clipboard) ReadValueAsync(TypeVar types.GType, IoPriorityVar int, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr)

Asynchronously request the @clipboard contents converted to the given @type.

For local clipboard contents that are available in the given `GType`, the value will be copied directly. Otherwise, GDK will try to use [func@content_deserialize_async] to convert the clipboard's data.

func (*Clipboard) ReadValueFinish

func (x *Clipboard) ReadValueFinish(ResultVar gio.AsyncResult) (*gobject.Value, error)

Finishes an asynchronous clipboard read.

See [method@Gdk.Clipboard.read_value_async].

func (*Clipboard) Set

func (x *Clipboard) Set(TypeVar types.GType, varArgs ...interface{})

Sets the clipboard to contain the value collected from the given varargs.

Values should be passed the same way they are passed to other value collecting APIs, such as [method@GObject.Object.set] or [func@GObject.signal_emit].

```c gdk_clipboard_set (clipboard, G_TYPE_STRING, "Hello World");

gdk_clipboard_set (clipboard, GDK_TYPE_TEXTURE, some_texture); ```

func (*Clipboard) SetContent

func (x *Clipboard) SetContent(ProviderVar *ContentProvider) bool

Sets a new content provider on @clipboard.

The clipboard will claim the `GdkDisplay`'s resources and advertise these new contents to other applications.

In the rare case of a failure, this function will return %FALSE. The clipboard will then continue reporting its old contents and ignore @provider.

If the contents are read by either an external application or the @clipboard's read functions, @clipboard will select the best format to transfer the contents and then request that format from @provider.

func (*Clipboard) SetGoPointer

func (c *Clipboard) SetGoPointer(ptr uintptr)

func (*Clipboard) SetText

func (x *Clipboard) SetText(TextVar string)

Puts the given @text into the clipboard.

func (*Clipboard) SetTexture

func (x *Clipboard) SetTexture(TextureVar *Texture)

Puts the given @texture into the clipboard.

func (*Clipboard) SetValist

func (x *Clipboard) SetValist(TypeVar types.GType, ArgsVar []interface{})

Sets the clipboard to contain the value collected from the given @args.

func (*Clipboard) SetValue

func (x *Clipboard) SetValue(ValueVar *gobject.Value)

Sets the @clipboard to contain the given @value.

func (*Clipboard) StoreAsync

func (x *Clipboard) StoreAsync(IoPriorityVar int, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr)

Asynchronously instructs the @clipboard 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 [GtkApplication](../gtk4/class.Application.html) is shut down, so you likely don't need to call it.

func (*Clipboard) StoreFinish

func (x *Clipboard) StoreFinish(ResultVar gio.AsyncResult) (bool, error)

Finishes an asynchronous clipboard store.

See [method@Gdk.Clipboard.store_async].

type ColorChannel added in v0.5.0

type ColorChannel int

Enumerates the color channels of RGBA values as used in `GdkColor` and OpenGL/Vulkan shaders.

Note that this is not the order of pixel values in Cairo and `GdkMemoryFormat` can have many different orders.

const (

	// The red color channel, aka 0
	ColorChannelRedValue ColorChannel = 0
	// The green color channel, aka 1
	ColorChannelGreenValue ColorChannel = 1
	// The blue color channel, aka 2
	ColorChannelBlueValue ColorChannel = 2
	// The alpha color channel, aka 3
	ColorChannelAlphaValue ColorChannel = 3
)

type ColorState

type ColorState struct {
	// contains filtered or unexported fields
}

Provides information to interpret colors and pixels in a variety of ways.

They are also known as [*color spaces*](https://en.wikipedia.org/wiki/Color_space).

Crucially, GTK knows how to convert colors from one color state to another.

`GdkColorState` objects are immutable and therefore threadsafe.

func ColorStateGetOklab

func ColorStateGetOklab() *ColorState

Returns the color state object representing the oklab color space.

This is a perceptually uniform color state.

func ColorStateGetOklch

func ColorStateGetOklch() *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.

func ColorStateGetRec2100Linear

func ColorStateGetRec2100Linear() *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 [Cicp](class.CicpParams.html) tuple 9/8/0/1.

See e.g. [the CSS HDR Module](https://drafts.csswg.org/css-color-hdr/#valdef-color-rec2100-linear) for details about this colorstate.

func ColorStateGetRec2100Pq

func ColorStateGetRec2100Pq() *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 [Cicp](class.CicpParams.html) tuple 9/16/0/1.

See e.g. [the CSS HDR Module](https://drafts.csswg.org/css-color-hdr/#valdef-color-rec2100-pq) for details about this colorstate.

func ColorStateGetSrgb

func ColorStateGetSrgb() *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 [Cicp](class.CicpParams.html) tuple 1/13/0/1.

See e.g. [the CSS Color Module](https://www.w3.org/TR/css-color-4/#predefined-sRGB) for details about this colorstate.

func ColorStateGetSrgbLinear

func ColorStateGetSrgbLinear() *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 [Cicp](class.CicpParams.html) tuple 1/8/0/1.

See e.g. [the CSS Color Module](https://www.w3.org/TR/css-color-4/#predefined-sRGB-linear) for details about this colorstate.

func (*ColorState) CreateCicpParams

func (x *ColorState) CreateCicpParams() *CicpParams

Create a [class@Gdk.CicpParams] representing the colorstate.

It is not guaranteed that every `GdkColorState` can be represented with Cicp parameters. If that is the case, this function returns `NULL`.

func (*ColorState) Equal

func (x *ColorState) Equal(OtherVar *ColorState) bool

Compares two `GdkColorStates` 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.

func (*ColorState) Equivalent

func (x *ColorState) Equivalent(OtherVar *ColorState) bool

Compares two `GdkColorStates` for equivalence.

Two objects that represent the same color state should be equivalent, even though they may not be equal in the sense of [method@Gdk.ColorState.equal].

func (*ColorState) GoPointer

func (x *ColorState) GoPointer() uintptr

func (*ColorState) Ref

func (x *ColorState) Ref() *ColorState

Increase the reference count of @self.

func (*ColorState) Unref

func (x *ColorState) Unref()

Decrease the reference count of @self.

Unless @self is static, it will be freed when the reference count reaches zero.

type ContentDeserializeFunc

type ContentDeserializeFunc func(uintptr)

The type of a function that can be registered with gdk_content_register_deserializer().

When the function gets called to operate on content, it can call functions on the @deserializer object to obtain the mime type, input stream, user data, etc. for its operation.

type ContentDeserializer

type ContentDeserializer struct {
	gobject.Object
}

Deserializes content received via inter-application data transfers.

The `GdkContentDeserializer` 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@content_register_deserializer].

Also see [class@Gdk.ContentSerializer].

func ContentDeserializerNewFromInternalPtr

func ContentDeserializerNewFromInternalPtr(ptr uintptr) *ContentDeserializer

func (*ContentDeserializer) GetCancellable

func (x *ContentDeserializer) GetCancellable() *gio.Cancellable

Gets the cancellable for the current operation.

This is the `GCancellable` that was passed to [func@Gdk.content_deserialize_async].

func (*ContentDeserializer) GetGtype

func (x *ContentDeserializer) GetGtype() types.GType

Gets the `GType` to create an instance of.

func (*ContentDeserializer) GetInputStream

func (x *ContentDeserializer) GetInputStream() *gio.InputStream

Gets the input stream for the current operation.

This is the stream that was passed to [func@Gdk.content_deserialize_async].

func (*ContentDeserializer) GetMimeType

func (x *ContentDeserializer) GetMimeType() string

Gets the mime type to deserialize from.

func (*ContentDeserializer) GetPriority

func (x *ContentDeserializer) GetPriority() int

Gets the I/O priority for the current operation.

This is the priority that was passed to [func@Gdk.content_deserialize_async].

func (*ContentDeserializer) GetSourceObject

func (x *ContentDeserializer) GetSourceObject() *gobject.Object

Gets the source object from a [iface@Gio.AsyncResult].

func (*ContentDeserializer) GetTaskData

func (x *ContentDeserializer) GetTaskData() uintptr

Gets the data that was associated with the current operation.

See [method@Gdk.ContentDeserializer.set_task_data].

func (*ContentDeserializer) GetUserData

func (x *ContentDeserializer) GetUserData() uintptr

Gets the user data that was passed when the deserializer was registered.

func (*ContentDeserializer) GetValue

func (x *ContentDeserializer) GetValue() *gobject.Value

Gets the `GValue` to store the deserialized object in.

func (*ContentDeserializer) GoPointer

func (c *ContentDeserializer) GoPointer() uintptr

func (*ContentDeserializer) IsTagged

func (x *ContentDeserializer) IsTagged(SourceTagVar uintptr) bool

Checks if @res has the given @source_tag (generally a function pointer indicating the function @res was created by).

func (*ContentDeserializer) LegacyPropagateError

func (x *ContentDeserializer) LegacyPropagateError() (bool, error)

If @res is a [class@Gio.SimpleAsyncResult], this is equivalent to [method@Gio.SimpleAsyncResult.propagate_error]. Otherwise it returns `FALSE`.

This can be used for legacy error handling in async `*_finish()` wrapper functions that traditionally handled [class@Gio.SimpleAsyncResult] error returns themselves rather than calling into the virtual method. This should not be used in new code; [iface@Gio.AsyncResult] errors that are set by virtual methods should also be extracted by virtual methods, to enable subclasses to chain up correctly.

func (*ContentDeserializer) ReturnError

func (x *ContentDeserializer) ReturnError(ErrorVar *glib.Error)

Indicate that the deserialization has ended with an error.

This function consumes @error.

func (*ContentDeserializer) ReturnSuccess

func (x *ContentDeserializer) ReturnSuccess()

Indicate that the deserialization has been successfully completed.

func (*ContentDeserializer) SetGoPointer

func (c *ContentDeserializer) SetGoPointer(ptr uintptr)

func (*ContentDeserializer) SetTaskData

func (x *ContentDeserializer) SetTaskData(DataVar uintptr, NotifyVar *glib.DestroyNotify)

Associate data with the current deserialization operation.

type ContentFormats

type ContentFormats struct {
	// contains filtered or unexported fields
}

Used to advertise and negotiate the format of content.

You will encounter `GdkContentFormats` when interacting with objects controlling operations that pass data between different widgets, window or application, like [class@Gdk.Drag], [class@Gdk.Drop], [class@Gdk.Clipboard] or [class@Gdk.ContentProvider].

GDK supports content in 2 forms: `GType` and mime type. Using `GTypes` 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, [class@Gdk.ContentSerializer] and [class@Gdk.ContentDeserializer] are used.

A `GdkContentFormats` describes a set of possible formats content can be exchanged in. It is assumed that this set is ordered. `GTypes` are more important than mime types. Order between different `GTypes` or mime types is the order they were added in, most important first. Functions that care about order, such as [method@Gdk.ContentFormats.union], 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 [method@Gdk.ContentFormats.to_string] exists. It will print a comma-separated list of formats from most important to least important.

`GdkContentFormats` is an immutable struct. After creation, you cannot change the types it represents. Instead, new `GdkContentFormats` have to be created. The [struct@Gdk.ContentFormatsBuilder] structure is meant to help in this endeavor.

func ContentFormatsParse

func ContentFormatsParse(StringVar string) *ContentFormats

Parses the given @string into `GdkContentFormats` and returns the formats.

Strings printed via [method@Gdk.ContentFormats.to_string] can be read in again successfully using this function.

If @string does not describe valid content formats, %NULL is returned.

func NewContentFormats

func NewContentFormats(MimeTypesVar []string, NMimeTypesVar uint) *ContentFormats

Creates a new `GdkContentFormats` 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 [struct@Gdk.ContentFormatsBuilder] instead.

func NewContentFormatsForGtype

func NewContentFormatsForGtype(TypeVar types.GType) *ContentFormats

Creates a new `GdkContentFormats` for a given `GType`.

func (*ContentFormats) ContainGtype

func (x *ContentFormats) ContainGtype(TypeVar types.GType) bool

Checks if a given `GType` is part of the given @formats.

func (*ContentFormats) ContainMimeType

func (x *ContentFormats) ContainMimeType(MimeTypeVar string) bool

Checks if a given mime type is part of the given @formats.

func (*ContentFormats) GetGtypes

func (x *ContentFormats) GetGtypes(NGtypesVar *uint) uintptr

Gets the `GType`s included in @formats.

Note that @formats may not contain any `GType`s, in particular when they are empty. In that case %NULL will be returned.

func (*ContentFormats) GetMimeTypes

func (x *ContentFormats) GetMimeTypes(NMimeTypesVar *uint) []string

Gets the mime types included in @formats.

Note that @formats may not contain any mime types, in particular when they are empty. In that case %NULL will be returned.

func (*ContentFormats) GoPointer

func (x *ContentFormats) GoPointer() uintptr

func (*ContentFormats) IsEmpty

func (x *ContentFormats) IsEmpty() bool

Returns whether the content formats contain any formats.

func (*ContentFormats) Match

func (x *ContentFormats) Match(SecondVar *ContentFormats) bool

Checks if @first and @second have any matching formats.

func (*ContentFormats) MatchGtype

func (x *ContentFormats) MatchGtype(SecondVar *ContentFormats) types.GType

Finds the first `GType` from @first that is also contained in @second.

If no matching `GType` is found, %G_TYPE_INVALID is returned.

func (*ContentFormats) MatchMimeType

func (x *ContentFormats) MatchMimeType(SecondVar *ContentFormats) string

Finds the first mime type from @first that is also contained in @second.

If no matching mime type is found, %NULL is returned.

func (*ContentFormats) Print

func (x *ContentFormats) Print(StringVar *glib.String)

Prints the given @formats into a string for human consumption.

The result of this function can later be parsed with [func@Gdk.ContentFormats.parse].

func (*ContentFormats) Ref

func (x *ContentFormats) Ref() *ContentFormats

Increases the reference count of a `GdkContentFormats` by one.

func (*ContentFormats) ToString

func (x *ContentFormats) ToString() string

Prints the given @formats into a human-readable string.

The resulting string can be parsed with [func@Gdk.ContentFormats.parse].

This is a small wrapper around [method@Gdk.ContentFormats.print] to help when debugging.

func (*ContentFormats) Union

func (x *ContentFormats) Union(SecondVar *ContentFormats) *ContentFormats

Append all missing types from @second to @first, in the order they had in @second.

func (*ContentFormats) UnionDeserializeGtypes

func (x *ContentFormats) UnionDeserializeGtypes() *ContentFormats

Add GTypes for mime types in @formats for which deserializers are registered.

func (*ContentFormats) UnionDeserializeMimeTypes

func (x *ContentFormats) UnionDeserializeMimeTypes() *ContentFormats

Add mime types for GTypes in @formats for which deserializers are registered.

func (*ContentFormats) UnionSerializeGtypes

func (x *ContentFormats) UnionSerializeGtypes() *ContentFormats

Add GTypes for the mime types in @formats for which serializers are registered.

func (*ContentFormats) UnionSerializeMimeTypes

func (x *ContentFormats) UnionSerializeMimeTypes() *ContentFormats

Add mime types for GTypes in @formats for which serializers are registered.

func (*ContentFormats) Unref

func (x *ContentFormats) Unref()

Decreases the reference count of a `GdkContentFormats` by one.

If the resulting reference count is zero, frees the formats.

type ContentFormatsBuilder

type ContentFormatsBuilder struct {
	// contains filtered or unexported fields
}

Creates `GdkContentFormats` objects.

func NewContentFormatsBuilder

func NewContentFormatsBuilder() *ContentFormatsBuilder

Create a new `GdkContentFormatsBuilder` object.

The resulting builder would create an empty `GdkContentFormats`. Use addition functions to add types to it.

func (*ContentFormatsBuilder) AddFormats

func (x *ContentFormatsBuilder) AddFormats(FormatsVar *ContentFormats)

Appends all formats from @formats to @builder, skipping those that already exist.

func (*ContentFormatsBuilder) AddGtype

func (x *ContentFormatsBuilder) AddGtype(TypeVar types.GType)

Appends @type to @builder if it has not already been added.

func (*ContentFormatsBuilder) AddMimeType

func (x *ContentFormatsBuilder) AddMimeType(MimeTypeVar string)

Appends @mime_type to @builder if it has not already been added.

func (*ContentFormatsBuilder) FreeToFormats

func (x *ContentFormatsBuilder) FreeToFormats() *ContentFormats

Creates a new `GdkContentFormats` from the current state of the given @builder, and frees the @builder instance.

func (*ContentFormatsBuilder) GoPointer

func (x *ContentFormatsBuilder) GoPointer() uintptr

func (*ContentFormatsBuilder) Ref

Acquires a reference on the given @builder.

This function is intended primarily for bindings. `GdkContentFormatsBuilder` objects should not be kept around.

func (*ContentFormatsBuilder) ToFormats

func (x *ContentFormatsBuilder) ToFormats() *ContentFormats

Creates a new `GdkContentFormats` from the given @builder.

The given `GdkContentFormatsBuilder` is reset once this function returns; you cannot call this function multiple times on the same @builder instance.

This function is intended primarily for bindings. C code should use [method@Gdk.ContentFormatsBuilder.free_to_formats].

func (*ContentFormatsBuilder) Unref

func (x *ContentFormatsBuilder) Unref()

Releases a reference on the given @builder.

type ContentProvider

type ContentProvider struct {
	gobject.Object
}

Provides content for the clipboard or for drag-and-drop operations in a number of formats.

To create a `GdkContentProvider`, use [ctor@Gdk.ContentProvider.new_for_value] or [ctor@Gdk.ContentProvider.new_for_bytes].

GDK knows how to handle common text and image formats out-of-the-box. See [class@Gdk.ContentSerializer] and [class@Gdk.ContentDeserializer] if you want to add support for application-specific data formats.

func ContentProviderNewFromInternalPtr

func ContentProviderNewFromInternalPtr(ptr uintptr) *ContentProvider

func NewContentProviderForBytes

func NewContentProviderForBytes(MimeTypeVar string, BytesVar *glib.Bytes) *ContentProvider

Create a content provider that provides the given @bytes as data for the given @mime_type.

func NewContentProviderForValue

func NewContentProviderForValue(ValueVar *gobject.Value) *ContentProvider

Create a content provider that provides the given @value.

func NewContentProviderTyped

func NewContentProviderTyped(TypeVar types.GType, varArgs ...interface{}) *ContentProvider

Create a content provider that provides the value of the given @type.

The value is provided using G_VALUE_COLLECT(), so the same rules apply as when calling g_object_new() or g_object_set().

func NewContentProviderUnion

func NewContentProviderUnion(ProvidersVar uintptr, NProvidersVar uint) *ContentProvider

Creates a content provider that represents all the given @providers.

Whenever data needs to be written, the union provider will try the given @providers 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 ```c

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);

```

func (*ContentProvider) ConnectContentChanged

func (x *ContentProvider) ConnectContentChanged(cb *func(ContentProvider)) uint

Emitted whenever the content provided by this provider has changed.

func (*ContentProvider) ContentChanged

func (x *ContentProvider) ContentChanged()

Emits the ::content-changed signal.

func (*ContentProvider) GetPropertyFormats

func (x *ContentProvider) GetPropertyFormats() uintptr

GetPropertyFormats gets the "formats" property. The possible formats that the provider can provide its data in.

func (*ContentProvider) GetPropertyStorableFormats

func (x *ContentProvider) GetPropertyStorableFormats() uintptr

GetPropertyStorableFormats gets the "storable-formats" property. The subset of formats that clipboard managers should store this provider's data in.

func (*ContentProvider) GetValue

func (x *ContentProvider) GetValue(ValueVar *gobject.Value) (bool, error)

Gets the contents of @provider stored in @value.

The @value will have been initialized to the `GType` the value should be provided in. This given `GType` does not need to be listed in the formats returned by [method@Gdk.ContentProvider.ref_formats]. However, if the given `GType` is not supported, this operation can fail and `G_IO_ERROR_NOT_SUPPORTED` will be reported.

func (*ContentProvider) GoPointer

func (c *ContentProvider) GoPointer() uintptr

func (*ContentProvider) RefFormats

func (x *ContentProvider) RefFormats() *ContentFormats

Gets the formats that the provider can provide its current contents in.

func (*ContentProvider) RefStorableFormats

func (x *ContentProvider) RefStorableFormats() *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 [method@Gdk.ContentProvider.ref_formats].

func (*ContentProvider) SetGoPointer

func (c *ContentProvider) SetGoPointer(ptr uintptr)

func (*ContentProvider) WriteMimeTypeAsync

func (x *ContentProvider) WriteMimeTypeAsync(MimeTypeVar string, StreamVar *gio.OutputStream, IoPriorityVar int, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr)

Asynchronously writes the contents of @provider to @stream in the given @mime_type.

The given mime type does not need to be listed in the formats returned by [method@Gdk.ContentProvider.ref_formats]. However, if the given `GType` is not supported, `G_IO_ERROR_NOT_SUPPORTED` will be reported.

The given @stream will not be closed.

func (*ContentProvider) WriteMimeTypeFinish

func (x *ContentProvider) WriteMimeTypeFinish(ResultVar gio.AsyncResult) (bool, error)

Finishes an asynchronous write operation.

See [method@Gdk.ContentProvider.write_mime_type_async].

type ContentProviderClass

type ContentProviderClass struct {
	ParentClass gobject.ObjectClass

	Padding [8]uintptr
	// contains filtered or unexported fields
}

Class structure for `GdkContentProvider`.

func (*ContentProviderClass) GetAttachClipboard

func (x *ContentProviderClass) GetAttachClipboard() func(*ContentProvider, *Clipboard)

GetAttachClipboard gets the "attach_clipboard" callback function.

func (*ContentProviderClass) GetContentChanged

func (x *ContentProviderClass) GetContentChanged() func(*ContentProvider)

GetContentChanged gets the "content_changed" callback function. Signal class closure for `GdkContentProvider::content-changed`

func (*ContentProviderClass) GetDetachClipboard

func (x *ContentProviderClass) GetDetachClipboard() func(*ContentProvider, *Clipboard)

GetDetachClipboard gets the "detach_clipboard" callback function.

func (*ContentProviderClass) GetGetValue

func (x *ContentProviderClass) GetGetValue() func(*ContentProvider, *gobject.Value) bool

GetGetValue gets the "get_value" callback function.

func (*ContentProviderClass) GetRefFormats

func (x *ContentProviderClass) GetRefFormats() func(*ContentProvider) *ContentFormats

GetRefFormats gets the "ref_formats" callback function.

func (*ContentProviderClass) GetRefStorableFormats

func (x *ContentProviderClass) GetRefStorableFormats() func(*ContentProvider) *ContentFormats

GetRefStorableFormats gets the "ref_storable_formats" callback function.

func (*ContentProviderClass) GetWriteMimeTypeAsync

GetWriteMimeTypeAsync gets the "write_mime_type_async" callback function.

func (*ContentProviderClass) GetWriteMimeTypeFinish

func (x *ContentProviderClass) GetWriteMimeTypeFinish() func(*ContentProvider, gio.AsyncResult) bool

GetWriteMimeTypeFinish gets the "write_mime_type_finish" callback function.

func (*ContentProviderClass) GoPointer

func (x *ContentProviderClass) GoPointer() uintptr

func (*ContentProviderClass) OverrideAttachClipboard

func (x *ContentProviderClass) OverrideAttachClipboard(cb func(*ContentProvider, *Clipboard))

OverrideAttachClipboard sets the "attach_clipboard" callback function.

func (*ContentProviderClass) OverrideContentChanged

func (x *ContentProviderClass) OverrideContentChanged(cb func(*ContentProvider))

OverrideContentChanged sets the "content_changed" callback function. Signal class closure for `GdkContentProvider::content-changed`

func (*ContentProviderClass) OverrideDetachClipboard

func (x *ContentProviderClass) OverrideDetachClipboard(cb func(*ContentProvider, *Clipboard))

OverrideDetachClipboard sets the "detach_clipboard" callback function.

func (*ContentProviderClass) OverrideGetValue

func (x *ContentProviderClass) OverrideGetValue(cb func(*ContentProvider, *gobject.Value) bool)

OverrideGetValue sets the "get_value" callback function.

func (*ContentProviderClass) OverrideRefFormats

func (x *ContentProviderClass) OverrideRefFormats(cb func(*ContentProvider) *ContentFormats)

OverrideRefFormats sets the "ref_formats" callback function.

func (*ContentProviderClass) OverrideRefStorableFormats

func (x *ContentProviderClass) OverrideRefStorableFormats(cb func(*ContentProvider) *ContentFormats)

OverrideRefStorableFormats sets the "ref_storable_formats" callback function.

func (*ContentProviderClass) OverrideWriteMimeTypeAsync

func (x *ContentProviderClass) OverrideWriteMimeTypeAsync(cb func(*ContentProvider, string, *gio.OutputStream, int, *gio.Cancellable, *gio.AsyncReadyCallback, uintptr))

OverrideWriteMimeTypeAsync sets the "write_mime_type_async" callback function.

func (*ContentProviderClass) OverrideWriteMimeTypeFinish

func (x *ContentProviderClass) OverrideWriteMimeTypeFinish(cb func(*ContentProvider, gio.AsyncResult) bool)

OverrideWriteMimeTypeFinish sets the "write_mime_type_finish" callback function.

type ContentSerializeFunc

type ContentSerializeFunc func(uintptr)

The type of a function that can be registered with gdk_content_register_serializer().

When the function gets called to operate on content, it can call functions on the @serializer object to obtain the mime type, output stream, user data, etc. for its operation.

type ContentSerializer

type ContentSerializer struct {
	gobject.Object
}

Serializes content for inter-application data transfers.

The `GdkContentSerializer` 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 [func@Gdk.content_register_serializer].

Also see [class@Gdk.ContentDeserializer].

func ContentSerializerNewFromInternalPtr

func ContentSerializerNewFromInternalPtr(ptr uintptr) *ContentSerializer

func (*ContentSerializer) GetCancellable

func (x *ContentSerializer) GetCancellable() *gio.Cancellable

Gets the cancellable for the current operation.

This is the `GCancellable` that was passed to [func@content_serialize_async].

func (*ContentSerializer) GetGtype

func (x *ContentSerializer) GetGtype() types.GType

Gets the `GType` to of the object to serialize.

func (*ContentSerializer) GetMimeType

func (x *ContentSerializer) GetMimeType() string

Gets the mime type to serialize to.

func (*ContentSerializer) GetOutputStream

func (x *ContentSerializer) GetOutputStream() *gio.OutputStream

Gets the output stream for the current operation.

This is the stream that was passed to [func@content_serialize_async].

func (*ContentSerializer) GetPriority

func (x *ContentSerializer) GetPriority() int

Gets the I/O priority for the current operation.

This is the priority that was passed to [func@content_serialize_async].

func (*ContentSerializer) GetSourceObject

func (x *ContentSerializer) GetSourceObject() *gobject.Object

Gets the source object from a [iface@Gio.AsyncResult].

func (*ContentSerializer) GetTaskData

func (x *ContentSerializer) GetTaskData() uintptr

Gets the data that was associated with the current operation.

See [method@Gdk.ContentSerializer.set_task_data].

func (*ContentSerializer) GetUserData

func (x *ContentSerializer) GetUserData() uintptr

Gets the user data that was passed when the serializer was registered.

func (*ContentSerializer) GetValue

func (x *ContentSerializer) GetValue() *gobject.Value

Gets the `GValue` to read the object to serialize from.

func (*ContentSerializer) GoPointer

func (c *ContentSerializer) GoPointer() uintptr

func (*ContentSerializer) IsTagged

func (x *ContentSerializer) IsTagged(SourceTagVar uintptr) bool

Checks if @res has the given @source_tag (generally a function pointer indicating the function @res was created by).

func (*ContentSerializer) LegacyPropagateError

func (x *ContentSerializer) LegacyPropagateError() (bool, error)

If @res is a [class@Gio.SimpleAsyncResult], this is equivalent to [method@Gio.SimpleAsyncResult.propagate_error]. Otherwise it returns `FALSE`.

This can be used for legacy error handling in async `*_finish()` wrapper functions that traditionally handled [class@Gio.SimpleAsyncResult] error returns themselves rather than calling into the virtual method. This should not be used in new code; [iface@Gio.AsyncResult] errors that are set by virtual methods should also be extracted by virtual methods, to enable subclasses to chain up correctly.

func (*ContentSerializer) ReturnError

func (x *ContentSerializer) ReturnError(ErrorVar *glib.Error)

Indicate that the serialization has ended with an error.

This function consumes @error.

func (*ContentSerializer) ReturnSuccess

func (x *ContentSerializer) ReturnSuccess()

Indicate that the serialization has been successfully completed.

func (*ContentSerializer) SetGoPointer

func (c *ContentSerializer) SetGoPointer(ptr uintptr)

func (*ContentSerializer) SetTaskData

func (x *ContentSerializer) SetTaskData(DataVar uintptr, NotifyVar *glib.DestroyNotify)

Associate data with the current serialization operation.

type CrossingEvent

type CrossingEvent struct {
	Event
}

An event caused by a pointing device moving between surfaces.

func CrossingEventNewFromInternalPtr

func CrossingEventNewFromInternalPtr(ptr uintptr) *CrossingEvent

func (*CrossingEvent) GetDetail

func (x *CrossingEvent) GetDetail() NotifyType

Extracts the notify detail from a crossing event.

func (*CrossingEvent) GetFocus

func (x *CrossingEvent) GetFocus() bool

Checks if the @event surface is the focus surface.

func (*CrossingEvent) GetMode

func (x *CrossingEvent) GetMode() CrossingMode

Extracts the crossing mode from a crossing event.

func (*CrossingEvent) GoPointer

func (c *CrossingEvent) GoPointer() uintptr

func (*CrossingEvent) SetGoPointer

func (c *CrossingEvent) SetGoPointer(ptr uintptr)

type CrossingMode

type CrossingMode int

Specifies the crossing mode for enter and leave events.

const (

	// crossing because of pointer motion.
	CrossingNormalValue CrossingMode = 0
	// crossing because a grab is activated.
	CrossingGrabValue CrossingMode = 1
	// crossing because a grab is deactivated.
	CrossingUngrabValue CrossingMode = 2
	// crossing because a GTK grab is activated.
	CrossingGtkGrabValue CrossingMode = 3
	// crossing because a GTK grab is deactivated.
	CrossingGtkUngrabValue CrossingMode = 4
	// crossing because a GTK widget changed
	//   state (e.g. sensitivity).
	CrossingStateChangedValue CrossingMode = 5
	// crossing because a touch sequence has begun,
	//   this event is synthetic as the pointer might have not left the surface.
	CrossingTouchBeginValue CrossingMode = 6
	// crossing because a touch sequence has ended,
	//   this event is synthetic as the pointer might have not left the surface.
	CrossingTouchEndValue CrossingMode = 7
	// 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.
	CrossingDeviceSwitchValue CrossingMode = 8
)

type Cursor

type Cursor struct {
	gobject.Object
}

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 [method@Gdk.Surface.set_cursor] or [method@Gdk.Surface.set_device_cursor]. Applications will typically use higher-level GTK functions such as [gtk_widget_set_cursor()](../gtk4/method.Widget.set_cursor.html) instead.

Cursors are not bound to a given [class@Gdk.Display], so they can be shared. However, the appearance of cursors may vary when used on different platforms.

## Named and texture cursors

There are multiple ways to create cursors. The platform's own cursors can be created with [ctor@Gdk.Cursor.new_from_name]. 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 [ctor@Gdk.Cursor.new_from_texture] and provide an image to use for the cursor.

To ease work with unsupported cursors, a fallback cursor can be provided. If a [class@Gdk.Surface] 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.

func CursorNewFromInternalPtr

func CursorNewFromInternalPtr(ptr uintptr) *Cursor

func NewCursorFromCallback

func NewCursorFromCallback(CallbackVar *CursorGetTextureCallback, DataVar uintptr, DestroyVar *glib.DestroyNotify, FallbackVar *Cursor) *Cursor

Creates a new callback-based cursor object.

Cursors of this kind produce textures for the cursor image on demand, when the @callback is called.

func NewCursorFromName

func NewCursorFromName(NameVar string, FallbackVar *Cursor) *Cursor

Creates a new cursor by looking up @name 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_cursor.png) | "default" | The default cursor | | ![](help_cursor.png) | "help" | Help is available | | ![](pointer_cursor.png) | "pointer" | Indicates a link or interactive element | | ![](context_menu_cursor.png) |"context-menu" | A context menu is available | | ![](progress_cursor.png) | "progress" | Progress indicator | | ![](wait_cursor.png) | "wait" | Busy cursor | | ![](cell_cursor.png) | "cell" | Cell(s) may be selected | | ![](crosshair_cursor.png) | "crosshair" | Simple crosshair | | ![](text_cursor.png) | "text" | Text may be selected | | ![](vertical_text_cursor.png) | "vertical-text" | Vertical text may be selected | | ![](alias_cursor.png) | "alias" | DND: Something will be linked | | ![](copy_cursor.png) | "copy" | DND: Something will be copied | | ![](move_cursor.png) | "move" | DND: Something will be moved | | ![](dnd_ask_cursor.png) | "dnd-ask" | DND: User can choose action to be carried out | | ![](no_drop_cursor.png) | "no-drop" | DND: Can't drop here | | ![](not_allowed_cursor.png) | "not-allowed" | DND: Action will not be carried out | | ![](grab_cursor.png) | "grab" | DND: Something can be grabbed | | ![](grabbing_cursor.png) | "grabbing" | DND: Something is being grabbed | | ![](n_resize_cursor.png) | "n-resize" | Resizing: Move north border | | ![](e_resize_cursor.png) | "e-resize" | Resizing: Move east border | | ![](s_resize_cursor.png) | "s-resize" | Resizing: Move south border | | ![](w_resize_cursor.png) | "w-resize" | Resizing: Move west border | | ![](ne_resize_cursor.png) | "ne-resize" | Resizing: Move north-east corner | | ![](nw_resize_cursor.png) | "nw-resize" | Resizing: Move north-west corner | | ![](sw_resize_cursor.png) | "sw-resize" | Resizing: Move south-west corner | | ![](se_resize_cursor.png) | "se-resize" | Resizing: Move south-east corner | | ![](col_resize_cursor.png) | "col-resize" | Resizing: Move an item or border horizontally | | ![](row_resize_cursor.png) | "row-resize" | Resizing: Move an item or border vertically | | ![](ew_resize_cursor.png) | "ew-resize" | Moving: Something can be moved horizontally | | ![](ns_resize_cursor.png) | "ns-resize" | Moving: Something can be moved vertically | | ![](nesw_resize_cursor.png) | "nesw-resize" | Moving: Something can be moved diagonally, north-east to south-west | | ![](nwse_resize_cursor.png) | "nwse-resize" | Moving: something can be moved diagonally, north-west to south-east | | ![](all_resize_cursor.png) | "all-resize" | Moving: Something can be moved in any direction | | ![](all_scroll_cursor.png) | "all-scroll" | Can scroll in any direction | | ![](zoom_in_cursor.png) | "zoom-in" | Zoom in | | ![](zoom_out_cursor.png) | "zoom-out" | Zoom out |

func NewCursorFromTexture

func NewCursorFromTexture(TextureVar *Texture, HotspotXVar int, HotspotYVar int, FallbackVar *Cursor) *Cursor

Creates a new cursor from a `GdkTexture`.

func (*Cursor) GetFallback

func (x *Cursor) GetFallback() *Cursor

Returns the fallback for this @cursor.

The fallback will be used if this cursor is not available on a given `GdkDisplay`. 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 `GdkDisplay` it is used on does not support textured cursors.

func (*Cursor) GetHotspotX

func (x *Cursor) GetHotspotX() int

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 [ctor@Gdk.Cursor.new_from_texture].

func (*Cursor) GetHotspotY

func (x *Cursor) GetHotspotY() int

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 [ctor@Gdk.Cursor.new_from_texture].

func (*Cursor) GetName

func (x *Cursor) GetName() string

Returns the name of the cursor.

If the cursor is not a named cursor, %NULL will be returned.

func (*Cursor) GetPropertyHotspotX

func (x *Cursor) GetPropertyHotspotX() int

GetPropertyHotspotX gets the "hotspot-x" property. X position of the cursor hotspot in the cursor image.

func (*Cursor) GetPropertyHotspotY

func (x *Cursor) GetPropertyHotspotY() int

GetPropertyHotspotY gets the "hotspot-y" property. Y position of the cursor hotspot in the cursor image.

func (*Cursor) GetPropertyName

func (x *Cursor) GetPropertyName() string

GetPropertyName gets the "name" property. Name of this this cursor.

The name will be %NULL if the cursor was created from a texture.

func (*Cursor) GetTexture

func (x *Cursor) GetTexture() *Texture

Returns the texture for the cursor.

If the cursor is a named cursor, %NULL will be returned.

func (*Cursor) GoPointer

func (c *Cursor) GoPointer() uintptr

func (*Cursor) SetGoPointer

func (c *Cursor) SetGoPointer(ptr uintptr)

func (*Cursor) SetPropertyHotspotX

func (x *Cursor) SetPropertyHotspotX(value int)

SetPropertyHotspotX sets the "hotspot-x" property. X position of the cursor hotspot in the cursor image.

func (*Cursor) SetPropertyHotspotY

func (x *Cursor) SetPropertyHotspotY(value int)

SetPropertyHotspotY sets the "hotspot-y" property. Y position of the cursor hotspot in the cursor image.

func (*Cursor) SetPropertyName

func (x *Cursor) SetPropertyName(value string)

SetPropertyName sets the "name" property. Name of this this cursor.

The name will be %NULL if the cursor was created from a texture.

type CursorGetTextureCallback

type CursorGetTextureCallback func(uintptr, int, float64, *int, *int, *int, *int, uintptr) uintptr

The type of callback used by a dynamic `GdkCursor` to generate a texture for the cursor image at the given @cursor_size and @scale.

The actual cursor size in application pixels may be different from @cursor_size x @cursor_size, and will be returned in @width, @height. The returned texture should have a size that corresponds to the actual cursor size, in device pixels (i.e. application pixels, multiplied by @scale).

This function may fail and return `NULL`, in which case the fallback cursor will be used.

type DNDEvent

type DNDEvent struct {
	Event
}

An event related to drag and drop operations.

func DNDEventNewFromInternalPtr

func DNDEventNewFromInternalPtr(ptr uintptr) *DNDEvent

func (*DNDEvent) GetDrop

func (x *DNDEvent) GetDrop() *Drop

Gets the `GdkDrop` object from a DND event.

func (*DNDEvent) GoPointer

func (c *DNDEvent) GoPointer() uintptr

func (*DNDEvent) SetGoPointer

func (c *DNDEvent) SetGoPointer(ptr uintptr)

type DeleteEvent

type DeleteEvent struct {
	Event
}

An event related to closing a top-level surface.

func DeleteEventNewFromInternalPtr

func DeleteEventNewFromInternalPtr(ptr uintptr) *DeleteEvent

func (*DeleteEvent) GoPointer

func (c *DeleteEvent) GoPointer() uintptr

func (*DeleteEvent) SetGoPointer

func (c *DeleteEvent) SetGoPointer(ptr uintptr)

type Device

type Device struct {
	gobject.Object
}

Represents an input device, such as a keyboard, mouse or touchpad.

See the [class@Gdk.Seat] documentation for more information about the various kinds of devices, and their relationships.

func DeviceNewFromInternalPtr

func DeviceNewFromInternalPtr(ptr uintptr) *Device

func (*Device) ConnectChanged

func (x *Device) ConnectChanged(cb *func(Device)) uint

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.

func (*Device) ConnectToolChanged

func (x *Device) ConnectToolChanged(cb *func(Device, uintptr)) uint

Emitted on pen/eraser devices whenever tools enter or leave proximity.

func (*Device) GetActiveLayoutIndex

func (x *Device) GetActiveLayoutIndex() int

Retrieves the index of the active layout of the keyboard.

If there is no valid active layout for the `GdkDevice`, this function will return -1;

This is only relevant for keyboard devices.

func (*Device) GetCapsLockState

func (x *Device) GetCapsLockState() bool

Retrieves whether the Caps Lock modifier of the keyboard is locked.

This is only relevant for keyboard devices.

func (*Device) GetDeviceTool

func (x *Device) GetDeviceTool() *DeviceTool

Retrieves the current tool for @device.

func (*Device) GetDirection

func (x *Device) GetDirection() pango.Direction

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 [func@Pango.unichar_direction].

func (*Device) GetDisplay

func (x *Device) GetDisplay() *Display

Returns the `GdkDisplay` to which @device pertains.

func (*Device) GetHasCursor

func (x *Device) GetHasCursor() bool

Determines whether the pointer follows device motion.

This is not meaningful for keyboard devices, which don't have a pointer.

func (*Device) GetLayoutNames

func (x *Device) GetLayoutNames() []string

Retrieves the names of the layouts of the keyboard.

This is only relevant for keyboard devices.

func (*Device) GetModifierState

func (x *Device) GetModifierState() ModifierType

Retrieves the current modifier state of the keyboard.

This is only relevant for keyboard devices.

func (*Device) GetName

func (x *Device) GetName() string

The name of the device, suitable for showing in a user interface.

func (*Device) GetNumLockState

func (x *Device) GetNumLockState() bool

Retrieves whether the Num Lock modifier of the keyboard is locked.

This is only relevant for keyboard devices.

func (*Device) GetNumTouches

func (x *Device) GetNumTouches() uint

Retrieves the number of touch points associated to @device.

func (*Device) GetProductId

func (x *Device) GetProductId() string

Returns the product ID of this device.

This ID is retrieved from the device, and does not change. See [method@Gdk.Device.get_vendor_id] for more information.

func (*Device) GetPropertyActiveLayoutIndex

func (x *Device) GetPropertyActiveLayoutIndex() int

GetPropertyActiveLayoutIndex gets the "active-layout-index" property. The index of the keyboard active layout of a `GdkDevice`.

Will be -1 if there is no valid active layout.

This is only relevant for keyboard devices.

func (*Device) GetPropertyCapsLockState

func (x *Device) GetPropertyCapsLockState() bool

GetPropertyCapsLockState gets the "caps-lock-state" property. Whether Caps Lock is on.

This is only relevant for keyboard devices.

func (*Device) GetPropertyHasBidiLayouts

func (x *Device) GetPropertyHasBidiLayouts() bool

GetPropertyHasBidiLayouts gets the "has-bidi-layouts" property. Whether the device has both right-to-left and left-to-right layouts.

This is only relevant for keyboard devices.

func (*Device) GetPropertyHasCursor

func (x *Device) GetPropertyHasCursor() bool

GetPropertyHasCursor gets the "has-cursor" property. Whether the device is represented by a cursor on the screen.

func (*Device) GetPropertyLayoutNames

func (x *Device) GetPropertyLayoutNames() []string

GetPropertyLayoutNames gets the "layout-names" property. The names of the keyboard layouts of a `GdkDevice`.

This is only relevant for keyboard devices.

func (*Device) GetPropertyNAxes

func (x *Device) GetPropertyNAxes() uint

GetPropertyNAxes gets the "n-axes" property. Number of axes in the device.

func (*Device) GetPropertyName

func (x *Device) GetPropertyName() string

GetPropertyName gets the "name" property. The device name.

func (*Device) GetPropertyNumLockState

func (x *Device) GetPropertyNumLockState() bool

GetPropertyNumLockState gets the "num-lock-state" property. Whether Num Lock is on.

This is only relevant for keyboard devices.

func (*Device) GetPropertyNumTouches

func (x *Device) GetPropertyNumTouches() uint

GetPropertyNumTouches gets the "num-touches" property. The maximal number of concurrent touches on a touch device.

Will be 0 if the device is not a touch device or if the number of touches is unknown.

func (*Device) GetPropertyProductId

func (x *Device) GetPropertyProductId() string

GetPropertyProductId gets the "product-id" property. Product ID of this device.

See [method@Gdk.Device.get_product_id].

func (*Device) GetPropertyScrollLockState

func (x *Device) GetPropertyScrollLockState() bool

GetPropertyScrollLockState gets the "scroll-lock-state" property. Whether Scroll Lock is on.

This is only relevant for keyboard devices.

func (*Device) GetPropertyVendorId

func (x *Device) GetPropertyVendorId() string

GetPropertyVendorId gets the "vendor-id" property. Vendor ID of this device.

See [method@Gdk.Device.get_vendor_id].

func (*Device) GetScrollLockState

func (x *Device) GetScrollLockState() bool

Retrieves whether the Scroll Lock modifier of the keyboard is locked.

This is only relevant for keyboard devices.

func (*Device) GetSeat

func (x *Device) GetSeat() *Seat

Returns the `GdkSeat` the device belongs to.

func (*Device) GetSource

func (x *Device) GetSource() InputSource

Determines the type of the device.

func (*Device) GetSurfaceAtPosition

func (x *Device) GetSurfaceAtPosition(WinXVar *float64, WinYVar *float64) *Surface

Obtains the surface underneath @device, returning the location of the device in @win_x and @win_y.

Returns %NULL if the surface tree under @device is not known to GDK (for example, belongs to another application).

func (*Device) GetTimestamp

func (x *Device) GetTimestamp() uint32

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).

func (*Device) GetVendorId

func (x *Device) GetVendorId() string

Returns the vendor ID of this device.

This ID is retrieved from the device, and does not change.

This function, together with [method@Gdk.Device.get_product_id], can be used to eg. compose `GSettings` paths to store settings for this device.

```c

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;
}

```

func (*Device) GoPointer

func (c *Device) GoPointer() uintptr

func (*Device) HasBidiLayouts

func (x *Device) HasBidiLayouts() bool

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.

func (*Device) SetGoPointer

func (c *Device) SetGoPointer(ptr uintptr)

func (*Device) SetPropertyHasCursor

func (x *Device) SetPropertyHasCursor(value bool)

SetPropertyHasCursor sets the "has-cursor" property. Whether the device is represented by a cursor on the screen.

func (*Device) SetPropertyName

func (x *Device) SetPropertyName(value string)

SetPropertyName sets the "name" property. The device name.

func (*Device) SetPropertyNumTouches

func (x *Device) SetPropertyNumTouches(value uint)

SetPropertyNumTouches sets the "num-touches" property. The maximal number of concurrent touches on a touch device.

Will be 0 if the device is not a touch device or if the number of touches is unknown.

func (*Device) SetPropertyProductId

func (x *Device) SetPropertyProductId(value string)

SetPropertyProductId sets the "product-id" property. Product ID of this device.

See [method@Gdk.Device.get_product_id].

func (*Device) SetPropertyVendorId

func (x *Device) SetPropertyVendorId(value string)

SetPropertyVendorId sets the "vendor-id" property. Vendor ID of this device.

See [method@Gdk.Device.get_vendor_id].

type DevicePad

type DevicePad interface {
	GoPointer() uintptr
	SetGoPointer(uintptr)
	GetFeatureGroup(FeatureVar DevicePadFeature, FeatureIdxVar int) int
	GetGroupNModes(GroupIdxVar int) int
	GetNFeatures(FeatureVar DevicePadFeature) int
	GetNGroups() int
}

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. [method@Gdk.DevicePad.get_n_groups] can be used to obtain the number of groups, [method@Gdk.DevicePad.get_n_features] and [method@Gdk.DevicePad.get_feature_group] 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 [method@Gdk.DevicePad.get_group_n_modes], and the current mode for a given group will be notified through events of type `GDK_PAD_GROUP_MODE`.

type DevicePadBase

type DevicePadBase struct {
	Ptr uintptr
}

func (*DevicePadBase) GetFeatureGroup

func (x *DevicePadBase) GetFeatureGroup(FeatureVar DevicePadFeature, FeatureIdxVar int) int

Returns the group the given @feature and @idx belong to.

f the feature or index do not exist in @pad, -1 is returned.

func (*DevicePadBase) GetGroupNModes

func (x *DevicePadBase) GetGroupNModes(GroupIdxVar int) int

Returns the number of modes that @group may have.

func (*DevicePadBase) GetNFeatures

func (x *DevicePadBase) GetNFeatures(FeatureVar DevicePadFeature) int

Returns the number of features a tablet pad has.

func (*DevicePadBase) GetNGroups

func (x *DevicePadBase) GetNGroups() int

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.

func (*DevicePadBase) GoPointer

func (x *DevicePadBase) GoPointer() uintptr

func (*DevicePadBase) SetGoPointer

func (x *DevicePadBase) SetGoPointer(ptr uintptr)

type DevicePadFeature

type DevicePadFeature int

A pad feature.

const (

	// a button
	DevicePadFeatureButtonValue DevicePadFeature = 0
	// a ring-shaped interactive area
	DevicePadFeatureRingValue DevicePadFeature = 1
	// a straight interactive area
	DevicePadFeatureStripValue DevicePadFeature = 2
)

type DevicePadInterface

type DevicePadInterface struct {
	// contains filtered or unexported fields
}

func (*DevicePadInterface) GoPointer

func (x *DevicePadInterface) GoPointer() uintptr

type DeviceTool

type DeviceTool struct {
	gobject.Object
}

A physical tool associated to a `GdkDevice`.

func DeviceToolNewFromInternalPtr

func DeviceToolNewFromInternalPtr(ptr uintptr) *DeviceTool

func (*DeviceTool) GetAxes

func (x *DeviceTool) GetAxes() AxisFlags

Gets the axes of the tool.

func (*DeviceTool) GetHardwareId

func (x *DeviceTool) GetHardwareId() uint64

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 @hardware_id, but will have different serial numbers (see [method@Gdk.DeviceTool.get_serial]).

This is a more concrete (and device specific) method to identify a `GdkDeviceTool` than [method@Gdk.DeviceTool.get_tool_type], as a tablet may support multiple devices with the same `GdkDeviceToolType`, but different hardware identifiers.

func (*DeviceTool) GetPropertyHardwareId

func (x *DeviceTool) GetPropertyHardwareId() uint64

GetPropertyHardwareId gets the "hardware-id" property. The hardware ID of the tool.

func (*DeviceTool) GetPropertySerial

func (x *DeviceTool) GetPropertySerial() uint64

GetPropertySerial gets the "serial" property. The serial number of the tool.

func (*DeviceTool) GetSerial

func (x *DeviceTool) GetSerial() uint64

Gets the serial number of this tool.

This value can be used to identify a physical tool (eg. a tablet pen) across program executions.

func (*DeviceTool) GetToolType

func (x *DeviceTool) GetToolType() DeviceToolType

Gets the `GdkDeviceToolType` of the tool.

func (*DeviceTool) GoPointer

func (c *DeviceTool) GoPointer() uintptr

func (*DeviceTool) SetGoPointer

func (c *DeviceTool) SetGoPointer(ptr uintptr)

func (*DeviceTool) SetPropertyHardwareId

func (x *DeviceTool) SetPropertyHardwareId(value uint64)

SetPropertyHardwareId sets the "hardware-id" property. The hardware ID of the tool.

func (*DeviceTool) SetPropertySerial

func (x *DeviceTool) SetPropertySerial(value uint64)

SetPropertySerial sets the "serial" property. The serial number of the tool.

type DeviceToolType

type DeviceToolType int

Indicates the specific type of tool being used being a tablet. Such as an airbrush, pencil, etc.

const (

	// Tool is of an unknown type.
	DeviceToolTypeUnknownValue DeviceToolType = 0
	// Tool is a standard tablet stylus.
	DeviceToolTypePenValue DeviceToolType = 1
	// Tool is standard tablet eraser.
	DeviceToolTypeEraserValue DeviceToolType = 2
	// Tool is a brush stylus.
	DeviceToolTypeBrushValue DeviceToolType = 3
	// Tool is a pencil stylus.
	DeviceToolTypePencilValue DeviceToolType = 4
	// Tool is an airbrush stylus.
	DeviceToolTypeAirbrushValue DeviceToolType = 5
	// Tool is a mouse.
	DeviceToolTypeMouseValue DeviceToolType = 6
	// Tool is a lens cursor.
	DeviceToolTypeLensValue DeviceToolType = 7
)

type Display

type Display struct {
	gobject.Object
}

A representation of a workstation.

Their purpose are two-fold:

- To manage and provide information about input devices (pointers, keyboards, etc) - To manage and provide information about output devices (monitors, projectors, etc)

Most of the input device handling has been factored out into separate [class@Gdk.Seat] objects. Every display has a one or more seats, which can be accessed with [method@Gdk.Display.get_default_seat] and [method@Gdk.Display.list_seats].

Output devices are represented by [class@Gdk.Monitor] objects, which can be accessed with [method@Gdk.Display.get_monitor_at_surface] and similar APIs.

func DisplayGetDefault

func DisplayGetDefault() *Display

Gets the default `GdkDisplay`.

This is a convenience function for:

gdk_display_manager_get_default_display (gdk_display_manager_get ())

func DisplayNewFromInternalPtr

func DisplayNewFromInternalPtr(ptr uintptr) *Display

func DisplayOpen

func DisplayOpen(DisplayNameVar *string) *Display

Opens a display.

If opening the display fails, `NULL` is returned.

func (*Display) Beep

func (x *Display) Beep()

Emits a short beep on @display

func (*Display) Close

func (x *Display) Close()

Closes the connection to the windowing system for the given display.

This cleans up associated resources.

func (*Display) ConnectClosed

func (x *Display) ConnectClosed(cb *func(Display, bool)) uint

Emitted when the connection to the windowing system for @display is closed.

func (*Display) ConnectOpened

func (x *Display) ConnectOpened(cb *func(Display)) uint

Emitted when the connection to the windowing system for @display is opened.

func (*Display) ConnectSeatAdded

func (x *Display) ConnectSeatAdded(cb *func(Display, uintptr)) uint

Emitted whenever a new seat is made known to the windowing system.

func (*Display) ConnectSeatRemoved

func (x *Display) ConnectSeatRemoved(cb *func(Display, uintptr)) uint

Emitted whenever a seat is removed by the windowing system.

func (*Display) ConnectSettingChanged

func (x *Display) ConnectSettingChanged(cb *func(Display, string)) uint

Emitted whenever a setting changes its value.

func (*Display) CreateGlContext

func (x *Display) CreateGlContext() (*GLContext, error)

Creates a new `GdkGLContext` for the `GdkDisplay`.

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 `GdkGLContext` failed, @error will be set. Before using the returned `GdkGLContext`, you will need to call [method@Gdk.GLContext.make_current] or [method@Gdk.GLContext.realize].

func (*Display) DeviceIsGrabbed

func (x *Display) DeviceIsGrabbed(DeviceVar *Device) bool

Returns %TRUE if there is an ongoing grab on @device for @display.

func (*Display) Flush

func (x *Display) Flush()

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.

func (*Display) GetAppLaunchContext

func (x *Display) GetAppLaunchContext() *AppLaunchContext

Returns a `GdkAppLaunchContext` suitable for launching applications on the given display.

func (*Display) GetClipboard

func (x *Display) GetClipboard() *Clipboard

Gets the clipboard used for copy/paste operations.

func (*Display) GetDefaultSeat

func (x *Display) GetDefaultSeat() *Seat

Returns the default `GdkSeat` for this display.

Note that a display may not have a seat. In this case, this function will return %NULL.

func (*Display) GetDmabufFormats

func (x *Display) GetDmabufFormats() *DmabufFormats

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 [class@Gdk.DmabufTextureBuilder].

This function is threadsafe. It can be called from any thread.

func (*Display) GetMonitorAtSurface

func (x *Display) GetMonitorAtSurface(SurfaceVar *Surface) *Monitor

Gets the monitor in which the largest area of @surface resides.

func (*Display) GetMonitors

func (x *Display) GetMonitors() *gio.ListModelBase

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::items-changed signal on this list to monitor changes to the monitor of this display.

func (*Display) GetName

func (x *Display) GetName() string

Gets the name of the display.

func (*Display) GetPrimaryClipboard

func (x *Display) GetPrimaryClipboard() *Clipboard

Gets the clipboard used for the primary selection.

On backends where the primary clipboard is not supported natively, GDK emulates this clipboard locally.

func (*Display) GetPropertyComposited

func (x *Display) GetPropertyComposited() bool

GetPropertyComposited gets the "composited" property. %TRUE if the display properly composites the alpha channel.

func (*Display) GetPropertyDmabufFormats

func (x *Display) GetPropertyDmabufFormats() uintptr

GetPropertyDmabufFormats gets the "dmabuf-formats" property. The dma-buf formats that are supported on this display

func (*Display) GetPropertyInputShapes

func (x *Display) GetPropertyInputShapes() bool

GetPropertyInputShapes gets the "input-shapes" property. %TRUE if the display supports input shapes.

func (*Display) GetPropertyRgba

func (x *Display) GetPropertyRgba() bool

GetPropertyRgba gets the "rgba" property. %TRUE if the display supports an alpha channel.

func (*Display) GetPropertyShadowWidth

func (x *Display) GetPropertyShadowWidth() bool

GetPropertyShadowWidth gets the "shadow-width" property. %TRUE if the display supports extensible frames.

func (*Display) GetSetting

func (x *Display) GetSetting(NameVar string, ValueVar *gobject.Value) bool

Retrieves a desktop-wide setting such as double-click time for the @display.

func (*Display) GetStartupNotificationId

func (x *Display) GetStartupNotificationId() string

Gets the startup notification ID for a Wayland display, or %NULL if no ID has been defined.

func (*Display) GoPointer

func (c *Display) GoPointer() uintptr

func (*Display) IsClosed

func (x *Display) IsClosed() bool

Finds out if the display has been closed.

func (*Display) IsComposited

func (x *Display) IsComposited() bool

Returns whether surfaces can reasonably be expected to have their alpha channel drawn correctly on the screen.

Check [method@Gdk.Display.is_rgba] for whether the display supports an alpha channel.

On X11 this function returns whether a compositing manager is compositing on @display.

On modern displays, this value is always %TRUE.

func (*Display) IsRgba

func (x *Display) IsRgba() bool

Returns whether surfaces on this @display are created with an alpha channel.

Even if a %TRUE 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 [method@Gdk.Display.is_composited] to check if that is the case.

On modern displays, this value is always %TRUE.

func (*Display) ListSeats

func (x *Display) ListSeats() *glib.List

Returns the list of seats known to @display.

func (*Display) MapKeycode

func (x *Display) MapKeycode(KeycodeVar uint, KeysVar *uintptr, KeyvalsVar *[]uint, NEntriesVar *int) bool

Returns the keyvals bound to @keycode.

The Nth `GdkKeymapKey` in @keys is bound to the Nth keyval in @keyvals.

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 g_free().

func (*Display) MapKeyval

func (x *Display) MapKeyval(KeyvalVar uint, KeysVar *uintptr, NKeysVar *int) bool

Obtains a list of keycode/group/level combinations that will generate @keyval.

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.

`GdkEventKey` contains a %group field that indicates the active keyboard group. The level is computed from the modifier mask.

The returned array should be freed with g_free().

func (*Display) NotifyStartupComplete

func (x *Display) NotifyStartupComplete(StartupIdVar string)

Indicates to the GUI environment that the application has finished loading, using a given identifier.

GTK will call this function automatically for [GtkWindow](../gtk4/class.Window.html) with custom startup-notification identifier unless [gtk_window_set_auto_startup_notification()](../gtk4/method.Window.set_auto_startup_notification.html) is called to disable that feature.

func (*Display) PrepareGl

func (x *Display) PrepareGl() (bool, error)

Checks that OpenGL is available for @self and ensures that it is properly initialized. When this fails, an @error will be set describing the error and this function returns %FALSE.

Note that even if this function succeeds, creating a `GdkGLContext` 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.

func (*Display) PutEvent

func (x *Display) PutEvent(EventVar *Event)

Adds the given event to the event queue for @display.

func (*Display) SetGoPointer

func (c *Display) SetGoPointer(ptr uintptr)

func (*Display) SupportsInputShapes

func (x *Display) SupportsInputShapes() bool

Returns %TRUE if the display supports input shapes.

This means that [method@Gdk.Surface.set_input_region] can be used to modify the input shape of surfaces on @display.

On modern displays, this value is always %TRUE.

func (*Display) SupportsShadowWidth

func (x *Display) SupportsShadowWidth() bool

Returns whether it's possible for a surface to draw outside of the window area.

If %TRUE is returned the application decides if it wants to draw shadows. If %FALSE is returned, the compositor decides if it wants to draw shadows.

func (*Display) Sync

func (x *Display) Sync()

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 [method@Gdk.Display.sync] before [method@GdkX11.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.

func (*Display) TranslateKey

func (x *Display) TranslateKey(KeycodeVar uint, StateVar ModifierType, GroupVar int, KeyvalVar *uint, EffectiveGroupVar *int, LevelVar *int, ConsumedVar *ModifierType) bool

Translates the contents of a `GdkEventKey` into a keyval, effective group, and level.

Modifiers that affected the translation and are thus unavailable for application use are returned in @consumed_modifiers.

The @effective_group is the group that was actually used for the translation; some keys such as Enter are not affected by the active keyboard group. The @level is derived from @state.

@consumed_modifiers gives modifiers that should be masked out from @state when comparing this key press to a keyboard shortcut. For instance, on a US keyboard, the `plus` symbol is shifted, so when comparing a key press to a `<Control>plus` accelerator `<Shift>` should be masked out.

This function should rarely be needed, since `GdkEventKey` already contains the translated keyval. It is exported for the benefit of virtualized test environments.

type DisplayManager

type DisplayManager struct {
	gobject.Object
}

Offers notification when displays appear or disappear.

`GdkDisplayManager` is a singleton object.

You can use [func@Gdk.DisplayManager.get] to obtain the `GdkDisplayManager` singleton, but that should be rarely necessary. Typically, initializing GTK opens a display that you can work with without ever accessing the `GdkDisplayManager`.

The GDK library can be built with support for multiple backends. The `GdkDisplayManager` 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 [func@Gdk.set_allowed_backends]. Note that you need to call this function before initializing GTK.

## Backend-specific code

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 `GDK_WINDOWING_X11`, `GDK_WINDOWING_WIN32` 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 GDK_IS_X11_DISPLAY() to find out which backend is in use:

```c #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");

```

func DisplayManagerGet

func DisplayManagerGet() *DisplayManager

Gets the singleton `GdkDisplayManager` object.

When called for the first time, this function consults the `GDK_BACKEND` 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@set_allowed_backends] to limit what backends will be used.

func DisplayManagerNewFromInternalPtr

func DisplayManagerNewFromInternalPtr(ptr uintptr) *DisplayManager

func (*DisplayManager) ConnectDisplayOpened

func (x *DisplayManager) ConnectDisplayOpened(cb *func(DisplayManager, uintptr)) uint

Emitted when a display is opened.

func (*DisplayManager) GetDefaultDisplay

func (x *DisplayManager) GetDefaultDisplay() *Display

Gets the default `GdkDisplay`.

func (*DisplayManager) GoPointer

func (c *DisplayManager) GoPointer() uintptr

func (*DisplayManager) ListDisplays

func (x *DisplayManager) ListDisplays() *glib.SList

List all currently open displays.

func (*DisplayManager) OpenDisplay

func (x *DisplayManager) OpenDisplay(NameVar *string) *Display

Opens a display.

func (*DisplayManager) SetDefaultDisplay

func (x *DisplayManager) SetDefaultDisplay(DisplayVar *Display)

Sets @display as the default display.

func (*DisplayManager) SetGoPointer

func (c *DisplayManager) SetGoPointer(ptr uintptr)

type DmabufError

type DmabufError int

Error enumeration for `GdkDmabufTexture`.

const (

	// Dmabuf support is not available, because the OS
	//   is not Linux, or it was explicitly disabled at compile- or runtime
	DmabufErrorNotAvailableValue DmabufError = 0
	// The requested format is not supported
	DmabufErrorUnsupportedFormatValue DmabufError = 1
	// GTK failed to create the resource for other
	//   reasons
	DmabufErrorCreationFailedValue DmabufError = 2
)

type DmabufFormats

type DmabufFormats struct {
	// contains filtered or unexported fields
}

Provides information about supported DMA buffer formats.

You can query whether a given format is supported with [method@Gdk.DmabufFormats.contains] and you can iterate over the list of all supported formats with [method@Gdk.DmabufFormats.get_n_formats] and [method@Gdk.DmabufFormats.get_format].

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 `DMA_FORMAT_MOD_INVALID`, indicating that **_implicit modifiers_** may be used with this format.

See [class@Gdk.DmabufTextureBuilder] for more information about DMA buffers.

Note that DMA buffers only exist on Linux.

func (*DmabufFormats) Contains

func (x *DmabufFormats) Contains(FourccVar uint32, ModifierVar uint64) bool

Returns whether a given format is contained in @formats.

func (*DmabufFormats) Equal

func (x *DmabufFormats) Equal(Formats2Var *DmabufFormats) bool

Returns whether @formats1 and @formats2 contain the same dmabuf formats, in the same order.

func (*DmabufFormats) GetFormat

func (x *DmabufFormats) GetFormat(IdxVar uint, FourccVar *uint32, ModifierVar *uint64)

Gets the fourcc code and modifier for a format that is contained in @formats.

func (*DmabufFormats) GetNFormats

func (x *DmabufFormats) GetNFormats() uint

Returns the number of formats that the @formats object contains.

Note that DMA buffers are a Linux concept, so on other platforms, [method@Gdk.DmabufFormats.get_n_formats] will always return zero.

func (*DmabufFormats) GoPointer

func (x *DmabufFormats) GoPointer() uintptr

func (*DmabufFormats) Ref

func (x *DmabufFormats) Ref() *DmabufFormats

Increases the reference count of @formats.

func (*DmabufFormats) Unref

func (x *DmabufFormats) Unref()

Decreases the reference count of @formats.

When the reference count reaches zero, the object is freed.

type DmabufTexture

type DmabufTexture struct {
	Texture
}

A `GdkTexture` representing a DMA buffer.

To create a `GdkDmabufTexture`, use the auxiliary [class@Gdk.DmabufTextureBuilder] object.

Dma-buf textures can only be created on Linux.

func DmabufTextureNewFromInternalPtr

func DmabufTextureNewFromInternalPtr(ptr uintptr) *DmabufTexture

func (*DmabufTexture) ComputeConcreteSize

func (x *DmabufTexture) ComputeConcreteSize(SpecifiedWidthVar float64, SpecifiedHeightVar float64, DefaultWidthVar float64, DefaultHeightVar float64, ConcreteWidthVar *float64, ConcreteHeightVar *float64)

Compute a concrete size for the `GdkPaintable`.

Applies the sizing algorithm outlined in the [CSS Image spec](https://drafts.csswg.org/css-images-3/#default-sizing) to the given @paintable. See that link for more details.

It is not necessary to call this function when both @specified_width and @specified_height 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.

func (*DmabufTexture) Equal

func (x *DmabufTexture) Equal(Icon2Var gio.Icon) bool

Checks if two icons are equal.

func (*DmabufTexture) GetCurrentImage

func (x *DmabufTexture) GetCurrentImage() *PaintableBase

Gets an immutable paintable for the current contents displayed by @paintable.

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 @paintable is already immutable, it will return itself.

func (*DmabufTexture) GetFlags

func (x *DmabufTexture) GetFlags() PaintableFlags

Get flags for the paintable.

This is oftentimes useful for optimizations.

See [flags@Gdk.PaintableFlags] for the flags and what they mean.

func (*DmabufTexture) GetIntrinsicAspectRatio

func (x *DmabufTexture) GetIntrinsicAspectRatio() float64

Gets the preferred aspect ratio the @paintable 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 @paintable 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 [method@Gdk.Paintable.snapshot].

Usually when a @paintable returns nonzero values from [method@Gdk.Paintable.get_intrinsic_width] and [method@Gdk.Paintable.get_intrinsic_height] the aspect ratio should conform to those values, though that is not required.

If the @paintable does not have a preferred aspect ratio, it returns 0. Negative values are never returned.

func (*DmabufTexture) GetIntrinsicHeight

func (x *DmabufTexture) GetIntrinsicHeight() int

Gets the preferred height the @paintable 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 [method@Gdk.Paintable.snapshot].

If the @paintable does not have a preferred height, it returns 0. Negative values are never returned.

func (*DmabufTexture) GetIntrinsicWidth

func (x *DmabufTexture) GetIntrinsicWidth() int

Gets the preferred width the @paintable 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 [method@Gdk.Paintable.snapshot].

If the @paintable does not have a preferred width, it returns 0. Negative values are never returned.

func (*DmabufTexture) GoPointer

func (c *DmabufTexture) GoPointer() uintptr

func (*DmabufTexture) Hash

func (x *DmabufTexture) Hash() uint

Gets a hash for an icon.

func (*DmabufTexture) InvalidateContents

func (x *DmabufTexture) InvalidateContents()

Called by implementations of `GdkPaintable` to invalidate their contents.

Unless the contents are invalidated, implementations must guarantee that multiple calls of [method@Gdk.Paintable.snapshot] produce the same output.

This function will emit the [signal@Gdk.Paintable::invalidate-contents] signal.

If a @paintable reports the %GDK_PAINTABLE_STATIC_CONTENTS flag, it must not call this function.

func (*DmabufTexture) InvalidateSize

func (x *DmabufTexture) InvalidateSize()

Called by implementations of `GdkPaintable` to invalidate their size.

As long as the size is not invalidated, @paintable must return the same values for its intrinsic width, height and aspect ratio.

This function will emit the [signal@Gdk.Paintable::invalidate-size] signal.

If a @paintable reports the %GDK_PAINTABLE_STATIC_SIZE flag, it must not call this function.

func (*DmabufTexture) Load

func (x *DmabufTexture) Load(SizeVar int, TypeVar *string, CancellableVar *gio.Cancellable) (*gio.InputStream, error)

Loads a loadable icon. For the asynchronous version of this function, see g_loadable_icon_load_async().

func (*DmabufTexture) LoadAsync

func (x *DmabufTexture) LoadAsync(SizeVar int, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr)

Loads an icon asynchronously. To finish this function, see g_loadable_icon_load_finish(). For the synchronous, blocking version of this function, see g_loadable_icon_load().

func (*DmabufTexture) LoadFinish

func (x *DmabufTexture) LoadFinish(ResVar gio.AsyncResult, TypeVar *string) (*gio.InputStream, error)

Finishes an asynchronous icon load started in g_loadable_icon_load_async().

func (*DmabufTexture) Serialize

func (x *DmabufTexture) Serialize() *glib.Variant

Serializes a #GIcon into a #GVariant. An equivalent #GIcon can be retrieved back by calling g_icon_deserialize() on the returned value. As serialization will avoid using raw icon data when possible, it only makes sense to transfer the #GVariant between processes on the same machine, (as opposed to over the network), and within the same file system namespace.

func (*DmabufTexture) SetGoPointer

func (c *DmabufTexture) SetGoPointer(ptr uintptr)

func (*DmabufTexture) Snapshot

func (x *DmabufTexture) Snapshot(SnapshotVar *Snapshot, WidthVar float64, HeightVar float64)

Snapshots the given paintable with the given @width and @height.

The paintable is drawn at the current (0,0) offset of the @snapshot. If @width and @height are not larger than zero, this function will do nothing.

func (*DmabufTexture) ToString

func (x *DmabufTexture) ToString() string

Generates a textual representation of @icon that can be used for serialization such as when passing @icon to a different process or saving it to persistent storage. Use g_icon_new_for_string() to get @icon back from the returned string.

The encoding of the returned string is proprietary to #GIcon except in the following two cases

  • If @icon is a #GFileIcon, the returned string is a native path (such as `/path/to/my icon.png`) without escaping if the #GFile for @icon is a native file. If the file is not native, the returned string is the result of g_file_get_uri() (such as `sftp://path/to/my%20icon.png`).

  • If @icon is a #GThemedIcon with exactly one name and no fallbacks, the encoding is simply the name (such as `network-server`).

type DmabufTextureBuilder

type DmabufTextureBuilder struct {
	gobject.Object
}

Constructs [class@Gdk.Texture] objects from DMA buffers.

DMA buffers are commonly called **_dma-bufs_**.

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 **_planes_**. 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 `drm_fourcc.h` and commonly referred to as **_fourcc_** values, since they are identified by 4 ASCII characters. Additionally, each DMA buffer has a **_modifier_**, 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 `DMA_FORMAT_MOD_INVALID` to indicate that their modifier is **_implicit_**. GTK tries to accommodate this situation by accepting `DMA_FORMAT_MOD_INVALID` as modifier.

The operation of `GdkDmabufTextureBuilder` is quite simple: Create a texture builder, set all the necessary properties, and then call [method@Gdk.DmabufTextureBuilder.build] to create the new texture.

The required properties for a dma-buf texture are

  • The width and height in pixels

  • The `fourcc` code and `modifier` which identify the format and memory layout of the dma-buf

  • The file descriptor, offset and stride for each of the planes

`GdkDmabufTextureBuilder` 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

* The Linux kernel [documentation](https://docs.kernel.org/driver-api/dma-buf.html)

* The header file [drm_fourcc.h](https://gitlab.freedesktop.org/mesa/drm/-/blob/main/include/drm/drm_fourcc.h)

func DmabufTextureBuilderNewFromInternalPtr

func DmabufTextureBuilderNewFromInternalPtr(ptr uintptr) *DmabufTextureBuilder

func NewDmabufTextureBuilder

func NewDmabufTextureBuilder() *DmabufTextureBuilder

Creates a new texture builder.

func (*DmabufTextureBuilder) Build

func (x *DmabufTextureBuilder) Build(DestroyVar *glib.DestroyNotify, DataVar uintptr) (*Texture, error)

Builds a new `GdkTexture` 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 `drm_fourcc.h` header are supported. You can use [method@Gdk.Display.get_dmabuf_formats] to get a list of supported formats. If the format is not supported by GTK, %NULL will be returned and @error will be set.

The `destroy` 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 @destroy notify).

It is possible to call this function multiple times to create multiple textures, possibly with changing properties in between.

func (*DmabufTextureBuilder) BuildWithDestroyNotifyPointer added in v0.5.2

func (x *DmabufTextureBuilder) BuildWithDestroyNotifyPointer(destroy uintptr, data uintptr) (*Texture, error)

BuildWithDestroyNotifyPointer builds a DMABUF texture using a raw native GDestroyNotify function pointer.

The generated Build method is appropriate for Go callbacks. DMABUF file descriptors, however, often need a native destroy notify such as libc close(2) so the descriptor is closed exactly when GDK releases the texture, without a callback from GTK/GSK finalizer code into Go.

Safety requirements:

  • destroy must be a valid native function pointer using the C ABI for GDestroyNotify, and must not be a Go function pointer.
  • destroy must remain valid for the process lifetime as used by GDK.
  • data must remain valid until GDK invokes destroy.

func (*DmabufTextureBuilder) GetColorState

func (x *DmabufTextureBuilder) GetColorState() *ColorState

Gets the color state previously set via gdk_dmabuf_texture_builder_set_color_state().

func (*DmabufTextureBuilder) GetDisplay

func (x *DmabufTextureBuilder) GetDisplay() *Display

Returns the display that this texture builder is associated with.

func (*DmabufTextureBuilder) GetFd

func (x *DmabufTextureBuilder) GetFd(PlaneVar uint) int

Gets the file descriptor for a plane.

func (*DmabufTextureBuilder) GetFourcc

func (x *DmabufTextureBuilder) GetFourcc() uint32

Gets the format previously set via gdk_dmabuf_texture_builder_set_fourcc() or 0 if the format wasn't set.

The format is specified as a fourcc code.

func (*DmabufTextureBuilder) GetHeight

func (x *DmabufTextureBuilder) GetHeight() uint

Gets the height previously set via gdk_dmabuf_texture_builder_set_height() or 0 if the height wasn't set.

func (*DmabufTextureBuilder) GetModifier

func (x *DmabufTextureBuilder) GetModifier() uint64

Gets the modifier value.

func (*DmabufTextureBuilder) GetNPlanes

func (x *DmabufTextureBuilder) GetNPlanes() uint

Gets the number of planes.

func (*DmabufTextureBuilder) GetOffset

func (x *DmabufTextureBuilder) GetOffset(PlaneVar uint) uint

Gets the offset value for a plane.

func (*DmabufTextureBuilder) GetPremultiplied

func (x *DmabufTextureBuilder) GetPremultiplied() bool

Whether the data is premultiplied.

func (*DmabufTextureBuilder) GetPropertyColorState

func (x *DmabufTextureBuilder) GetPropertyColorState() uintptr

GetPropertyColorState gets the "color-state" property. The color state of the texture.

func (*DmabufTextureBuilder) GetPropertyFourcc

func (x *DmabufTextureBuilder) GetPropertyFourcc() uint

GetPropertyFourcc gets the "fourcc" property. The format of the texture, as a fourcc value.

func (*DmabufTextureBuilder) GetPropertyHeight

func (x *DmabufTextureBuilder) GetPropertyHeight() uint

GetPropertyHeight gets the "height" property. The height of the texture.

func (*DmabufTextureBuilder) GetPropertyModifier

func (x *DmabufTextureBuilder) GetPropertyModifier() uint64

GetPropertyModifier gets the "modifier" property. The modifier.

func (*DmabufTextureBuilder) GetPropertyNPlanes

func (x *DmabufTextureBuilder) GetPropertyNPlanes() uint

GetPropertyNPlanes gets the "n-planes" property. The number of planes of the texture.

Note that you can set properties for other planes, but they will be ignored when constructing the texture.

func (*DmabufTextureBuilder) GetPropertyPremultiplied

func (x *DmabufTextureBuilder) GetPropertyPremultiplied() bool

GetPropertyPremultiplied gets the "premultiplied" property. Whether the alpha channel is premultiplied into the others.

Only relevant if the format has alpha.

func (*DmabufTextureBuilder) GetPropertyUpdateRegion

func (x *DmabufTextureBuilder) GetPropertyUpdateRegion() uintptr

GetPropertyUpdateRegion gets the "update-region" property. The update region for [property@Gdk.DmabufTextureBuilder:update-texture].

func (*DmabufTextureBuilder) GetPropertyWidth

func (x *DmabufTextureBuilder) GetPropertyWidth() uint

GetPropertyWidth gets the "width" property. The width of the texture.

func (*DmabufTextureBuilder) GetStride

func (x *DmabufTextureBuilder) GetStride(PlaneVar uint) uint

Gets the stride value for a plane.

func (*DmabufTextureBuilder) GetUpdateRegion

func (x *DmabufTextureBuilder) GetUpdateRegion() *cairo.Region

Gets the region previously set via gdk_dmabuf_texture_builder_set_update_region() or %NULL if none was set.

func (*DmabufTextureBuilder) GetUpdateTexture

func (x *DmabufTextureBuilder) GetUpdateTexture() *Texture

Gets the texture previously set via gdk_dmabuf_texture_builder_set_update_texture() or %NULL if none was set.

func (*DmabufTextureBuilder) GetWidth

func (x *DmabufTextureBuilder) GetWidth() uint

Gets the width previously set via gdk_dmabuf_texture_builder_set_width() or 0 if the width wasn't set.

func (*DmabufTextureBuilder) GoPointer

func (c *DmabufTextureBuilder) GoPointer() uintptr

func (*DmabufTextureBuilder) SetColorState

func (x *DmabufTextureBuilder) SetColorState(ColorStateVar *ColorState)

Sets the color state for the texture.

By default, the colorstate is `NULL`. 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.

func (*DmabufTextureBuilder) SetDisplay

func (x *DmabufTextureBuilder) SetDisplay(DisplayVar *Display)

Sets the display that this texture builder is associated with.

The display is used to determine the supported dma-buf formats.

func (*DmabufTextureBuilder) SetFd

func (x *DmabufTextureBuilder) SetFd(PlaneVar uint, FdVar int)

Sets the file descriptor for a plane.

func (*DmabufTextureBuilder) SetFourcc

func (x *DmabufTextureBuilder) SetFourcc(FourccVar uint32)

Sets the format of the texture.

The format is specified as a fourcc code.

The format must be set before calling [method@Gdk.DmabufTextureBuilder.build].

func (*DmabufTextureBuilder) SetGoPointer

func (c *DmabufTextureBuilder) SetGoPointer(ptr uintptr)

func (*DmabufTextureBuilder) SetHeight

func (x *DmabufTextureBuilder) SetHeight(HeightVar uint)

Sets the height of the texture.

The height must be set before calling [method@Gdk.DmabufTextureBuilder.build].

func (*DmabufTextureBuilder) SetModifier

func (x *DmabufTextureBuilder) SetModifier(ModifierVar uint64)

Sets the modifier.

func (*DmabufTextureBuilder) SetNPlanes

func (x *DmabufTextureBuilder) SetNPlanes(NPlanesVar uint)

Sets the number of planes of the texture.

func (*DmabufTextureBuilder) SetOffset

func (x *DmabufTextureBuilder) SetOffset(PlaneVar uint, OffsetVar uint)

Sets the offset for a plane.

func (*DmabufTextureBuilder) SetPremultiplied

func (x *DmabufTextureBuilder) SetPremultiplied(PremultipliedVar bool)

Sets whether the data is premultiplied.

Unless otherwise specified, all formats including alpha channels are assumed to be premultiplied.

func (*DmabufTextureBuilder) SetPropertyColorState

func (x *DmabufTextureBuilder) SetPropertyColorState(value uintptr)

SetPropertyColorState sets the "color-state" property. The color state of the texture.

func (*DmabufTextureBuilder) SetPropertyFourcc

func (x *DmabufTextureBuilder) SetPropertyFourcc(value uint)

SetPropertyFourcc sets the "fourcc" property. The format of the texture, as a fourcc value.

func (*DmabufTextureBuilder) SetPropertyHeight

func (x *DmabufTextureBuilder) SetPropertyHeight(value uint)

SetPropertyHeight sets the "height" property. The height of the texture.

func (*DmabufTextureBuilder) SetPropertyModifier

func (x *DmabufTextureBuilder) SetPropertyModifier(value uint64)

SetPropertyModifier sets the "modifier" property. The modifier.

func (*DmabufTextureBuilder) SetPropertyNPlanes

func (x *DmabufTextureBuilder) SetPropertyNPlanes(value uint)

SetPropertyNPlanes sets the "n-planes" property. The number of planes of the texture.

Note that you can set properties for other planes, but they will be ignored when constructing the texture.

func (*DmabufTextureBuilder) SetPropertyPremultiplied

func (x *DmabufTextureBuilder) SetPropertyPremultiplied(value bool)

SetPropertyPremultiplied sets the "premultiplied" property. Whether the alpha channel is premultiplied into the others.

Only relevant if the format has alpha.

func (*DmabufTextureBuilder) SetPropertyUpdateRegion

func (x *DmabufTextureBuilder) SetPropertyUpdateRegion(value uintptr)

SetPropertyUpdateRegion sets the "update-region" property. The update region for [property@Gdk.DmabufTextureBuilder:update-texture].

func (*DmabufTextureBuilder) SetPropertyWidth

func (x *DmabufTextureBuilder) SetPropertyWidth(value uint)

SetPropertyWidth sets the "width" property. The width of the texture.

func (*DmabufTextureBuilder) SetStride

func (x *DmabufTextureBuilder) SetStride(PlaneVar uint, StrideVar uint)

Sets the stride for a plane.

The stride must be set for all planes before calling [method@Gdk.DmabufTextureBuilder.build].

func (*DmabufTextureBuilder) SetUpdateRegion

func (x *DmabufTextureBuilder) SetUpdateRegion(RegionVar *cairo.Region)

Sets the region to be updated by this texture. Together with [property@Gdk.DmabufTextureBuilder:update-texture] 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.

func (*DmabufTextureBuilder) SetUpdateTexture

func (x *DmabufTextureBuilder) SetUpdateTexture(TextureVar *Texture)

Sets the texture to be updated by this texture. See [method@Gdk.DmabufTextureBuilder.set_update_region] for an explanation.

func (*DmabufTextureBuilder) SetWidth

func (x *DmabufTextureBuilder) SetWidth(WidthVar uint)

Sets the width of the texture.

The width must be set before calling [method@Gdk.DmabufTextureBuilder.build].

type DmabufTextureBuilderClass

type DmabufTextureBuilderClass struct {
	// contains filtered or unexported fields
}

func (*DmabufTextureBuilderClass) GoPointer

func (x *DmabufTextureBuilderClass) GoPointer() uintptr

type DmabufTextureClass

type DmabufTextureClass struct {
	// contains filtered or unexported fields
}

func (*DmabufTextureClass) GoPointer

func (x *DmabufTextureClass) GoPointer() uintptr

type Drag

type Drag struct {
	gobject.Object
}

Represents the source of an ongoing DND operation.

A `GdkDrag` is created when a drag is started, and stays alive for duration of the DND operation. After a drag has been started with [func@Gdk.Drag.begin], the caller gets informed about the status of the ongoing drag operation with signals on the `GdkDrag` 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.

func DragBegin

func DragBegin(SurfaceVar *Surface, DeviceVar *Device, ContentVar *ContentProvider, ActionsVar DragAction, DxVar float64, DyVar float64) *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 [method@Gdk.Drag.get_drag_surface].

This function returns a reference to the [class@Gdk.Drag] object, but GTK keeps its own reference as well, as long as the DND operation is going on.

Note: if @actions include %GDK_ACTION_MOVE, you need to listen for the [signal@Gdk.Drag::dnd-finished] signal and delete the data at the source if [method@Gdk.Drag.get_selected_action] returns %GDK_ACTION_MOVE.

func DragNewFromInternalPtr

func DragNewFromInternalPtr(ptr uintptr) *Drag

func (*Drag) ConnectCancel

func (x *Drag) ConnectCancel(cb *func(Drag, DragCancelReason)) uint

Emitted when the drag operation is cancelled.

func (*Drag) ConnectDndFinished

func (x *Drag) ConnectDndFinished(cb *func(Drag)) uint

Emitted when the destination side has finished reading all data.

The drag object can now free all miscellaneous data.

func (*Drag) ConnectDropPerformed

func (x *Drag) ConnectDropPerformed(cb *func(Drag)) uint

Emitted when the drop operation is performed on an accepting client.

func (*Drag) DropDone

func (x *Drag) DropDone(SuccessVar bool)

Informs GDK that the drop ended.

Passing %FALSE for @success 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 @drag.

The `GdkDrag` will only take the first [method@Gdk.Drag.drop_done] call as effective, if this function is called multiple times, all subsequent calls will be ignored.

func (*Drag) GetActions

func (x *Drag) GetActions() DragAction

Determines the bitmask of possible actions proposed by the source.

func (*Drag) GetContent

func (x *Drag) GetContent() *ContentProvider

Returns the `GdkContentProvider` associated to the `GdkDrag` object.

func (*Drag) GetDevice

func (x *Drag) GetDevice() *Device

Returns the `GdkDevice` associated to the `GdkDrag` object.

func (*Drag) GetDisplay

func (x *Drag) GetDisplay() *Display

Gets the `GdkDisplay` that the drag object was created for.

func (*Drag) GetDragSurface

func (x *Drag) GetDragSurface() *Surface

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 @drag and will be destroyed when the drag operation is over.

func (*Drag) GetFormats

func (x *Drag) GetFormats() *ContentFormats

Retrieves the formats supported by this `GdkDrag` object.

func (*Drag) GetPropertyFormats

func (x *Drag) GetPropertyFormats() uintptr

GetPropertyFormats gets the "formats" property. The possible formats that the drag can provide its data in.

func (*Drag) GetSelectedAction

func (x *Drag) GetSelectedAction() DragAction

Determines the action chosen by the drag destination.

func (*Drag) GetSurface

func (x *Drag) GetSurface() *Surface

Returns the `GdkSurface` where the drag originates.

func (*Drag) GoPointer

func (c *Drag) GoPointer() uintptr

func (*Drag) SetGoPointer

func (c *Drag) SetGoPointer(ptr uintptr)

func (*Drag) SetHotspot

func (x *Drag) SetHotspot(HotXVar int, HotYVar int)

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.

func (*Drag) SetPropertyFormats

func (x *Drag) SetPropertyFormats(value uintptr)

SetPropertyFormats sets the "formats" property. The possible formats that the drag can provide its data in.

type DragAction

type DragAction int

Used in `GdkDrop` and `GdkDrag` to indicate the actions that the destination can and should do with the dropped data.

const (

	// No action.
	ActionNoneValue DragAction = 0
	// Copy the data.
	ActionCopyValue DragAction = 1
	// Move the data, i.e. first copy it, then delete
	//   it from the source using the DELETE target of the X selection protocol.
	ActionMoveValue DragAction = 2
	// 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.
	ActionLinkValue DragAction = 4
	// Ask the user what to do with the data.
	ActionAskValue DragAction = 8
)

type DragCancelReason

type DragCancelReason int

Used in `GdkDrag` to the reason of a cancelled DND operation.

const (

	// There is no suitable drop target.
	DragCancelNoTargetValue DragCancelReason = 0
	// Drag cancelled by the user
	DragCancelUserCancelledValue DragCancelReason = 1
	// Unspecified error.
	DragCancelErrorValue DragCancelReason = 2
)

type DragSurface

type DragSurface interface {
	GoPointer() uintptr
	SetGoPointer(uintptr)
	Present(WidthVar int, HeightVar int) bool
}

A surface that is used during DND.

type DragSurfaceBase

type DragSurfaceBase struct {
	Ptr uintptr
}

func (*DragSurfaceBase) GoPointer

func (x *DragSurfaceBase) GoPointer() uintptr

func (*DragSurfaceBase) Present

func (x *DragSurfaceBase) Present(WidthVar int, HeightVar int) bool

Present @drag_surface.

func (*DragSurfaceBase) SetGoPointer

func (x *DragSurfaceBase) SetGoPointer(ptr uintptr)

type DragSurfaceInterface

type DragSurfaceInterface struct {
	// contains filtered or unexported fields
}

The `GdkDragSurfaceInterface` implementation is private to GDK.

func (*DragSurfaceInterface) GoPointer

func (x *DragSurfaceInterface) GoPointer() uintptr

type DragSurfaceSize

type DragSurfaceSize struct {
	// contains filtered or unexported fields
}

Contains information that is useful to compute the size of a drag surface.

func (*DragSurfaceSize) GoPointer

func (x *DragSurfaceSize) GoPointer() uintptr

func (*DragSurfaceSize) SetSize

func (x *DragSurfaceSize) SetSize(WidthVar int, HeightVar int)

Sets the size the drag surface prefers to be resized to.

type DrawContext

type DrawContext struct {
	gobject.Object
}

Base class for objects implementing different rendering methods.

`GdkDrawContext` is the base object used by contexts implementing different rendering methods, such as [class@Gdk.CairoContext] or [class@Gdk.GLContext]. It provides shared functionality between those contexts.

You will always interact with one of those subclasses.

A `GdkDrawContext` is always associated with a single toplevel surface.

func DrawContextNewFromInternalPtr

func DrawContextNewFromInternalPtr(ptr uintptr) *DrawContext

func (*DrawContext) BeginFrame

func (x *DrawContext) BeginFrame(RegionVar *cairo.Region)

Indicates that you are beginning the process of redrawing @region on the @context's surface.

Calling this function begins a drawing operation using @context on the surface that @context was created from. The actual requirements and guarantees for the drawing operation vary for different implementations of drawing, so a [class@Gdk.CairoContext] and a [class@Gdk.GLContext] need to be treated differently.

A call to this function is a requirement for drawing and must be followed by a call to [method@Gdk.DrawContext.end_frame], which will complete the drawing operation and ensure the contents become visible on screen.

Note that the @region 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 [method@Gdk.DrawContext.get_frame_region] to query the region that must be drawn.

When using GTK, the widget system automatically places calls to gdk_draw_context_begin_frame() and gdk_draw_context_end_frame() via the use of [GskRenderer](../gsk4/class.Renderer.html)s, so application code does not need to call these functions explicitly.

func (*DrawContext) EndFrame

func (x *DrawContext) EndFrame()

Ends a drawing operation started with gdk_draw_context_begin_frame().

This makes the drawing available on screen. See [method@Gdk.DrawContext.begin_frame] for more details about drawing.

When using a [class@Gdk.GLContext], this function may call `glFlush()` implicitly before returning; it is not recommended to call `glFlush()` explicitly before calling this function.

func (*DrawContext) GetDisplay

func (x *DrawContext) GetDisplay() *Display

Retrieves the `GdkDisplay` the @context is created for

func (*DrawContext) GetFrameRegion

func (x *DrawContext) GetFrameRegion() *cairo.Region

Retrieves the region that is currently being repainted.

After a call to [method@Gdk.DrawContext.begin_frame] this function will return a union of the region passed to that function and the area of the surface that the @context determined needs to be repainted.

If @context is not in between calls to [method@Gdk.DrawContext.begin_frame] and [method@Gdk.DrawContext.end_frame], %NULL will be returned.

func (*DrawContext) GetSurface

func (x *DrawContext) GetSurface() *Surface

Retrieves the surface that @context is bound to.

func (*DrawContext) GoPointer

func (c *DrawContext) GoPointer() uintptr

func (*DrawContext) IsInFrame

func (x *DrawContext) IsInFrame() bool

Returns %TRUE if @context is in the process of drawing to its surface.

This is the case between calls to [method@Gdk.DrawContext.begin_frame] and [method@Gdk.DrawContext.end_frame]. In this situation, drawing commands may be effecting the contents of the @context's surface.

func (*DrawContext) SetGoPointer

func (c *DrawContext) SetGoPointer(ptr uintptr)

type Drop

type Drop struct {
	gobject.Object
}

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 `GDK_DRAG_ENTER`, `GDK_DRAG_LEAVE`, `GDK_DRAG_MOTION` and `GDK_DROP_START`. The `GdkDrop` object can be obtained from these [class@Gdk.Event] types using [method@Gdk.DNDEvent.get_drop].

The actual data transfer is initiated from the target side via an async read, using one of the `GdkDrop` methods for this purpose: [method@Gdk.Drop.read_async] or [method@Gdk.Drop.read_value_async].

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.

func DropNewFromInternalPtr

func DropNewFromInternalPtr(ptr uintptr) *Drop

func (*Drop) Finish

func (x *Drop) Finish(ActionVar DragAction)

Ends the drag operation after a drop.

The @action must be a single action selected from the actions available via [method@Gdk.Drop.get_actions].

func (*Drop) GetActions

func (x *Drop) GetActions() DragAction

Returns the possible actions for this `GdkDrop`.

If this value contains multiple actions - i.e. [func@Gdk.DragAction.is_unique] returns false for the result - [method@Gdk.Drop.finish] must choose the action to use when accepting the drop. This will only happen if you passed `GDK_ACTION_ASK` as one of the possible actions in [method@Gdk.Drop.status]. `GDK_ACTION_ASK` itself will not be included in the actions returned by this function.

This value may change over the lifetime of the [class@Gdk.Drop] both as a response to source side actions as well as to calls to [method@Gdk.Drop.status] or [method@Gdk.Drop.finish]. The source side will not change this value anymore once a drop has started.

func (*Drop) GetDevice

func (x *Drop) GetDevice() *Device

Returns the `GdkDevice` performing the drop.

func (*Drop) GetDisplay

func (x *Drop) GetDisplay() *Display

Gets the `GdkDisplay` that @self was created for.

func (*Drop) GetDrag

func (x *Drop) GetDrag() *Drag

If this is an in-app drag-and-drop operation, returns the `GdkDrag` that corresponds to this drop.

If it is not, `NULL` is returned.

func (*Drop) GetFormats

func (x *Drop) GetFormats() *ContentFormats

Returns the `GdkContentFormats` that the drop offers the data to be read in.

func (*Drop) GetPropertyFormats

func (x *Drop) GetPropertyFormats() uintptr

GetPropertyFormats gets the "formats" property. The possible formats that the drop can provide its data in.

func (*Drop) GetSurface

func (x *Drop) GetSurface() *Surface

Returns the `GdkSurface` performing the drop.

func (*Drop) GoPointer

func (c *Drop) GoPointer() uintptr

func (*Drop) ReadAsync

func (x *Drop) ReadAsync(MimeTypesVar []string, IoPriorityVar int, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr)

Asynchronously read the dropped data from a `GdkDrop` in a format that complies with one of the mime types.

func (*Drop) ReadFinish

func (x *Drop) ReadFinish(ResultVar gio.AsyncResult, OutMimeTypeVar *string) (*gio.InputStream, error)

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 g_input_stream_read_bytes_async().

See [method@Gdk.Drop.read_async].

func (*Drop) ReadValueAsync

func (x *Drop) ReadValueAsync(TypeVar types.GType, IoPriorityVar int, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr)

Asynchronously request the drag operation's contents converted to the given @type.

For local drag-and-drop operations that are available in the given `GType`, the value will be copied directly. Otherwise, GDK will try to use [func@Gdk.content_deserialize_async] to convert the data.

func (*Drop) ReadValueFinish

func (x *Drop) ReadValueFinish(ResultVar gio.AsyncResult) (*gobject.Value, error)

Finishes an async drop read.

See [method@Gdk.Drop.read_value_async].

func (*Drop) SetGoPointer

func (c *Drop) SetGoPointer(ptr uintptr)

func (*Drop) SetPropertyFormats

func (x *Drop) SetPropertyFormats(value uintptr)

SetPropertyFormats sets the "formats" property. The possible formats that the drop can provide its data in.

func (*Drop) Status

func (x *Drop) Status(ActionsVar DragAction, PreferredVar DragAction)

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 [method@Gdk.Drop.get_actions]. Those actions may change in the future, even depending on the actions you provide here.

The @preferred 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 `GDK_DRAG_ENTER` or `GDK_DRAG_MOTION` 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.

type Event

type Event struct {
	Ptr uintptr
}

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 `GdkEvent` and its related API is rarely needed.

`GdkEvent` structs are immutable.

func EventNewFromInternalPtr

func EventNewFromInternalPtr(ptr uintptr) *Event

func (*Event) GetAngle

func (x *Event) GetAngle(Event2Var *Event, AngleVar *float64) bool

Returns the relative angle from @event1 to @event2.

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 %FALSE.

func (*Event) GetAxes

func (x *Event) GetAxes(AxesVar *[]float64, NAxesVar *uint) bool

Extracts all axis values from an event.

To find out which axes are used, use [method@Gdk.DeviceTool.get_axes] on the device tool returned by [method@Gdk.Event.get_device_tool].

func (*Event) GetAxis

func (x *Event) GetAxis(AxisUseVar AxisUse, ValueVar *float64) bool

Extract the axis value for a particular axis use from an event structure.

To find out which axes are used, use [method@Gdk.DeviceTool.get_axes] on the device tool returned by [method@Gdk.Event.get_device_tool].

func (*Event) GetCenter

func (x *Event) GetCenter(Event2Var *Event, XVar *float64, YVar *float64) bool

Returns the point halfway between the events' positions.

This assumes that both events have X/Y information. If not, this function returns %FALSE.

func (*Event) GetDevice

func (x *Event) GetDevice() *Device

Returns the device of an event.

func (*Event) GetDeviceTool

func (x *Event) GetDeviceTool() *DeviceTool

Returns a `GdkDeviceTool` 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 %NULL.

Note: the `GdkDeviceTool` will be constant during the application lifetime, if settings must be stored persistently across runs, see [method@Gdk.DeviceTool.get_serial].

func (*Event) GetDisplay

func (x *Event) GetDisplay() *Display

Retrieves the display associated to the @event.

func (*Event) GetDistance

func (x *Event) GetDistance(Event2Var *Event, DistanceVar *float64) bool

Returns the distance between the event locations.

This assumes that both events have X/Y information. If not, this function returns %FALSE.

func (*Event) GetEventSequence

func (x *Event) GetEventSequence() *EventSequence

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.

func (*Event) GetEventType

func (x *Event) GetEventType() EventType

Retrieves the type of the event.

func (*Event) GetHistory

func (x *Event) GetHistory(OutNCoordsVar *uint) uintptr

Retrieves the history of the device that @event 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 @event.

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.

func (*Event) GetModifierState

func (x *Event) GetModifierState() ModifierType

Returns the modifier state field of an event.

func (*Event) GetPointerEmulated

func (x *Event) GetPointerEmulated() bool

Returns whether this event is an 'emulated' pointer event.

Emulated pointer events typically originate from a touch events.

func (*Event) GetPosition

func (x *Event) GetPosition(XVar *float64, YVar *float64) bool

Extract the event surface relative x/y coordinates from an event.

This position is in [surface coordinates](coordinates.html).

func (*Event) GetSeat

func (x *Event) GetSeat() *Seat

Returns the seat that originated the event.

func (*Event) GetSurface

func (x *Event) GetSurface() *Surface

Extracts the surface associated with an event.

func (*Event) GetTime

func (x *Event) GetTime() uint32

Returns the timestamp of @event.

Not all events have timestamps. In that case, this function returns %GDK_CURRENT_TIME.

func (*Event) GoPointer

func (c *Event) GoPointer() uintptr

func (*Event) Ref

func (x *Event) Ref() *Event

Increase the ref count of @event.

func (*Event) SetGoPointer

func (c *Event) SetGoPointer(ptr uintptr)

func (*Event) TriggersContextMenu

func (x *Event) TriggersContextMenu() bool

Returns whether a `GdkEvent` 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

```c event->button == GDK_BUTTON_SECONDARY ```

func (*Event) Unref

func (x *Event) Unref()

Decrease the ref count of @event.

If the last reference is dropped, the structure is freed.

type EventSequence

type EventSequence struct {
	// contains filtered or unexported fields
}

An opaque type representing a sequence of related events.

func (*EventSequence) GoPointer

func (x *EventSequence) GoPointer() uintptr

type EventType

type EventType int

Specifies the type of the event.

const (

	// 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.
	DeleteValue EventType = 0
	// the pointer (usually a mouse) has moved.
	MotionNotifyValue EventType = 1
	// a mouse button has been pressed.
	ButtonPressValue EventType = 2
	// a mouse button has been released.
	ButtonReleaseValue EventType = 3
	// a key has been pressed.
	KeyPressValue EventType = 4
	// a key has been released.
	KeyReleaseValue EventType = 5
	// the pointer has entered the surface.
	EnterNotifyValue EventType = 6
	// the pointer has left the surface.
	LeaveNotifyValue EventType = 7
	// the keyboard focus has entered or left the surface.
	FocusChangeValue EventType = 8
	// an input device has moved into contact with a sensing
	//   surface (e.g. a touchscreen or graphics tablet).
	ProximityInValue EventType = 9
	// an input device has moved out of contact with a sensing
	//   surface.
	ProximityOutValue EventType = 10
	// the mouse has entered the surface while a drag is in progress.
	DragEnterValue EventType = 11
	// the mouse has left the surface while a drag is in progress.
	DragLeaveValue EventType = 12
	// the mouse has moved in the surface while a drag is in
	//   progress.
	DragMotionValue EventType = 13
	// a drop operation onto the surface has started.
	DropStartValue EventType = 14
	// the scroll wheel was turned
	ScrollValue EventType = 15
	// a pointer or keyboard grab was broken.
	GrabBrokenValue EventType = 16
	// A new touch event sequence has just started.
	TouchBeginValue EventType = 17
	// A touch event sequence has been updated.
	TouchUpdateValue EventType = 18
	// A touch event sequence has finished.
	TouchEndValue EventType = 19
	// A touch event sequence has been canceled.
	TouchCancelValue EventType = 20
	// A touchpad swipe gesture event, the current state
	//   is determined by its phase field.
	TouchpadSwipeValue EventType = 21
	// A touchpad pinch gesture event, the current state
	//   is determined by its phase field.
	TouchpadPinchValue EventType = 22
	// A tablet pad button press event.
	PadButtonPressValue EventType = 23
	// A tablet pad button release event.
	PadButtonReleaseValue EventType = 24
	// A tablet pad axis event from a "ring".
	PadRingValue EventType = 25
	// A tablet pad axis event from a "strip".
	PadStripValue EventType = 26
	// A tablet pad group mode change.
	PadGroupModeValue EventType = 27
	// A touchpad hold gesture event, the current state is determined by its phase
	// field.
	TouchpadHoldValue EventType = 28
	// A tablet pad axis event from a "dial".
	PadDialValue EventType = 29
	// marks the end of the GdkEventType enumeration.
	EventLastValue EventType = 30
)

type FileList

type FileList struct {
	// contains filtered or unexported fields
}

An opaque type representing a list of files.

func NewFileListFromArray

func NewFileListFromArray(FilesVar uintptr, NFilesVar uint) *FileList

Creates a new `GdkFileList` for the given array of files.

This function is meant to be used by language bindings.

func NewFileListFromList

func NewFileListFromList(FilesVar *glib.SList) *FileList

Creates a new files list container from a singly linked list of `GFile` instances.

This function is meant to be used by language bindings

func (*FileList) GetFiles

func (x *FileList) GetFiles() *glib.SList

Retrieves the list of files inside a `GdkFileList`.

This function is meant for language bindings.

func (*FileList) GoPointer

func (x *FileList) GoPointer() uintptr

type FocusEvent

type FocusEvent struct {
	Event
}

An event related to a keyboard focus change.

func FocusEventNewFromInternalPtr

func FocusEventNewFromInternalPtr(ptr uintptr) *FocusEvent

func (*FocusEvent) GetIn

func (x *FocusEvent) GetIn() bool

Extracts whether this event is about focus entering or leaving the surface.

func (*FocusEvent) GoPointer

func (c *FocusEvent) GoPointer() uintptr

func (*FocusEvent) SetGoPointer

func (c *FocusEvent) SetGoPointer(ptr uintptr)

type FrameClock

type FrameClock struct {
	gobject.Object
}

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.

`GdkFrameClock` 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 [method@Gdk.FrameClock.request_phase]. 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 `GdkFrameClock` class for documentation of the phases. %GDK_FRAME_CLOCK_PHASE_UPDATE and the [signal@Gdk.FrameClock::update] signal are most interesting for application writers, and are used to update the animations, using the frame time given by [method@Gdk.FrameClock.get_frame_time].

The frame time is reported in microseconds and generally in the same timescale as g_get_monotonic_time(), however, it is not the same as g_get_monotonic_time(). 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 [method@Gdk.FrameClock.get_frame_time] 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 [method@Gdk.FrameClock.get_frame_time] and the value inside the [signal@Gdk.FrameClock::update] signal of the clock, they will stay exactly synchronized.

func FrameClockNewFromInternalPtr

func FrameClockNewFromInternalPtr(ptr uintptr) *FrameClock

func (*FrameClock) BeginUpdating

func (x *FrameClock) BeginUpdating()

Starts updates for an animation.

Until a matching call to [method@Gdk.FrameClock.end_updating] is made, the frame clock will continually request a new frame with the %GDK_FRAME_CLOCK_PHASE_UPDATE phase. This function may be called multiple times and frames will be requested until gdk_frame_clock_end_updating() is called the same number of times.

func (*FrameClock) ConnectAfterPaint

func (x *FrameClock) ConnectAfterPaint(cb *func(FrameClock)) uint

This signal ends processing of the frame.

Applications should generally not handle this signal.

func (*FrameClock) ConnectBeforePaint

func (x *FrameClock) ConnectBeforePaint(cb *func(FrameClock)) uint

Begins processing of the frame.

Applications should generally not handle this signal.

func (*FrameClock) ConnectFlushEvents

func (x *FrameClock) ConnectFlushEvents(cb *func(FrameClock)) uint

Used to flush pending motion events that are being batched up and compressed together.

Applications should not handle this signal.

func (*FrameClock) ConnectLayout

func (x *FrameClock) ConnectLayout(cb *func(FrameClock)) uint

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.

func (*FrameClock) ConnectPaint

func (x *FrameClock) ConnectPaint(cb *func(FrameClock)) uint

Emitted as the third step of toolkit and application processing of the frame.

The frame is repainted. GDK normally handles this internally and emits [signal@Gdk.Surface::render] signals which are turned into [GtkWidget::snapshot](../gtk4/signal.Widget.snapshot.html) signals by GTK.

func (*FrameClock) ConnectResumeEvents

func (x *FrameClock) ConnectResumeEvents(cb *func(FrameClock)) uint

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.

func (*FrameClock) ConnectUpdate

func (x *FrameClock) ConnectUpdate(cb *func(FrameClock)) uint

Emitted as the first step of toolkit and application processing of the frame.

Animations should be updated using [method@Gdk.FrameClock.get_frame_time]. Applications can connect directly to this signal, or use [gtk_widget_add_tick_callback()](../gtk4/method.Widget.add_tick_callback.html) as a more convenient interface.

func (*FrameClock) EndUpdating

func (x *FrameClock) EndUpdating()

Stops updates for an animation.

See the documentation for [method@Gdk.FrameClock.begin_updating].

func (*FrameClock) GetCurrentTimings

func (x *FrameClock) GetCurrentTimings() *FrameTimings

Gets the frame timings for the current frame.

func (*FrameClock) GetFps

func (x *FrameClock) GetFps() float64

Calculates the current frames-per-second, based on the frame timings of @frame_clock.

func (*FrameClock) GetFrameCounter

func (x *FrameClock) GetFrameCounter() int64

`GdkFrameClock` maintains a 64-bit counter that increments for each frame drawn.

func (*FrameClock) GetFrameTime

func (x *FrameClock) GetFrameTime() 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.

func (*FrameClock) GetHistoryStart

func (x *FrameClock) GetHistoryStart() int64

Returns the frame counter for the oldest frame available in history.

`GdkFrameClock` internally keeps a history of `GdkFrameTimings` objects for recent frames that can be retrieved with [method@Gdk.FrameClock.get_timings]. The set of stored frames is the set from the counter values given by [method@Gdk.FrameClock.get_history_start] and [method@Gdk.FrameClock.get_frame_counter], inclusive.

func (*FrameClock) GetRefreshInfo

func (x *FrameClock) GetRefreshInfo(BaseTimeVar int64, RefreshIntervalReturnVar *int64, PresentationTimeReturnVar *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 @base_time.

func (*FrameClock) GetTimings

func (x *FrameClock) GetTimings(FrameCounterVar int64) *FrameTimings

Retrieves a `GdkFrameTimings` object holding timing information for the current frame or a recent frame.

The `GdkFrameTimings` object may not yet be complete: see [method@Gdk.FrameTimings.get_complete] and [method@Gdk.FrameClock.get_history_start].

func (*FrameClock) GoPointer

func (c *FrameClock) GoPointer() uintptr

func (*FrameClock) RequestPhase

func (x *FrameClock) RequestPhase(PhaseVar FrameClockPhase)

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 gdk_frame_clock_request_phase() will be combined together and only one frame processed. If you are displaying animated content and want to continually request the %GDK_FRAME_CLOCK_PHASE_UPDATE phase for a period of time, you should use [method@Gdk.FrameClock.begin_updating] instead, since this allows GTK to adjust system parameters to get maximally smooth animations.

func (*FrameClock) SetGoPointer

func (c *FrameClock) SetGoPointer(ptr uintptr)

type FrameClockClass

type FrameClockClass struct {
	// contains filtered or unexported fields
}

func (*FrameClockClass) GoPointer

func (x *FrameClockClass) GoPointer() uintptr

type FrameClockPhase

type FrameClockPhase int

Used to represent the different paint clock phases that can be requested.

The elements of the enumeration correspond to the signals of `GdkFrameClock`.

const (

	// no phase
	FrameClockPhaseNoneValue FrameClockPhase = 0
	// corresponds to GdkFrameClock::flush-events. Should not be handled by applications.
	FrameClockPhaseFlushEventsValue FrameClockPhase = 1
	// corresponds to GdkFrameClock::before-paint. Should not be handled by applications.
	FrameClockPhaseBeforePaintValue FrameClockPhase = 2
	// corresponds to GdkFrameClock::update.
	FrameClockPhaseUpdateValue FrameClockPhase = 4
	// corresponds to GdkFrameClock::layout. Should not be handled by applications.
	FrameClockPhaseLayoutValue FrameClockPhase = 8
	// corresponds to GdkFrameClock::paint.
	FrameClockPhasePaintValue FrameClockPhase = 16
	// corresponds to GdkFrameClock::resume-events. Should not be handled by applications.
	FrameClockPhaseResumeEventsValue FrameClockPhase = 32
	// corresponds to GdkFrameClock::after-paint. Should not be handled by applications.
	FrameClockPhaseAfterPaintValue FrameClockPhase = 64
)

type FrameClockPrivate

type FrameClockPrivate struct {
	// contains filtered or unexported fields
}

func (*FrameClockPrivate) GoPointer

func (x *FrameClockPrivate) GoPointer() uintptr

type FrameTimings

type FrameTimings struct {
	// contains filtered or unexported fields
}

Holds timing information for a single frame of the application’s displays.

To retrieve `GdkFrameTimings` objects, use [method@Gdk.FrameClock.get_timings] or [method@Gdk.FrameClock.get_current_timings]. The information in `GdkFrameTimings` 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.

func (*FrameTimings) GetComplete

func (x *FrameTimings) GetComplete() bool

Returns whether @timings are complete.

The timing information in a `GdkFrameTimings` 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 `GdkFrameTimings` 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 %TRUE for a frame, you can be certain that no further values will become available and be stored in the `GdkFrameTimings`.

func (*FrameTimings) GetFrameCounter

func (x *FrameTimings) GetFrameCounter() int64

Gets the frame counter value of the `GdkFrameClock` when this frame was drawn.

func (*FrameTimings) GetFrameTime

func (x *FrameTimings) GetFrameTime() int64

Returns the frame time for the frame.

This is the time value that is typically used to time animations for the frame. See [method@Gdk.FrameClock.get_frame_time].

func (*FrameTimings) GetPredictedPresentationTime

func (x *FrameTimings) GetPredictedPresentationTime() 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 [method@Gdk.FrameTimings.get_presentation_time], which is only available after the frame has been presented.

In general, if you are simply animating, you should use [method@Gdk.FrameClock.get_frame_time] 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.

func (*FrameTimings) GetPresentationTime

func (x *FrameTimings) GetPresentationTime() int64

Reurns the presentation time.

This is the time at which the frame became visible to the user.

func (*FrameTimings) GetRefreshInterval

func (x *FrameTimings) GetRefreshInterval() 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”.

func (*FrameTimings) GoPointer

func (x *FrameTimings) GoPointer() uintptr

func (*FrameTimings) Ref

func (x *FrameTimings) Ref() *FrameTimings

Increases the reference count of @timings.

func (*FrameTimings) Unref

func (x *FrameTimings) Unref()

Decreases the reference count of @timings.

If @timings is no longer referenced, it will be freed.

type FullscreenMode

type FullscreenMode int

Indicates which monitor a surface should span over when in fullscreen mode.

const (

	// Fullscreen on current monitor only.
	FullscreenOnCurrentMonitorValue FullscreenMode = 0
	// Span across all monitors when fullscreen.
	FullscreenOnAllMonitorsValue FullscreenMode = 1
)

type GLAPI

type GLAPI int

The list of the different APIs that GdkGLContext can potentially support.

const (

	// The OpenGL API
	GlApiGlValue GLAPI = 1
	// The OpenGL ES API
	GlApiGlesValue GLAPI = 2
)

type GLContext

type GLContext struct {
	DrawContext
}

Represents a platform-specific OpenGL draw context.

`GdkGLContext`s are created for a surface using [method@Gdk.Surface.create_gl_context], and the context will match the characteristics of the surface.

A `GdkGLContext` 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@cairo_draw_from_gl] 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 `GdkGLContext` is platform-specific and context creation can fail, returning %NULL context.

A `GdkGLContext` has to be made "current" in order to start using it, otherwise any OpenGL call will be ignored.

## Creating a new OpenGL context

In order to create a new `GdkGLContext` instance you need a `GdkSurface`, which you typically get during the realize call of a widget.

A `GdkGLContext` is not realized until either [method@Gdk.GLContext.make_current] or [method@Gdk.GLContext.realize] 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 [method@Gdk.Surface.create_gl_context] by calling [method@Gdk.GLContext.realize]. If the realization fails you have the option to change the settings of the `GdkGLContext` and try again.

## Using a GdkGLContext

You will need to make the `GdkGLContext` 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:

```c gdk_gl_context_make_current (context); ```

You can now perform your drawing using OpenGL commands.

You can check which `GdkGLContext` is the current one by using [func@Gdk.GLContext.get_current]; you can also unset any `GdkGLContext` that is currently set by calling [func@Gdk.GLContext.clear_current].

func GLContextGetCurrent

func GLContextGetCurrent() *GLContext

Retrieves the current `GdkGLContext`.

func GLContextNewFromInternalPtr

func GLContextNewFromInternalPtr(ptr uintptr) *GLContext

func (*GLContext) GetAllowedApis

func (x *GLContext) GetAllowedApis() GLAPI

Gets the allowed APIs set via gdk_gl_context_set_allowed_apis().

func (*GLContext) GetApi

func (x *GLContext) GetApi() GLAPI

Gets the API currently in use.

If the renderer has not been realized yet, 0 is returned.

func (*GLContext) GetDebugEnabled

func (x *GLContext) GetDebugEnabled() bool

Retrieves whether the context is doing extra validations and runtime checking.

See [method@Gdk.GLContext.set_debug_enabled].

func (*GLContext) GetDisplay

func (x *GLContext) GetDisplay() *Display

Retrieves the display the @context is created for

func (*GLContext) GetForwardCompatible

func (x *GLContext) GetForwardCompatible() bool

Retrieves whether the context is forward-compatible.

See [method@Gdk.GLContext.set_forward_compatible].

func (*GLContext) GetRequiredVersion

func (x *GLContext) GetRequiredVersion(MajorVar *int, MinorVar *int)

Retrieves required OpenGL version set as a requirement for the @context realization. It will not change even if a greater OpenGL version is supported and used after the @context is realized. See [method@Gdk.GLContext.get_version] for the real version in use.

See [method@Gdk.GLContext.set_required_version].

func (*GLContext) GetSharedContext

func (x *GLContext) GetSharedContext() *GLContext

Used to retrieves the `GdkGLContext` that this @context 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 %NULL.

func (*GLContext) GetSurface

func (x *GLContext) GetSurface() *Surface

Retrieves the surface used by the @context.

func (*GLContext) GetUseEs

func (x *GLContext) GetUseEs() bool

Checks whether the @context is using an OpenGL or OpenGL ES profile.

func (*GLContext) GetVersion

func (x *GLContext) GetVersion(MajorVar *int, MinorVar *int)

Retrieves the OpenGL version of the @context.

The @context must be realized prior to calling this function.

func (*GLContext) GoPointer

func (c *GLContext) GoPointer() uintptr

func (*GLContext) IsLegacy

func (x *GLContext) IsLegacy() bool

Whether the `GdkGLContext` is in legacy mode or not.

The `GdkGLContext` 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 %FALSE.

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 %TRUE.

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.

func (*GLContext) IsShared

func (x *GLContext) IsShared(OtherVar *GLContext) bool

Checks if the two GL contexts can share resources.

When they can, the texture IDs from @other can be used in @self. This is particularly useful when passing `GdkGLTexture` 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 %FALSE.

func (*GLContext) MakeCurrent

func (x *GLContext) MakeCurrent()

Makes the @context the current one.

func (*GLContext) Realize

func (x *GLContext) Realize() (bool, error)

Realizes the given `GdkGLContext`.

It is safe to call this function on a realized `GdkGLContext`.

func (*GLContext) SetAllowedApis

func (x *GLContext) SetAllowedApis(ApisVar GLAPI)

Sets the allowed APIs. When gdk_gl_context_realize() 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 gdk_gl_context_realize().

By default, all APIs are allowed.

func (*GLContext) SetDebugEnabled

func (x *GLContext) SetDebugEnabled(EnabledVar bool)

Sets whether the `GdkGLContext` should perform extra validations and runtime checking.

This is useful during development, but has additional overhead.

The `GdkGLContext` must not be realized or made current prior to calling this function.

func (*GLContext) SetForwardCompatible

func (x *GLContext) SetForwardCompatible(CompatibleVar bool)

Sets whether the `GdkGLContext` 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 `GdkGLContext` must not be realized or made current prior to calling this function.

func (*GLContext) SetGoPointer

func (c *GLContext) SetGoPointer(ptr uintptr)

func (*GLContext) SetRequiredVersion

func (x *GLContext) SetRequiredVersion(MajorVar int, MinorVar int)

Sets the major and minor version of OpenGL to request.

Setting @major and @minor to zero will use the default values.

Setting @major and @minor lower than the minimum versions required by GTK will result in the context choosing the minimum version.

The @context must not be realized or made current prior to calling this function.

func (*GLContext) SetUseEs

func (x *GLContext) SetUseEs(UseEsVar int)

Requests that GDK create an OpenGL ES context instead of an OpenGL one.

Not all platforms support OpenGL ES.

The @context 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 @context is realized.

You should check the return value of [method@Gdk.GLContext.get_use_es] after calling [method@Gdk.GLContext.realize] to decide whether to use the OpenGL or OpenGL ES API, extensions, or shaders.

type GLError

type GLError int

Error enumeration for `GdkGLContext`.

const (

	// OpenGL support is not available
	GlErrorNotAvailableValue GLError = 0
	// The requested visual format is not supported
	GlErrorUnsupportedFormatValue GLError = 1
	// The requested profile is not supported
	GlErrorUnsupportedProfileValue GLError = 2
	// The shader compilation failed
	GlErrorCompilationFailedValue GLError = 3
	// The shader linking failed
	GlErrorLinkFailedValue GLError = 4
)

type GLTexture

type GLTexture struct {
	Texture
}

A `GdkTexture` representing a GL texture object.

func GLTextureNewFromInternalPtr

func GLTextureNewFromInternalPtr(ptr uintptr) *GLTexture

func NewGLTexture

func NewGLTexture(ContextVar *GLContext, IdVar uint, WidthVar int, HeightVar int, DestroyVar *glib.DestroyNotify, DataVar uintptr) *GLTexture

Creates a new texture for an existing GL texture.

Note that the GL texture must not be modified until @destroy is called, which will happen when the GdkTexture object is finalized, or due to an explicit call of [method@Gdk.GLTexture.release].

func (*GLTexture) ComputeConcreteSize

func (x *GLTexture) ComputeConcreteSize(SpecifiedWidthVar float64, SpecifiedHeightVar float64, DefaultWidthVar float64, DefaultHeightVar float64, ConcreteWidthVar *float64, ConcreteHeightVar *float64)

Compute a concrete size for the `GdkPaintable`.

Applies the sizing algorithm outlined in the [CSS Image spec](https://drafts.csswg.org/css-images-3/#default-sizing) to the given @paintable. See that link for more details.

It is not necessary to call this function when both @specified_width and @specified_height 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.

func (*GLTexture) Equal

func (x *GLTexture) Equal(Icon2Var gio.Icon) bool

Checks if two icons are equal.

func (*GLTexture) GetCurrentImage

func (x *GLTexture) GetCurrentImage() *PaintableBase

Gets an immutable paintable for the current contents displayed by @paintable.

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 @paintable is already immutable, it will return itself.

func (*GLTexture) GetFlags

func (x *GLTexture) GetFlags() PaintableFlags

Get flags for the paintable.

This is oftentimes useful for optimizations.

See [flags@Gdk.PaintableFlags] for the flags and what they mean.

func (*GLTexture) GetIntrinsicAspectRatio

func (x *GLTexture) GetIntrinsicAspectRatio() float64

Gets the preferred aspect ratio the @paintable 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 @paintable 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 [method@Gdk.Paintable.snapshot].

Usually when a @paintable returns nonzero values from [method@Gdk.Paintable.get_intrinsic_width] and [method@Gdk.Paintable.get_intrinsic_height] the aspect ratio should conform to those values, though that is not required.

If the @paintable does not have a preferred aspect ratio, it returns 0. Negative values are never returned.

func (*GLTexture) GetIntrinsicHeight

func (x *GLTexture) GetIntrinsicHeight() int

Gets the preferred height the @paintable 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 [method@Gdk.Paintable.snapshot].

If the @paintable does not have a preferred height, it returns 0. Negative values are never returned.

func (*GLTexture) GetIntrinsicWidth

func (x *GLTexture) GetIntrinsicWidth() int

Gets the preferred width the @paintable 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 [method@Gdk.Paintable.snapshot].

If the @paintable does not have a preferred width, it returns 0. Negative values are never returned.

func (*GLTexture) GoPointer

func (c *GLTexture) GoPointer() uintptr

func (*GLTexture) Hash

func (x *GLTexture) Hash() uint

Gets a hash for an icon.

func (*GLTexture) InvalidateContents

func (x *GLTexture) InvalidateContents()

Called by implementations of `GdkPaintable` to invalidate their contents.

Unless the contents are invalidated, implementations must guarantee that multiple calls of [method@Gdk.Paintable.snapshot] produce the same output.

This function will emit the [signal@Gdk.Paintable::invalidate-contents] signal.

If a @paintable reports the %GDK_PAINTABLE_STATIC_CONTENTS flag, it must not call this function.

func (*GLTexture) InvalidateSize

func (x *GLTexture) InvalidateSize()

Called by implementations of `GdkPaintable` to invalidate their size.

As long as the size is not invalidated, @paintable must return the same values for its intrinsic width, height and aspect ratio.

This function will emit the [signal@Gdk.Paintable::invalidate-size] signal.

If a @paintable reports the %GDK_PAINTABLE_STATIC_SIZE flag, it must not call this function.

func (*GLTexture) Load

func (x *GLTexture) Load(SizeVar int, TypeVar *string, CancellableVar *gio.Cancellable) (*gio.InputStream, error)

Loads a loadable icon. For the asynchronous version of this function, see g_loadable_icon_load_async().

func (*GLTexture) LoadAsync

func (x *GLTexture) LoadAsync(SizeVar int, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr)

Loads an icon asynchronously. To finish this function, see g_loadable_icon_load_finish(). For the synchronous, blocking version of this function, see g_loadable_icon_load().

func (*GLTexture) LoadFinish

func (x *GLTexture) LoadFinish(ResVar gio.AsyncResult, TypeVar *string) (*gio.InputStream, error)

Finishes an asynchronous icon load started in g_loadable_icon_load_async().

func (*GLTexture) Release

func (x *GLTexture) Release()

Releases the GL resources held by a `GdkGLTexture`.

The texture contents are still available via the [method@Gdk.Texture.download] function, after this function has been called.

func (*GLTexture) Serialize

func (x *GLTexture) Serialize() *glib.Variant

Serializes a #GIcon into a #GVariant. An equivalent #GIcon can be retrieved back by calling g_icon_deserialize() on the returned value. As serialization will avoid using raw icon data when possible, it only makes sense to transfer the #GVariant between processes on the same machine, (as opposed to over the network), and within the same file system namespace.

func (*GLTexture) SetGoPointer

func (c *GLTexture) SetGoPointer(ptr uintptr)

func (*GLTexture) Snapshot

func (x *GLTexture) Snapshot(SnapshotVar *Snapshot, WidthVar float64, HeightVar float64)

Snapshots the given paintable with the given @width and @height.

The paintable is drawn at the current (0,0) offset of the @snapshot. If @width and @height are not larger than zero, this function will do nothing.

func (*GLTexture) ToString

func (x *GLTexture) ToString() string

Generates a textual representation of @icon that can be used for serialization such as when passing @icon to a different process or saving it to persistent storage. Use g_icon_new_for_string() to get @icon back from the returned string.

The encoding of the returned string is proprietary to #GIcon except in the following two cases

  • If @icon is a #GFileIcon, the returned string is a native path (such as `/path/to/my icon.png`) without escaping if the #GFile for @icon is a native file. If the file is not native, the returned string is the result of g_file_get_uri() (such as `sftp://path/to/my%20icon.png`).

  • If @icon is a #GThemedIcon with exactly one name and no fallbacks, the encoding is simply the name (such as `network-server`).

type GLTextureBuilder

type GLTextureBuilder struct {
	gobject.Object
}

Constructs [class@Gdk.Texture] objects from GL textures.

The operation is quite simple: Create a texture builder, set all the necessary properties - keep in mind that the properties [property@Gdk.GLTextureBuilder:context], [property@Gdk.GLTextureBuilder:id], [property@Gdk.GLTextureBuilder:width], and [property@Gdk.GLTextureBuilder:height] are mandatory - and then call [method@Gdk.GLTextureBuilder.build] to create the new texture.

`GdkGLTextureBuilder` can be used for quick one-shot construction of textures as well as kept around and reused to construct multiple textures.

func GLTextureBuilderNewFromInternalPtr

func GLTextureBuilderNewFromInternalPtr(ptr uintptr) *GLTextureBuilder

func NewGLTextureBuilder

func NewGLTextureBuilder() *GLTextureBuilder

Creates a new texture builder.

func (*GLTextureBuilder) Build

func (x *GLTextureBuilder) Build(DestroyVar *glib.DestroyNotify, DataVar uintptr) *Texture

Builds a new `GdkTexture` with the values set up in the builder.

The `destroy` function gets called when the returned texture gets released; either when the texture is finalized or by an explicit call to [method@Gdk.GLTexture.release]. It should release all GL resources associated with the texture, such as the [property@Gdk.GLTextureBuilder:id] and the [property@Gdk.GLTextureBuilder:sync].

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.

func (*GLTextureBuilder) GetColorState

func (x *GLTextureBuilder) GetColorState() *ColorState

Gets the color state previously set via gdk_gl_texture_builder_set_color_state().

func (*GLTextureBuilder) GetContext

func (x *GLTextureBuilder) GetContext() *GLContext

Gets the context previously set via gdk_gl_texture_builder_set_context() or %NULL if none was set.

func (*GLTextureBuilder) GetFormat

func (x *GLTextureBuilder) GetFormat() MemoryFormat

Gets the format previously set via gdk_gl_texture_builder_set_format().

func (*GLTextureBuilder) GetHasMipmap

func (x *GLTextureBuilder) GetHasMipmap() bool

Gets whether the texture has a mipmap.

func (*GLTextureBuilder) GetHeight

func (x *GLTextureBuilder) GetHeight() int

Gets the height previously set via gdk_gl_texture_builder_set_height() or 0 if the height wasn't set.

func (*GLTextureBuilder) GetId

func (x *GLTextureBuilder) GetId() uint

Gets the texture id previously set via gdk_gl_texture_builder_set_id() or 0 if the id wasn't set.

func (*GLTextureBuilder) GetPropertyColorState

func (x *GLTextureBuilder) GetPropertyColorState() uintptr

GetPropertyColorState gets the "color-state" property. The color state of the texture.

func (*GLTextureBuilder) GetPropertyHasMipmap

func (x *GLTextureBuilder) GetPropertyHasMipmap() bool

GetPropertyHasMipmap gets the "has-mipmap" property. If the texture has a mipmap.

func (*GLTextureBuilder) GetPropertyHeight

func (x *GLTextureBuilder) GetPropertyHeight() int

GetPropertyHeight gets the "height" property. The height of the texture.

func (*GLTextureBuilder) GetPropertyId

func (x *GLTextureBuilder) GetPropertyId() uint

GetPropertyId gets the "id" property. The texture ID to use.

func (*GLTextureBuilder) GetPropertySync

func (x *GLTextureBuilder) GetPropertySync() uintptr

GetPropertySync gets the "sync" property. An optional `GLSync` object.

If this is set, GTK will wait on it before using the texture.

func (*GLTextureBuilder) GetPropertyUpdateRegion

func (x *GLTextureBuilder) GetPropertyUpdateRegion() uintptr

GetPropertyUpdateRegion gets the "update-region" property. The update region for [property@Gdk.GLTextureBuilder:update-texture].

func (*GLTextureBuilder) GetPropertyWidth

func (x *GLTextureBuilder) GetPropertyWidth() int

GetPropertyWidth gets the "width" property. The width of the texture.

func (*GLTextureBuilder) GetSync

func (x *GLTextureBuilder) GetSync() uintptr

Gets the `GLsync` previously set via gdk_gl_texture_builder_set_sync().

func (*GLTextureBuilder) GetUpdateRegion

func (x *GLTextureBuilder) GetUpdateRegion() *cairo.Region

Gets the region previously set via gdk_gl_texture_builder_set_update_region() or %NULL if none was set.

func (*GLTextureBuilder) GetUpdateTexture

func (x *GLTextureBuilder) GetUpdateTexture() *Texture

Gets the texture previously set via gdk_gl_texture_builder_set_update_texture() or %NULL if none was set.

func (*GLTextureBuilder) GetWidth

func (x *GLTextureBuilder) GetWidth() int

Gets the width previously set via gdk_gl_texture_builder_set_width() or 0 if the width wasn't set.

func (*GLTextureBuilder) GoPointer

func (c *GLTextureBuilder) GoPointer() uintptr

func (*GLTextureBuilder) SetColorState

func (x *GLTextureBuilder) SetColorState(ColorStateVar *ColorState)

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.

func (*GLTextureBuilder) SetContext

func (x *GLTextureBuilder) SetContext(ContextVar *GLContext)

Sets the context to be used for the texture. This is the context that owns the texture.

The context must be set before calling [method@Gdk.GLTextureBuilder.build].

func (*GLTextureBuilder) SetFormat

func (x *GLTextureBuilder) SetFormat(FormatVar MemoryFormat)

Sets the format of the texture. The default is `GDK_MEMORY_R8G8B8A8_PREMULTIPLIED`.

The format is the preferred format the texture data should be downloaded to. The format must be supported by the GL version of [property@Gdk.GLTextureBuilder:context].

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 `GDK_MEMORY_R16G16B16A16_PREMULTIPLIED` is expected to be stored as `GL_RGBA16` texture, and `GDK_MEMORY_G8A8` is expected to be stored as `GL_RG8` 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.

func (*GLTextureBuilder) SetGoPointer

func (c *GLTextureBuilder) SetGoPointer(ptr uintptr)

func (*GLTextureBuilder) SetHasMipmap

func (x *GLTextureBuilder) SetHasMipmap(HasMipmapVar bool)

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 `glGenerateMipmap` function is used to generate a mimap.

func (*GLTextureBuilder) SetHeight

func (x *GLTextureBuilder) SetHeight(HeightVar int)

Sets the height of the texture.

The height must be set before calling [method@Gdk.GLTextureBuilder.build].

func (*GLTextureBuilder) SetId

func (x *GLTextureBuilder) SetId(IdVar uint)

Sets the texture id of the texture. The texture id must remain unmodified until the texture was finalized. See [method@Gdk.GLTextureBuilder.build] for a longer discussion.

The id must be set before calling [method@Gdk.GLTextureBuilder.build].

func (*GLTextureBuilder) SetPropertyColorState

func (x *GLTextureBuilder) SetPropertyColorState(value uintptr)

SetPropertyColorState sets the "color-state" property. The color state of the texture.

func (*GLTextureBuilder) SetPropertyHasMipmap

func (x *GLTextureBuilder) SetPropertyHasMipmap(value bool)

SetPropertyHasMipmap sets the "has-mipmap" property. If the texture has a mipmap.

func (*GLTextureBuilder) SetPropertyHeight

func (x *GLTextureBuilder) SetPropertyHeight(value int)

SetPropertyHeight sets the "height" property. The height of the texture.

func (*GLTextureBuilder) SetPropertyId

func (x *GLTextureBuilder) SetPropertyId(value uint)

SetPropertyId sets the "id" property. The texture ID to use.

func (*GLTextureBuilder) SetPropertySync

func (x *GLTextureBuilder) SetPropertySync(value uintptr)

SetPropertySync sets the "sync" property. An optional `GLSync` object.

If this is set, GTK will wait on it before using the texture.

func (*GLTextureBuilder) SetPropertyUpdateRegion

func (x *GLTextureBuilder) SetPropertyUpdateRegion(value uintptr)

SetPropertyUpdateRegion sets the "update-region" property. The update region for [property@Gdk.GLTextureBuilder:update-texture].

func (*GLTextureBuilder) SetPropertyWidth

func (x *GLTextureBuilder) SetPropertyWidth(value int)

SetPropertyWidth sets the "width" property. The width of the texture.

func (*GLTextureBuilder) SetSync

func (x *GLTextureBuilder) SetSync(SyncVar uintptr)

Sets the GLSync object to use for the texture.

GTK will wait on this object before using the created `GdkTexture`.

The `destroy` function that is passed to [method@Gdk.GLTextureBuilder.build] 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.

func (*GLTextureBuilder) SetUpdateRegion

func (x *GLTextureBuilder) SetUpdateRegion(RegionVar *cairo.Region)

Sets the region to be updated by this texture. Together with [property@Gdk.GLTextureBuilder:update-texture] 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.

func (*GLTextureBuilder) SetUpdateTexture

func (x *GLTextureBuilder) SetUpdateTexture(TextureVar *Texture)

Sets the texture to be updated by this texture. See [method@Gdk.GLTextureBuilder.set_update_region] for an explanation.

func (*GLTextureBuilder) SetWidth

func (x *GLTextureBuilder) SetWidth(WidthVar int)

Sets the width of the texture.

The width must be set before calling [method@Gdk.GLTextureBuilder.build].

type GLTextureBuilderClass

type GLTextureBuilderClass struct {
	// contains filtered or unexported fields
}

func (*GLTextureBuilderClass) GoPointer

func (x *GLTextureBuilderClass) GoPointer() uintptr

type GLTextureClass

type GLTextureClass struct {
	// contains filtered or unexported fields
}

func (*GLTextureClass) GoPointer

func (x *GLTextureClass) GoPointer() uintptr

type GrabBrokenEvent

type GrabBrokenEvent struct {
	Event
}

An event related to a broken windowing system grab.

func GrabBrokenEventNewFromInternalPtr

func GrabBrokenEventNewFromInternalPtr(ptr uintptr) *GrabBrokenEvent

func (*GrabBrokenEvent) GetGrabSurface

func (x *GrabBrokenEvent) GetGrabSurface() *Surface

Extracts the grab surface from a grab broken event.

func (*GrabBrokenEvent) GetImplicit

func (x *GrabBrokenEvent) GetImplicit() bool

Checks whether the grab broken event is for an implicit grab.

func (*GrabBrokenEvent) GoPointer

func (c *GrabBrokenEvent) GoPointer() uintptr

func (*GrabBrokenEvent) SetGoPointer

func (c *GrabBrokenEvent) SetGoPointer(ptr uintptr)

type Gravity

type Gravity int

Defines the reference point of a surface and is used in `GdkPopupLayout`.

const (

	// the reference point is at the top left corner.
	GravityNorthWestValue Gravity = 1
	// the reference point is in the middle of the top edge.
	GravityNorthValue Gravity = 2
	// the reference point is at the top right corner.
	GravityNorthEastValue Gravity = 3
	// the reference point is at the middle of the left edge.
	GravityWestValue Gravity = 4
	// the reference point is at the center of the surface.
	GravityCenterValue Gravity = 5
	// the reference point is at the middle of the right edge.
	GravityEastValue Gravity = 6
	// the reference point is at the lower left corner.
	GravitySouthWestValue Gravity = 7
	// the reference point is at the middle of the lower edge.
	GravitySouthValue Gravity = 8
	// the reference point is at the lower right corner.
	GravitySouthEastValue Gravity = 9
	// the reference point is at the top left corner of the
	//  surface itself, ignoring window manager decorations.
	GravityStaticValue Gravity = 10
)

type InputSource

type InputSource int

An enumeration describing the type of an input device in general terms.

const (

	// the device is a mouse. (This will be reported for the core
	//   pointer, even if it is something else, such as a trackball.)
	SourceMouseValue InputSource = 0
	// the device is a stylus of a graphics tablet or similar device.
	SourcePenValue InputSource = 1
	// the device is a keyboard.
	SourceKeyboardValue InputSource = 2
	// the device is a direct-input touch device, such
	//   as a touchscreen or tablet
	SourceTouchscreenValue InputSource = 3
	// the device is an indirect touch device, such
	//   as a touchpad
	SourceTouchpadValue InputSource = 4
	// the device is a trackpoint
	SourceTrackpointValue InputSource = 5
	// the device is a "pad", a collection of buttons,
	//   rings and strips found in drawing tablets
	SourceTabletPadValue InputSource = 6
)

type KeyEvent

type KeyEvent struct {
	Event
}

An event related to a key-based device.

func KeyEventNewFromInternalPtr

func KeyEventNewFromInternalPtr(ptr uintptr) *KeyEvent

func (*KeyEvent) GetConsumedModifiers

func (x *KeyEvent) GetConsumedModifiers() ModifierType

Extracts the consumed modifiers from a key event.

func (*KeyEvent) GetKeycode

func (x *KeyEvent) GetKeycode() uint

Extracts the keycode from a key event.

func (*KeyEvent) GetKeyval

func (x *KeyEvent) GetKeyval() uint

Extracts the keyval from a key event.

func (*KeyEvent) GetLayout

func (x *KeyEvent) GetLayout() uint

Extracts the layout from a key event.

func (*KeyEvent) GetLevel

func (x *KeyEvent) GetLevel() uint

Extracts the shift level from a key event.

func (*KeyEvent) GetMatch

func (x *KeyEvent) GetMatch(KeyvalVar *uint, ModifiersVar *ModifierType) bool

Gets a keyval and modifier combination that will match the event.

See [method@Gdk.KeyEvent.matches].

func (*KeyEvent) GoPointer

func (c *KeyEvent) GoPointer() uintptr

func (*KeyEvent) IsModifier

func (x *KeyEvent) IsModifier() bool

Extracts whether the key event is for a modifier key.

func (*KeyEvent) Matches

func (x *KeyEvent) Matches(KeyvalVar uint, ModifiersVar ModifierType) KeyMatch

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.

func (*KeyEvent) SetGoPointer

func (c *KeyEvent) SetGoPointer(ptr uintptr)

type KeyMatch

type KeyMatch int

Describes how well an event matches a given keyval and modifiers.

`GdkKeyMatch` values are returned by [method@Gdk.KeyEvent.matches].

const (

	// The key event does not match
	KeyMatchNoneValue KeyMatch = 0
	// The key event matches if keyboard state
	//   (specifically, the currently active group) is ignored
	KeyMatchPartialValue KeyMatch = 1
	// The key event matches
	KeyMatchExactValue KeyMatch = 2
)

type KeymapKey

type KeymapKey struct {
	Keycode uint

	Group int

	Level int
	// contains filtered or unexported fields
}

Represents a hardware key that can be mapped to a keyval.

func (*KeymapKey) GoPointer

func (x *KeymapKey) GoPointer() uintptr

type MemoryFormat

type MemoryFormat int

Describes formats that image data can have in memory.

It describes formats by listing the contents of the memory passed to it. So `GDK_MEMORY_A8R8G8B8` will be 1 byte (8 bits) of alpha, followed by a byte each of red, green and blue. It is not endian-dependent, so `CAIRO_FORMAT_ARGB32` is represented by different `GdkMemoryFormats` on architectures with different endiannesses.

Its naming is modelled after [VkFormat](https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VkFormat) for details).

const (

	// 4 bytes; for blue, green, red, alpha.
	//   The color values are premultiplied with the alpha value.
	MemoryB8g8r8a8PremultipliedValue MemoryFormat = 0
	// 4 bytes; for alpha, red, green, blue.
	//   The color values are premultiplied with the alpha value.
	MemoryA8r8g8b8PremultipliedValue MemoryFormat = 1
	// 4 bytes; for red, green, blue, alpha
	//   The color values are premultiplied with the alpha value.
	MemoryR8g8b8a8PremultipliedValue MemoryFormat = 2
	// 4 bytes; for blue, green, red, alpha.
	MemoryB8g8r8a8Value MemoryFormat = 3
	// 4 bytes; for alpha, red, green, blue.
	MemoryA8r8g8b8Value MemoryFormat = 4
	// 4 bytes; for red, green, blue, alpha.
	MemoryR8g8b8a8Value MemoryFormat = 5
	// 4 bytes; for alpha, blue, green, red.
	MemoryA8b8g8r8Value MemoryFormat = 6
	// 3 bytes; for red, green, blue. The data is opaque.
	MemoryR8g8b8Value MemoryFormat = 7
	// 3 bytes; for blue, green, red. The data is opaque.
	MemoryB8g8r8Value MemoryFormat = 8
	// 3 guint16 values; for red, green, blue.
	MemoryR16g16b16Value MemoryFormat = 9
	// 4 guint16 values; for red, green, blue, alpha. The color values are
	// premultiplied with the alpha value.
	MemoryR16g16b16a16PremultipliedValue MemoryFormat = 10
	// 4 guint16 values; for red, green, blue, alpha.
	MemoryR16g16b16a16Value MemoryFormat = 11
	// 3 half-float values; for red, green, blue. The data is opaque.
	MemoryR16g16b16FloatValue MemoryFormat = 12
	// 4 half-float values; for red, green, blue and alpha. The color values are
	// premultiplied with the alpha value.
	MemoryR16g16b16a16FloatPremultipliedValue MemoryFormat = 13
	// 4 half-float values; for red, green, blue and alpha.
	MemoryR16g16b16a16FloatValue MemoryFormat = 14
	// 3 float values; for red, green, blue.
	MemoryR32g32b32FloatValue MemoryFormat = 15
	// 4 float values; for red, green, blue and alpha. The color values are
	// premultiplied with the alpha value.
	MemoryR32g32b32a32FloatPremultipliedValue MemoryFormat = 16
	// 4 float values; for red, green, blue and alpha.
	MemoryR32g32b32a32FloatValue MemoryFormat = 17
	// 2 bytes; for grayscale, alpha. The color values are premultiplied with the
	// alpha value.
	MemoryG8a8PremultipliedValue MemoryFormat = 18
	// 2 bytes; for grayscale, alpha.
	MemoryG8a8Value MemoryFormat = 19
	// One byte; for grayscale. The data is opaque.
	MemoryG8Value MemoryFormat = 20
	// 2 guint16 values; for grayscale, alpha. The color values are premultiplied
	// with the alpha value.
	MemoryG16a16PremultipliedValue MemoryFormat = 21
	// 2 guint16 values; for grayscale, alpha.
	MemoryG16a16Value MemoryFormat = 22
	// One guint16 value; for grayscale. The data is opaque.
	MemoryG16Value MemoryFormat = 23
	// One byte; for alpha.
	MemoryA8Value MemoryFormat = 24
	// One guint16 value; for alpha.
	MemoryA16Value MemoryFormat = 25
	// One half-float value; for alpha.
	MemoryA16FloatValue MemoryFormat = 26
	// One float value; for alpha.
	MemoryA32FloatValue MemoryFormat = 27
	// 4 bytes; for alpha, blue, green, red, The color values are premultiplied with
	// the alpha value.
	MemoryA8b8g8r8PremultipliedValue MemoryFormat = 28
	// 4 bytes; for blue, green, red, unused.
	MemoryB8g8r8x8Value MemoryFormat = 29
	// 4 bytes; for unused, red, green, blue.
	MemoryX8r8g8b8Value MemoryFormat = 30
	// 4 bytes; for red, green, blue, unused.
	MemoryR8g8b8x8Value MemoryFormat = 31
	// 4 bytes; for unused, blue, green, red.
	MemoryX8b8g8r8Value MemoryFormat = 32
	// 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".
	MemoryG8B8r8420Value MemoryFormat = 33
	// 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".
	MemoryG8R8b8420Value MemoryFormat = 34
	// 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".
	MemoryG8B8r8422Value MemoryFormat = 35
	// 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".
	MemoryG8R8b8422Value MemoryFormat = 36
	// 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".
	MemoryG8B8r8444Value MemoryFormat = 37
	// 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".
	MemoryG8R8b8444Value MemoryFormat = 38
	// 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".
	MemoryG10x6B10x6r10x6420Value MemoryFormat = 39
	// 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".
	MemoryG12x4B12x4r12x4420Value MemoryFormat = 40
	// 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".
	MemoryG16B16r16420Value MemoryFormat = 41
	// 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".
	MemoryG8B8R8410Value MemoryFormat = 42
	// 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".
	MemoryG8R8B8410Value MemoryFormat = 43
	// 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".
	MemoryG8B8R8411Value MemoryFormat = 44
	// 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".
	MemoryG8R8B8411Value MemoryFormat = 45
	// 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".
	MemoryG8B8R8420Value MemoryFormat = 46
	// 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".
	MemoryG8R8B8420Value MemoryFormat = 47
	// 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".
	MemoryG8B8R8422Value MemoryFormat = 48
	// 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".
	MemoryG8R8B8422Value MemoryFormat = 49
	// 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".
	MemoryG8B8R8444Value MemoryFormat = 50
	// 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".
	MemoryG8R8B8444Value MemoryFormat = 51
	// 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".
	MemoryG8b8g8r8422Value MemoryFormat = 52
	// 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".
	MemoryG8r8g8b8422Value MemoryFormat = 53
	// 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".
	MemoryR8g8b8g8422Value MemoryFormat = 54
	// 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".
	MemoryB8g8r8g8422Value MemoryFormat = 55
	// 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".
	MemoryX6g10X6b10X6r10420Value MemoryFormat = 56
	// 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".
	MemoryX6g10X6b10X6r10422Value MemoryFormat = 57
	// 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".
	MemoryX6g10X6b10X6r10444Value MemoryFormat = 58
	// 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".
	MemoryX4g12X4b12X4r12420Value MemoryFormat = 59
	// 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".
	MemoryX4g12X4b12X4r12422Value MemoryFormat = 60
	// 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".
	MemoryX4g12X4b12X4r12444Value MemoryFormat = 61
	// 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".
	MemoryG16B16R16420Value MemoryFormat = 62
	// 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".
	MemoryG16B16R16422Value MemoryFormat = 63
	// 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".
	MemoryG16B16R16444Value MemoryFormat = 64
	// The number of formats. This value will change as
	//   more formats get added, so do not rely on its concrete integer.
	MemoryNFormatsValue MemoryFormat = 65
)

type MemoryTexture

type MemoryTexture struct {
	Texture
}

A `GdkTexture` representing image data in memory.

func MemoryTextureNewFromInternalPtr

func MemoryTextureNewFromInternalPtr(ptr uintptr) *MemoryTexture

func NewMemoryTexture

func NewMemoryTexture(WidthVar int, HeightVar int, FormatVar MemoryFormat, BytesVar *glib.Bytes, StrideVar uint) *MemoryTexture

Creates a new texture for a blob of image data.

The `GBytes` must contain @stride × @height pixels in the given format.

func (*MemoryTexture) ComputeConcreteSize

func (x *MemoryTexture) ComputeConcreteSize(SpecifiedWidthVar float64, SpecifiedHeightVar float64, DefaultWidthVar float64, DefaultHeightVar float64, ConcreteWidthVar *float64, ConcreteHeightVar *float64)

Compute a concrete size for the `GdkPaintable`.

Applies the sizing algorithm outlined in the [CSS Image spec](https://drafts.csswg.org/css-images-3/#default-sizing) to the given @paintable. See that link for more details.

It is not necessary to call this function when both @specified_width and @specified_height 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.

func (*MemoryTexture) Equal

func (x *MemoryTexture) Equal(Icon2Var gio.Icon) bool

Checks if two icons are equal.

func (*MemoryTexture) GetCurrentImage

func (x *MemoryTexture) GetCurrentImage() *PaintableBase

Gets an immutable paintable for the current contents displayed by @paintable.

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 @paintable is already immutable, it will return itself.

func (*MemoryTexture) GetFlags

func (x *MemoryTexture) GetFlags() PaintableFlags

Get flags for the paintable.

This is oftentimes useful for optimizations.

See [flags@Gdk.PaintableFlags] for the flags and what they mean.

func (*MemoryTexture) GetIntrinsicAspectRatio

func (x *MemoryTexture) GetIntrinsicAspectRatio() float64

Gets the preferred aspect ratio the @paintable 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 @paintable 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 [method@Gdk.Paintable.snapshot].

Usually when a @paintable returns nonzero values from [method@Gdk.Paintable.get_intrinsic_width] and [method@Gdk.Paintable.get_intrinsic_height] the aspect ratio should conform to those values, though that is not required.

If the @paintable does not have a preferred aspect ratio, it returns 0. Negative values are never returned.

func (*MemoryTexture) GetIntrinsicHeight

func (x *MemoryTexture) GetIntrinsicHeight() int

Gets the preferred height the @paintable 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 [method@Gdk.Paintable.snapshot].

If the @paintable does not have a preferred height, it returns 0. Negative values are never returned.

func (*MemoryTexture) GetIntrinsicWidth

func (x *MemoryTexture) GetIntrinsicWidth() int

Gets the preferred width the @paintable 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 [method@Gdk.Paintable.snapshot].

If the @paintable does not have a preferred width, it returns 0. Negative values are never returned.

func (*MemoryTexture) GoPointer

func (c *MemoryTexture) GoPointer() uintptr

func (*MemoryTexture) Hash

func (x *MemoryTexture) Hash() uint

Gets a hash for an icon.

func (*MemoryTexture) InvalidateContents

func (x *MemoryTexture) InvalidateContents()

Called by implementations of `GdkPaintable` to invalidate their contents.

Unless the contents are invalidated, implementations must guarantee that multiple calls of [method@Gdk.Paintable.snapshot] produce the same output.

This function will emit the [signal@Gdk.Paintable::invalidate-contents] signal.

If a @paintable reports the %GDK_PAINTABLE_STATIC_CONTENTS flag, it must not call this function.

func (*MemoryTexture) InvalidateSize

func (x *MemoryTexture) InvalidateSize()

Called by implementations of `GdkPaintable` to invalidate their size.

As long as the size is not invalidated, @paintable must return the same values for its intrinsic width, height and aspect ratio.

This function will emit the [signal@Gdk.Paintable::invalidate-size] signal.

If a @paintable reports the %GDK_PAINTABLE_STATIC_SIZE flag, it must not call this function.

func (*MemoryTexture) Load

func (x *MemoryTexture) Load(SizeVar int, TypeVar *string, CancellableVar *gio.Cancellable) (*gio.InputStream, error)

Loads a loadable icon. For the asynchronous version of this function, see g_loadable_icon_load_async().

func (*MemoryTexture) LoadAsync

func (x *MemoryTexture) LoadAsync(SizeVar int, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr)

Loads an icon asynchronously. To finish this function, see g_loadable_icon_load_finish(). For the synchronous, blocking version of this function, see g_loadable_icon_load().

func (*MemoryTexture) LoadFinish

func (x *MemoryTexture) LoadFinish(ResVar gio.AsyncResult, TypeVar *string) (*gio.InputStream, error)

Finishes an asynchronous icon load started in g_loadable_icon_load_async().

func (*MemoryTexture) Serialize

func (x *MemoryTexture) Serialize() *glib.Variant

Serializes a #GIcon into a #GVariant. An equivalent #GIcon can be retrieved back by calling g_icon_deserialize() on the returned value. As serialization will avoid using raw icon data when possible, it only makes sense to transfer the #GVariant between processes on the same machine, (as opposed to over the network), and within the same file system namespace.

func (*MemoryTexture) SetGoPointer

func (c *MemoryTexture) SetGoPointer(ptr uintptr)

func (*MemoryTexture) Snapshot

func (x *MemoryTexture) Snapshot(SnapshotVar *Snapshot, WidthVar float64, HeightVar float64)

Snapshots the given paintable with the given @width and @height.

The paintable is drawn at the current (0,0) offset of the @snapshot. If @width and @height are not larger than zero, this function will do nothing.

func (*MemoryTexture) ToString

func (x *MemoryTexture) ToString() string

Generates a textual representation of @icon that can be used for serialization such as when passing @icon to a different process or saving it to persistent storage. Use g_icon_new_for_string() to get @icon back from the returned string.

The encoding of the returned string is proprietary to #GIcon except in the following two cases

  • If @icon is a #GFileIcon, the returned string is a native path (such as `/path/to/my icon.png`) without escaping if the #GFile for @icon is a native file. If the file is not native, the returned string is the result of g_file_get_uri() (such as `sftp://path/to/my%20icon.png`).

  • If @icon is a #GThemedIcon with exactly one name and no fallbacks, the encoding is simply the name (such as `network-server`).

type MemoryTextureBuilder

type MemoryTextureBuilder struct {
	gobject.Object
}

Constructs [class@Gdk.Texture] objects from system memory provided via [struct@GLib.Bytes].

The operation is quite simple: Create a texture builder, set all the necessary properties - keep in mind that the properties [property@Gdk.MemoryTextureBuilder:bytes], [property@Gdk.MemoryTextureBuilder:stride], [property@Gdk.MemoryTextureBuilder:width], and [property@Gdk.MemoryTextureBuilder:height] are mandatory - and then call [method@Gdk.MemoryTextureBuilder.build] to create the new texture.

`GdkMemoryTextureBuilder` can be used for quick one-shot construction of textures as well as kept around and reused to construct multiple textures.

func MemoryTextureBuilderNewFromInternalPtr

func MemoryTextureBuilderNewFromInternalPtr(ptr uintptr) *MemoryTextureBuilder

func NewMemoryTextureBuilder

func NewMemoryTextureBuilder() *MemoryTextureBuilder

Creates a new texture builder.

func (*MemoryTextureBuilder) Build

func (x *MemoryTextureBuilder) Build() *Texture

Builds a new `GdkTexture` 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.

func (*MemoryTextureBuilder) GetBytes

func (x *MemoryTextureBuilder) GetBytes() *glib.Bytes

Gets the bytes previously set via gdk_memory_texture_builder_set_bytes() or %NULL if none was set.

func (*MemoryTextureBuilder) GetColorState

func (x *MemoryTextureBuilder) GetColorState() *ColorState

Gets the colorstate previously set via gdk_memory_texture_builder_set_color_state().

func (*MemoryTextureBuilder) GetFormat

func (x *MemoryTextureBuilder) GetFormat() MemoryFormat

Gets the format previously set via gdk_memory_texture_builder_set_format().

func (*MemoryTextureBuilder) GetHeight

func (x *MemoryTextureBuilder) GetHeight() int

Gets the height previously set via gdk_memory_texture_builder_set_height() or 0 if the height wasn't set.

func (*MemoryTextureBuilder) GetOffset

func (x *MemoryTextureBuilder) GetOffset(PlaneVar uint) uint

Gets the offset previously set via gdk_memory_texture_builder_set_offset().

func (*MemoryTextureBuilder) GetPropertyBytes

func (x *MemoryTextureBuilder) GetPropertyBytes() uintptr

GetPropertyBytes gets the "bytes" property. The bytes holding the data.

func (*MemoryTextureBuilder) GetPropertyColorState

func (x *MemoryTextureBuilder) GetPropertyColorState() uintptr

GetPropertyColorState gets the "color-state" property. The colorstate describing the data.

func (*MemoryTextureBuilder) GetPropertyHeight

func (x *MemoryTextureBuilder) GetPropertyHeight() int

GetPropertyHeight gets the "height" property. The height of the texture.

func (*MemoryTextureBuilder) GetPropertyStride

func (x *MemoryTextureBuilder) GetPropertyStride() uint64

GetPropertyStride gets the "stride" property. The rowstride of the texture.

The rowstride is the number of bytes between the first pixel in a row of image data, and the first pixel in the next row.

func (*MemoryTextureBuilder) GetPropertyUpdateRegion

func (x *MemoryTextureBuilder) GetPropertyUpdateRegion() uintptr

GetPropertyUpdateRegion gets the "update-region" property. The update region for [property@Gdk.MemoryTextureBuilder:update-texture].

func (*MemoryTextureBuilder) GetPropertyWidth

func (x *MemoryTextureBuilder) GetPropertyWidth() int

GetPropertyWidth gets the "width" property. The width of the texture.

func (*MemoryTextureBuilder) GetStride

func (x *MemoryTextureBuilder) GetStride() uint

Gets the stride previously set via gdk_memory_texture_builder_set_stride().

func (*MemoryTextureBuilder) GetStrideForPlane

func (x *MemoryTextureBuilder) GetStrideForPlane(PlaneVar uint) uint

Gets the stride previously set via gdk_memory_texture_builder_set_stride_for_plane().

func (*MemoryTextureBuilder) GetUpdateRegion

func (x *MemoryTextureBuilder) GetUpdateRegion() *cairo.Region

Gets the region previously set via gdk_memory_texture_builder_set_update_region() or %NULL if none was set.

func (*MemoryTextureBuilder) GetUpdateTexture

func (x *MemoryTextureBuilder) GetUpdateTexture() *Texture

Gets the texture previously set via gdk_memory_texture_builder_set_update_texture() or %NULL if none was set.

func (*MemoryTextureBuilder) GetWidth

func (x *MemoryTextureBuilder) GetWidth() int

Gets the width previously set via gdk_memory_texture_builder_set_width() or 0 if the width wasn't set.

func (*MemoryTextureBuilder) GoPointer

func (c *MemoryTextureBuilder) GoPointer() uintptr

func (*MemoryTextureBuilder) SetBytes

func (x *MemoryTextureBuilder) SetBytes(BytesVar *glib.Bytes)

Sets the data to be shown but the texture.

The bytes must be set before calling [method@Gdk.MemoryTextureBuilder.build].

func (*MemoryTextureBuilder) SetColorState

func (x *MemoryTextureBuilder) SetColorState(ColorStateVar *ColorState)

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.

func (*MemoryTextureBuilder) SetFormat

func (x *MemoryTextureBuilder) SetFormat(FormatVar MemoryFormat)

Sets the format of the bytes.

The default is `GDK_MEMORY_R8G8B8A8_PREMULTIPLIED`.

func (*MemoryTextureBuilder) SetGoPointer

func (c *MemoryTextureBuilder) SetGoPointer(ptr uintptr)

func (*MemoryTextureBuilder) SetHeight

func (x *MemoryTextureBuilder) SetHeight(HeightVar int)

Sets the height of the texture.

The height must be set before calling [method@Gdk.MemoryTextureBuilder.build] and conform to size requirements of the provided format.

func (*MemoryTextureBuilder) SetOffset

func (x *MemoryTextureBuilder) SetOffset(PlaneVar uint, OffsetVar uint)

Sets the offset of the texture for @plane.

func (*MemoryTextureBuilder) SetPropertyBytes

func (x *MemoryTextureBuilder) SetPropertyBytes(value uintptr)

SetPropertyBytes sets the "bytes" property. The bytes holding the data.

func (*MemoryTextureBuilder) SetPropertyColorState

func (x *MemoryTextureBuilder) SetPropertyColorState(value uintptr)

SetPropertyColorState sets the "color-state" property. The colorstate describing the data.

func (*MemoryTextureBuilder) SetPropertyHeight

func (x *MemoryTextureBuilder) SetPropertyHeight(value int)

SetPropertyHeight sets the "height" property. The height of the texture.

func (*MemoryTextureBuilder) SetPropertyStride

func (x *MemoryTextureBuilder) SetPropertyStride(value uint64)

SetPropertyStride sets the "stride" property. The rowstride of the texture.

The rowstride is the number of bytes between the first pixel in a row of image data, and the first pixel in the next row.

func (*MemoryTextureBuilder) SetPropertyUpdateRegion

func (x *MemoryTextureBuilder) SetPropertyUpdateRegion(value uintptr)

SetPropertyUpdateRegion sets the "update-region" property. The update region for [property@Gdk.MemoryTextureBuilder:update-texture].

func (*MemoryTextureBuilder) SetPropertyWidth

func (x *MemoryTextureBuilder) SetPropertyWidth(value int)

SetPropertyWidth sets the "width" property. The width of the texture.

func (*MemoryTextureBuilder) SetStride

func (x *MemoryTextureBuilder) SetStride(StrideVar uint)

Sets the rowstride of the bytes used.

The rowstride must be set before calling [method@Gdk.MemoryTextureBuilder.build].

func (*MemoryTextureBuilder) SetStrideForPlane

func (x *MemoryTextureBuilder) SetStrideForPlane(PlaneVar uint, StrideVar uint)

Sets the stride of the texture for @plane.

func (*MemoryTextureBuilder) SetUpdateRegion

func (x *MemoryTextureBuilder) SetUpdateRegion(RegionVar *cairo.Region)

Sets the region to be updated by this texture.

Together with [property@Gdk.MemoryTextureBuilder:update-texture], 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.

func (*MemoryTextureBuilder) SetUpdateTexture

func (x *MemoryTextureBuilder) SetUpdateTexture(TextureVar *Texture)

Sets the texture to be updated by this texture.

See [method@Gdk.MemoryTextureBuilder.set_update_region] for an explanation.

func (*MemoryTextureBuilder) SetWidth

func (x *MemoryTextureBuilder) SetWidth(WidthVar int)

Sets the width of the texture.

The width must be set before calling [method@Gdk.MemoryTextureBuilder.build] and conform to size requirements of the provided format.

type MemoryTextureBuilderClass

type MemoryTextureBuilderClass struct {
	// contains filtered or unexported fields
}

func (*MemoryTextureBuilderClass) GoPointer

func (x *MemoryTextureBuilderClass) GoPointer() uintptr

type MemoryTextureClass

type MemoryTextureClass struct {
	// contains filtered or unexported fields
}

func (*MemoryTextureClass) GoPointer

func (x *MemoryTextureClass) GoPointer() uintptr

type ModifierType

type ModifierType int

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 %GDK_MODIFIER_MASK to remove all private values.

const (

	// No modifier.
	NoModifierMaskValue ModifierType = 0
	// the Shift key.
	ShiftMaskValue ModifierType = 1
	// a Lock key (depending on the Windowing System configuration,
	//    this may either be <kbd>CapsLock</kbd> or <kbd>ShiftLock</kbd>).
	LockMaskValue ModifierType = 2
	// the Control key.
	ControlMaskValue ModifierType = 4
	// the fourth modifier key (it depends on the Windowing System
	//    configuration which key is interpreted as this modifier, but normally it
	//    is the <kbd>Alt</kbd> key).
	AltMaskValue ModifierType = 8
	// the first mouse button.
	Button1MaskValue ModifierType = 256
	// the second mouse button.
	Button2MaskValue ModifierType = 512
	// the third mouse button.
	Button3MaskValue ModifierType = 1024
	// the fourth mouse button.
	Button4MaskValue ModifierType = 2048
	// the fifth mouse button.
	Button5MaskValue ModifierType = 4096
	// the Super modifier.
	SuperMaskValue ModifierType = 67108864
	// the Hyper modifier.
	HyperMaskValue ModifierType = 134217728
	// the Meta modifier. Maps to Command on macOS.
	MetaMaskValue ModifierType = 268435456
)

type Monitor

type Monitor struct {
	gobject.Object
}

Represents the individual outputs that are associated with a `GdkDisplay`.

`GdkDisplay` keeps a `GListModel` to enumerate and monitor monitors with [method@Gdk.Display.get_monitors]. You can use [method@Gdk.Display.get_monitor_at_surface] to find a particular monitor.

func MonitorNewFromInternalPtr

func MonitorNewFromInternalPtr(ptr uintptr) *Monitor

func (*Monitor) ConnectInvalidate

func (x *Monitor) ConnectInvalidate(cb *func(Monitor)) uint

Emitted when the output represented by @monitor gets disconnected.

func (*Monitor) GetConnector

func (x *Monitor) GetConnector() string

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.

func (*Monitor) GetDescription

func (x *Monitor) GetDescription() string

Gets a string describing the monitor, if available.

This can be used to identify a monitor in the UI.

func (*Monitor) GetDisplay

func (x *Monitor) GetDisplay() *Display

Gets the display that this monitor belongs to.

func (*Monitor) GetGeometry

func (x *Monitor) GetGeometry(GeometryVar *Rectangle)

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 [method@Gdk.Monitor.get_scale]).

func (*Monitor) GetHeightMm

func (x *Monitor) GetHeightMm() int

Gets the height in millimeters of the monitor.

func (*Monitor) GetManufacturer

func (x *Monitor) GetManufacturer() string

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 [https://uefi.org/pnp_id_list](https://uefi.org/pnp_id_list).

func (*Monitor) GetModel

func (x *Monitor) GetModel() string

Gets the string identifying the monitor model, if available.

func (*Monitor) GetPropertyConnector

func (x *Monitor) GetPropertyConnector() string

GetPropertyConnector gets the "connector" property. The connector name.

func (*Monitor) GetPropertyDescription

func (x *Monitor) GetPropertyDescription() string

GetPropertyDescription gets the "description" property. A short description of the monitor, meant for display to the user.

func (*Monitor) GetPropertyGeometry

func (x *Monitor) GetPropertyGeometry() uintptr

GetPropertyGeometry gets the "geometry" property. The geometry of the monitor.

func (*Monitor) GetPropertyHeightMm

func (x *Monitor) GetPropertyHeightMm() int

GetPropertyHeightMm gets the "height-mm" property. The height of the monitor, in millimeters.

func (*Monitor) GetPropertyManufacturer

func (x *Monitor) GetPropertyManufacturer() string

GetPropertyManufacturer gets the "manufacturer" property. The manufacturer name.

func (*Monitor) GetPropertyModel

func (x *Monitor) GetPropertyModel() string

GetPropertyModel gets the "model" property. The model name.

func (*Monitor) GetPropertyRefreshRate

func (x *Monitor) GetPropertyRefreshRate() int

GetPropertyRefreshRate gets the "refresh-rate" property. The refresh rate, in milli-Hertz.

func (*Monitor) GetPropertyScale

func (x *Monitor) GetPropertyScale() float64

GetPropertyScale gets the "scale" property. The scale of the monitor.

func (*Monitor) GetPropertyScaleFactor

func (x *Monitor) GetPropertyScaleFactor() int

GetPropertyScaleFactor gets the "scale-factor" property. The scale factor.

The scale factor is the next larger integer, compared to [property@Gdk.Surface:scale].

func (*Monitor) GetPropertyValid

func (x *Monitor) GetPropertyValid() bool

GetPropertyValid gets the "valid" property. Whether the object is still valid.

func (*Monitor) GetPropertyWidthMm

func (x *Monitor) GetPropertyWidthMm() int

GetPropertyWidthMm gets the "width-mm" property. The width of the monitor, in millimeters.

func (*Monitor) GetRefreshRate

func (x *Monitor) GetRefreshRate() int

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.

func (*Monitor) GetScale

func (x *Monitor) GetScale() float64

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 [method@Gdk.Surface.get_scale] instead.

func (*Monitor) GetScaleFactor

func (x *Monitor) GetScaleFactor() int

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 [method@Gdk.Surface.get_scale_factor] instead.

func (*Monitor) GetSubpixelLayout

func (x *Monitor) GetSubpixelLayout() SubpixelLayout

Gets information about the layout of red, green and blue primaries for pixels.

func (*Monitor) GetWidthMm

func (x *Monitor) GetWidthMm() int

Gets the width in millimeters of the monitor.

func (*Monitor) GoPointer

func (c *Monitor) GoPointer() uintptr

func (*Monitor) IsValid

func (x *Monitor) IsValid() bool

Returns %TRUE if the @monitor object corresponds to a physical monitor.

The @monitor becomes invalid when the physical monitor is unplugged or removed.

func (*Monitor) SetGoPointer

func (c *Monitor) SetGoPointer(ptr uintptr)

type MonitorClass

type MonitorClass struct {
	// contains filtered or unexported fields
}

func (*MonitorClass) GoPointer

func (x *MonitorClass) GoPointer() uintptr

type MotionEvent

type MotionEvent struct {
	Event
}

An event related to a pointer or touch device motion.

func MotionEventNewFromInternalPtr

func MotionEventNewFromInternalPtr(ptr uintptr) *MotionEvent

func (*MotionEvent) GoPointer

func (c *MotionEvent) GoPointer() uintptr

func (*MotionEvent) SetGoPointer

func (c *MotionEvent) SetGoPointer(ptr uintptr)

type NotifyType

type NotifyType int

Specifies the kind of crossing for enter and leave events.

See the X11 protocol specification of LeaveNotify for full details of crossing event generation.

const (

	// the surface is entered from an ancestor or
	//   left towards an ancestor.
	NotifyAncestorValue NotifyType = 0
	// the pointer moves between an ancestor and an
	//   inferior of the surface.
	NotifyVirtualValue NotifyType = 1
	// the surface is entered from an inferior or
	//   left towards an inferior.
	NotifyInferiorValue NotifyType = 2
	// the surface is entered from or left towards
	//   a surface which is neither an ancestor nor an inferior.
	NotifyNonlinearValue NotifyType = 3
	// 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.
	NotifyNonlinearVirtualValue NotifyType = 4
	// an unknown type of enter/leave event occurred.
	NotifyUnknownValue NotifyType = 5
)

type PadEvent

type PadEvent struct {
	Event
}

An event related to a pad-based device.

func PadEventNewFromInternalPtr

func PadEventNewFromInternalPtr(ptr uintptr) *PadEvent

func (*PadEvent) GetAxisValue

func (x *PadEvent) GetAxisValue(IndexVar *uint, ValueVar *float64)

Extracts the information from a pad strip or ring event.

func (*PadEvent) GetButton

func (x *PadEvent) GetButton() uint

Extracts information about the pressed button from a pad event.

func (*PadEvent) GetGroupMode

func (x *PadEvent) GetGroupMode(GroupVar *uint, ModeVar *uint)

Extracts group and mode information from a pad event.

func (*PadEvent) GoPointer

func (c *PadEvent) GoPointer() uintptr

func (*PadEvent) SetGoPointer

func (c *PadEvent) SetGoPointer(ptr uintptr)

type Paintable

type Paintable interface {
	GoPointer() uintptr
	SetGoPointer(uintptr)
	ComputeConcreteSize(SpecifiedWidthVar float64, SpecifiedHeightVar float64, DefaultWidthVar float64, DefaultHeightVar float64, ConcreteWidthVar *float64, ConcreteHeightVar *float64)
	GetCurrentImage() *PaintableBase
	GetFlags() PaintableFlags
	GetIntrinsicAspectRatio() float64
	GetIntrinsicHeight() int
	GetIntrinsicWidth() int
	InvalidateContents()
	InvalidateSize()
	Snapshot(SnapshotVar *Snapshot, WidthVar float64, HeightVar float64)
}

An interface for content that can be painted.

The content of a `GdkPaintable` can be painted anywhere at any size without requiring any sort of layout. The interface is inspired by similar concepts elsewhere, such as [ClutterContent](https://developer.gnome.org/clutter/stable/ClutterContent.html), [HTML/CSS Paint Sources](https://www.w3.org/TR/css-images-4/#paint-source), or [SVG Paint Servers](https://www.w3.org/TR/SVG2/pservers.html).

A `GdkPaintable` can be snapshot at any time and size using [method@Gdk.Paintable.snapshot]. 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 `GdkPaintable` and don't know what to do, it is suggested that you scale your paintable ignoring any potential aspect ratio.

The contents that a `GdkPaintable` produces may depend on the [class@Gdk.Snapshot] passed to it. For example, paintables may decide to use more detailed images on higher resolution screens or when OpenGL is available. A `GdkPaintable` will however always produce the same output for the same snapshot.

A `GdkPaintable` may change its contents, meaning that it will now produce a different output with the same snapshot. Once that happens, it will call [method@Gdk.Paintable.invalidate_contents] which will emit the [signal@Gdk.Paintable::invalidate-contents] signal. If a paintable is known to never change its contents, it will set the %GDK_PAINTABLE_STATIC_CONTENTS flag. If a consumer cannot deal with changing contents, it may call [method@Gdk.Paintable.get_current_image] 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 [method@Gdk.Paintable.invalidate_size] which will emit the [signal@Gdk.Paintable::invalidate-size] signal. And just like for contents, if a paintable is known to never change its size, it will set the %GDK_PAINTABLE_STATIC_SIZE flag.

Besides API for applications, there are some functions that are only useful for implementing subclasses and should not be used by applications: [method@Gdk.Paintable.invalidate_contents], [method@Gdk.Paintable.invalidate_size], [func@Gdk.Paintable.new_empty].

type PaintableBase

type PaintableBase struct {
	Ptr uintptr
}

func PaintableNewEmpty

func PaintableNewEmpty(IntrinsicWidthVar int, IntrinsicHeightVar int) *PaintableBase

Returns a paintable that has the given intrinsic size and draws nothing.

This is often useful for implementing the [vfunc@Gdk.Paintable.get_current_image] virtual function when the paintable is in an incomplete state (like a [GtkMediaStream](../gtk4/class.MediaStream.html) before receiving the first frame).

func (*PaintableBase) ComputeConcreteSize

func (x *PaintableBase) ComputeConcreteSize(SpecifiedWidthVar float64, SpecifiedHeightVar float64, DefaultWidthVar float64, DefaultHeightVar float64, ConcreteWidthVar *float64, ConcreteHeightVar *float64)

Compute a concrete size for the `GdkPaintable`.

Applies the sizing algorithm outlined in the [CSS Image spec](https://drafts.csswg.org/css-images-3/#default-sizing) to the given @paintable. See that link for more details.

It is not necessary to call this function when both @specified_width and @specified_height 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.

func (*PaintableBase) GetCurrentImage

func (x *PaintableBase) GetCurrentImage() *PaintableBase

Gets an immutable paintable for the current contents displayed by @paintable.

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 @paintable is already immutable, it will return itself.

func (*PaintableBase) GetFlags

func (x *PaintableBase) GetFlags() PaintableFlags

Get flags for the paintable.

This is oftentimes useful for optimizations.

See [flags@Gdk.PaintableFlags] for the flags and what they mean.

func (*PaintableBase) GetIntrinsicAspectRatio

func (x *PaintableBase) GetIntrinsicAspectRatio() float64

Gets the preferred aspect ratio the @paintable 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 @paintable 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 [method@Gdk.Paintable.snapshot].

Usually when a @paintable returns nonzero values from [method@Gdk.Paintable.get_intrinsic_width] and [method@Gdk.Paintable.get_intrinsic_height] the aspect ratio should conform to those values, though that is not required.

If the @paintable does not have a preferred aspect ratio, it returns 0. Negative values are never returned.

func (*PaintableBase) GetIntrinsicHeight

func (x *PaintableBase) GetIntrinsicHeight() int

Gets the preferred height the @paintable 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 [method@Gdk.Paintable.snapshot].

If the @paintable does not have a preferred height, it returns 0. Negative values are never returned.

func (*PaintableBase) GetIntrinsicWidth

func (x *PaintableBase) GetIntrinsicWidth() int

Gets the preferred width the @paintable 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 [method@Gdk.Paintable.snapshot].

If the @paintable does not have a preferred width, it returns 0. Negative values are never returned.

func (*PaintableBase) GoPointer

func (x *PaintableBase) GoPointer() uintptr

func (*PaintableBase) InvalidateContents

func (x *PaintableBase) InvalidateContents()

Called by implementations of `GdkPaintable` to invalidate their contents.

Unless the contents are invalidated, implementations must guarantee that multiple calls of [method@Gdk.Paintable.snapshot] produce the same output.

This function will emit the [signal@Gdk.Paintable::invalidate-contents] signal.

If a @paintable reports the %GDK_PAINTABLE_STATIC_CONTENTS flag, it must not call this function.

func (*PaintableBase) InvalidateSize

func (x *PaintableBase) InvalidateSize()

Called by implementations of `GdkPaintable` to invalidate their size.

As long as the size is not invalidated, @paintable must return the same values for its intrinsic width, height and aspect ratio.

This function will emit the [signal@Gdk.Paintable::invalidate-size] signal.

If a @paintable reports the %GDK_PAINTABLE_STATIC_SIZE flag, it must not call this function.

func (*PaintableBase) SetGoPointer

func (x *PaintableBase) SetGoPointer(ptr uintptr)

func (*PaintableBase) Snapshot

func (x *PaintableBase) Snapshot(SnapshotVar *Snapshot, WidthVar float64, HeightVar float64)

Snapshots the given paintable with the given @width and @height.

The paintable is drawn at the current (0,0) offset of the @snapshot. If @width and @height are not larger than zero, this function will do nothing.

type PaintableFlags

type PaintableFlags int

Flags about a paintable object.

Implementations use these for optimizations such as caching.

const (

	// The size is immutable.
	//   The [signal@Gdk.Paintable::invalidate-size] signal will never be
	//   emitted.
	PaintableStaticSizeValue PaintableFlags = 1
	// The content is immutable.
	//   The [signal@Gdk.Paintable::invalidate-contents] signal will never be
	//   emitted.
	PaintableStaticContentsValue PaintableFlags = 2
)

type PaintableInterface

type PaintableInterface struct {
	GIface uintptr
	// contains filtered or unexported fields
}

The list of functions that can be implemented for the `GdkPaintable` interface.

Note that apart from the [vfunc@Gdk.Paintable.snapshot] function, no virtual function of this interface is mandatory to implement, though it is a good idea to implement [vfunc@Gdk.Paintable.get_current_image] for non-static paintables and [vfunc@Gdk.Paintable.get_flags] if the image is not dynamic as the default implementation returns no flags and that will make the implementation likely quite slow.

func (*PaintableInterface) GetGetCurrentImage

func (x *PaintableInterface) GetGetCurrentImage() func(Paintable) *PaintableBase

GetGetCurrentImage gets the "get_current_image" callback function. return a `GdkPaintable` that does not change over

time. This means the `GDK_PAINTABLE_STATIC_SIZE` and
`GDK_PAINTABLE_STATIC_CONTENTS` flag are set.

func (*PaintableInterface) GetGetFlags

func (x *PaintableInterface) GetGetFlags() func(Paintable) PaintableFlags

GetGetFlags gets the "get_flags" callback function. Get the flags for this instance. See [flags@Gdk.PaintableFlags]

for details.

func (*PaintableInterface) GetGetIntrinsicAspectRatio

func (x *PaintableInterface) GetGetIntrinsicAspectRatio() func(Paintable) float64

GetGetIntrinsicAspectRatio gets the "get_intrinsic_aspect_ratio" callback function. The preferred aspect ratio for this object

or 0 if none. If both [vfunc@Gdk.Paintable.get_intrinsic_width]
and [vfunc@Gdk.Paintable.get_intrinsic_height] return non-zero
values, this function should return the aspect ratio computed from those.

func (*PaintableInterface) GetGetIntrinsicHeight

func (x *PaintableInterface) GetGetIntrinsicHeight() func(Paintable) int

GetGetIntrinsicHeight gets the "get_intrinsic_height" callback function. The preferred height for this object to be

snapshot at or 0 if none. This is purely a hint. The object must still
be able to render at any size.

func (*PaintableInterface) GetGetIntrinsicWidth

func (x *PaintableInterface) GetGetIntrinsicWidth() func(Paintable) int

GetGetIntrinsicWidth gets the "get_intrinsic_width" callback function. The preferred width for this object to be

snapshot at or 0 if none. This is purely a hint. The object must still
be able to render at any size.

func (*PaintableInterface) GetSnapshot

func (x *PaintableInterface) GetSnapshot() func(Paintable, *Snapshot, float64, float64)

GetSnapshot gets the "snapshot" callback function. Snapshot the paintable. The given @width and @height are

guaranteed to be larger than 0.0. The resulting snapshot must modify
only the area in the rectangle from (0,0) to (width, height).
This is the only function that must be implemented for this interface.

func (*PaintableInterface) GoPointer

func (x *PaintableInterface) GoPointer() uintptr

func (*PaintableInterface) OverrideGetCurrentImage

func (x *PaintableInterface) OverrideGetCurrentImage(cb func(Paintable) *PaintableBase)

OverrideGetCurrentImage sets the "get_current_image" callback function. return a `GdkPaintable` that does not change over

time. This means the `GDK_PAINTABLE_STATIC_SIZE` and
`GDK_PAINTABLE_STATIC_CONTENTS` flag are set.

func (*PaintableInterface) OverrideGetFlags

func (x *PaintableInterface) OverrideGetFlags(cb func(Paintable) PaintableFlags)

OverrideGetFlags sets the "get_flags" callback function. Get the flags for this instance. See [flags@Gdk.PaintableFlags]

for details.

func (*PaintableInterface) OverrideGetIntrinsicAspectRatio

func (x *PaintableInterface) OverrideGetIntrinsicAspectRatio(cb func(Paintable) float64)

OverrideGetIntrinsicAspectRatio sets the "get_intrinsic_aspect_ratio" callback function. The preferred aspect ratio for this object

or 0 if none. If both [vfunc@Gdk.Paintable.get_intrinsic_width]
and [vfunc@Gdk.Paintable.get_intrinsic_height] return non-zero
values, this function should return the aspect ratio computed from those.

func (*PaintableInterface) OverrideGetIntrinsicHeight

func (x *PaintableInterface) OverrideGetIntrinsicHeight(cb func(Paintable) int)

OverrideGetIntrinsicHeight sets the "get_intrinsic_height" callback function. The preferred height for this object to be

snapshot at or 0 if none. This is purely a hint. The object must still
be able to render at any size.

func (*PaintableInterface) OverrideGetIntrinsicWidth

func (x *PaintableInterface) OverrideGetIntrinsicWidth(cb func(Paintable) int)

OverrideGetIntrinsicWidth sets the "get_intrinsic_width" callback function. The preferred width for this object to be

snapshot at or 0 if none. This is purely a hint. The object must still
be able to render at any size.

func (*PaintableInterface) OverrideSnapshot

func (x *PaintableInterface) OverrideSnapshot(cb func(Paintable, *Snapshot, float64, float64))

OverrideSnapshot sets the "snapshot" callback function. Snapshot the paintable. The given @width and @height are

guaranteed to be larger than 0.0. The resulting snapshot must modify
only the area in the rectangle from (0,0) to (width, height).
This is the only function that must be implemented for this interface.
type Popup interface {
	GoPointer() uintptr
	SetGoPointer(uintptr)
	GetAutohide() bool
	GetParent() *Surface
	GetPositionX() int
	GetPositionY() int
	GetRectAnchor() Gravity
	GetSurfaceAnchor() Gravity
	Present(WidthVar int, HeightVar int, LayoutVar *PopupLayout) bool
}

A surface that is attached to another surface.

The `GdkPopup` is positioned relative to its parent surface.

`GdkPopup`s are typically used to implement menus and similar popups. They can be modal, which is indicated by the [property@Gdk.Popup:autohide] property.

type PopupBase

type PopupBase struct {
	Ptr uintptr
}

func (*PopupBase) GetAutohide

func (x *PopupBase) GetAutohide() bool

Returns whether this popup is set to hide on outside clicks.

func (*PopupBase) GetParent

func (x *PopupBase) GetParent() *Surface

Returns the parent surface of a popup.

func (*PopupBase) GetPositionX

func (x *PopupBase) GetPositionX() int

Obtains the position of the popup relative to its parent.

func (*PopupBase) GetPositionY

func (x *PopupBase) GetPositionY() int

Obtains the position of the popup relative to its parent.

func (*PopupBase) GetPropertyAutohide

func (x *PopupBase) GetPropertyAutohide() bool

GetPropertyAutohide gets the "autohide" property. Whether to hide on outside clicks.

func (*PopupBase) GetRectAnchor

func (x *PopupBase) GetRectAnchor() Gravity

Gets the current popup rectangle anchor.

The value returned may change after calling [method@Gdk.Popup.present], or after the [signal@Gdk.Surface::layout] signal is emitted.

func (*PopupBase) GetSurfaceAnchor

func (x *PopupBase) GetSurfaceAnchor() Gravity

Gets the current popup surface anchor.

The value returned may change after calling [method@Gdk.Popup.present], or after the [signal@Gdk.Surface::layout] signal is emitted.

func (*PopupBase) GoPointer

func (x *PopupBase) GoPointer() uintptr

func (*PopupBase) Present

func (x *PopupBase) Present(WidthVar int, HeightVar int, LayoutVar *PopupLayout) bool

Present @popup after having processed the `GdkPopupLayout` rules.

If the popup was previously not showing, it will be shown, otherwise it will change position according to @layout.

After calling this function, the result should be handled in response to the [signal@Gdk.Surface::layout] signal being emitted. The resulting popup position can be queried using [method@Gdk.Popup.get_position_x], [method@Gdk.Popup.get_position_y], and the resulting size will be sent as parameters in the layout signal. Use [method@Gdk.Popup.get_rect_anchor] and [method@Gdk.Popup.get_surface_anchor] to get the resulting anchors.

Presenting may fail, for example if the @popup is set to autohide and is immediately hidden upon being presented. If presenting failed, the [signal@Gdk.Surface::layout] signal will not me emitted.

func (*PopupBase) SetGoPointer

func (x *PopupBase) SetGoPointer(ptr uintptr)

func (*PopupBase) SetPropertyAutohide

func (x *PopupBase) SetPropertyAutohide(value bool)

SetPropertyAutohide sets the "autohide" property. Whether to hide on outside clicks.

type PopupInterface

type PopupInterface struct {
	// contains filtered or unexported fields
}

func (*PopupInterface) GoPointer

func (x *PopupInterface) GoPointer() uintptr

type PopupLayout

type PopupLayout struct {
	// contains filtered or unexported fields
}

Contains information that is necessary position a [iface@Gdk.Popup] 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.

![Popup anchors](popup-anchors.png)

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.

![Flipping popups](popup-flip.png)

![Sliding popups](popup-slide.png)

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 [method@Gdk.Popup.get_position_x], [method@Gdk.Popup.get_position_y], [method@Gdk.Popup.get_rect_anchor] and [method@Gdk.Popup.get_surface_anchor] after the popup has been presented. This can be used to adjust the rendering. For example, [GtkPopover](../gtk4/class.Popover.html) 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.

func NewPopupLayout

func NewPopupLayout(AnchorRectVar *Rectangle, RectAnchorVar Gravity, SurfaceAnchorVar Gravity) *PopupLayout

Create a popup layout description.

Used together with [method@Gdk.Popup.present] to describe how a popup surface should be placed and behave on-screen.

@anchor_rect is relative to the top-left corner of the surface's parent. @rect_anchor and @surface_anchor determine anchor points on @anchor_rect and surface to pin together.

The position of @anchor_rect's anchor point can optionally be offset using [method@Gdk.PopupLayout.set_offset], which is equivalent to offsetting the position of surface.

func (*PopupLayout) Copy

func (x *PopupLayout) Copy() *PopupLayout

Makes a copy of @layout.

func (*PopupLayout) Equal

func (x *PopupLayout) Equal(OtherVar *PopupLayout) bool

Check whether @layout and @other has identical layout properties.

func (*PopupLayout) GetAnchorHints

func (x *PopupLayout) GetAnchorHints() AnchorHints

Get the anchor hints.

func (*PopupLayout) GetAnchorRect

func (x *PopupLayout) GetAnchorRect() *Rectangle

Get the anchor rectangle.

func (*PopupLayout) GetOffset

func (x *PopupLayout) GetOffset(DxVar *int, DyVar *int)

Retrieves the offset for the anchor rectangle.

func (*PopupLayout) GetRectAnchor

func (x *PopupLayout) GetRectAnchor() Gravity

Returns the anchor position on the anchor rectangle.

func (*PopupLayout) GetShadowWidth

func (x *PopupLayout) GetShadowWidth(LeftVar *int, RightVar *int, TopVar *int, BottomVar *int)

Obtains the shadow widths of this layout.

func (*PopupLayout) GetSurfaceAnchor

func (x *PopupLayout) GetSurfaceAnchor() Gravity

Returns the anchor position on the popup surface.

func (*PopupLayout) GoPointer

func (x *PopupLayout) GoPointer() uintptr

func (*PopupLayout) Ref

func (x *PopupLayout) Ref() *PopupLayout

Increases the reference count of @value.

func (*PopupLayout) SetAnchorHints

func (x *PopupLayout) SetAnchorHints(AnchorHintsVar AnchorHints)

Set new anchor hints.

The set @anchor_hints determines how @surface will be moved if the anchor points cause it to move off-screen. For example, `GDK_ANCHOR_FLIP_X` will replace `GDK_GRAVITY_NORTH_WEST` with `GDK_GRAVITY_NORTH_EAST` and vice versa if @surface extends beyond the left or right edges of the monitor.

func (*PopupLayout) SetAnchorRect

func (x *PopupLayout) SetAnchorRect(AnchorRectVar *Rectangle)

Set the anchor rectangle.

func (*PopupLayout) SetOffset

func (x *PopupLayout) SetOffset(DxVar int, DyVar int)

Offset the position of the anchor rectangle with the given delta.

func (*PopupLayout) SetRectAnchor

func (x *PopupLayout) SetRectAnchor(AnchorVar Gravity)

Set the anchor on the anchor rectangle.

func (*PopupLayout) SetShadowWidth

func (x *PopupLayout) SetShadowWidth(LeftVar int, RightVar int, TopVar int, BottomVar int)

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.

func (*PopupLayout) SetSurfaceAnchor

func (x *PopupLayout) SetSurfaceAnchor(AnchorVar Gravity)

Set the anchor on the popup surface.

func (*PopupLayout) Unref

func (x *PopupLayout) Unref()

Decreases the reference count of @value.

type ProximityEvent

type ProximityEvent struct {
	Event
}

An event related to the proximity of a tool to a device.

func ProximityEventNewFromInternalPtr

func ProximityEventNewFromInternalPtr(ptr uintptr) *ProximityEvent

func (*ProximityEvent) GoPointer

func (c *ProximityEvent) GoPointer() uintptr

func (*ProximityEvent) SetGoPointer

func (c *ProximityEvent) SetGoPointer(ptr uintptr)

type RGBA

type RGBA struct {
	Red float32

	Green float32

	Blue float32

	Alpha float32
	// contains filtered or unexported fields
}

Represents a color, in a way that is compatible with cairo’s notion of color.

`GdkRGBA` 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.

func (*RGBA) Copy

func (x *RGBA) Copy() *RGBA

Makes a copy of a `GdkRGBA`.

The result must be freed through [method@Gdk.RGBA.free].

func (*RGBA) Equal

func (x *RGBA) Equal(P2Var uintptr) bool

Compares two `GdkRGBA` colors.

func (*RGBA) Free

func (x *RGBA) Free()

Frees a `GdkRGBA`.

func (*RGBA) GoPointer

func (x *RGBA) GoPointer() uintptr

func (*RGBA) Hash

func (x *RGBA) Hash() uint

A hash function suitable for using for a hash table that stores `GdkRGBA`s.

func (*RGBA) IsClear

func (x *RGBA) IsClear() bool

Checks if an @rgba value is transparent.

That is, drawing with the value would not produce any change.

func (*RGBA) IsOpaque

func (x *RGBA) IsOpaque() bool

Checks if an @rgba value is opaque.

That is, drawing with the value will not retain any results from previous contents.

func (*RGBA) Parse

func (x *RGBA) Parse(SpecVar string) bool

Parses a textual representation of a color.

The string can be either one of:

  • A standard name (Taken from the CSS specification).
  • A hexadecimal value in the form “\#rgb”, “\#rrggbb”, “\#rrrgggbbb” or ”\#rrrrggggbbbb”
  • A hexadecimal value in the form “\#rgba”, “\#rrggbbaa”, or ”\#rrrrggggbbbbaaaa”
  • A RGB color in the form “rgb(r,g,b)” (In this case the color will have full opacity)
  • A RGBA color in the form “rgba(r,g,b,a)”
  • A HSL color in the form “hsl(h,s,l)”
  • A HSLA color in the form “hsla(h,s,l,a)”

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.

func (*RGBA) Print added in v0.5.0

func (x *RGBA) Print(StringVar *glib.String) *glib.String

func (*RGBA) ToString

func (x *RGBA) ToString() string

Returns a textual specification of @rgba in the form `rgb(r,g,b)` or `rgba(r,g,b,a)`, 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 [method@Gdk.RGBA.parse].

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.

type Rectangle

type Rectangle struct {
	X int

	Y int

	Width int

	Height int
	// contains filtered or unexported fields
}

Represents a rectangle.

`GdkRectangle` is identical to `cairo_rectangle_t`. Together with Cairo’s `cairo_region_t` data type, these are the central types for representing sets of pixels.

The intersection of two rectangles can be computed with [method@Gdk.Rectangle.intersect]; to find the union of two rectangles use [method@Gdk.Rectangle.union].

The `cairo_region_t` 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.

func (*Rectangle) ContainsPoint

func (x *Rectangle) ContainsPoint(XVar int, YVar int) bool

Returns %TRUE if @rect contains the point described by @x and @y.

func (*Rectangle) Equal

func (x *Rectangle) Equal(Rect2Var *Rectangle) bool

Checks if the two given rectangles are equal.

func (*Rectangle) GoPointer

func (x *Rectangle) GoPointer() uintptr

func (*Rectangle) Intersect

func (x *Rectangle) Intersect(Src2Var *Rectangle, DestVar *Rectangle) bool

Calculates the intersection of two rectangles.

It is allowed for @dest to be the same as either @src1 or @src2. If the rectangles do not intersect, @dest’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 %NULL for @dest.

func (*Rectangle) Union

func (x *Rectangle) Union(Src2Var *Rectangle, DestVar *Rectangle)

Calculates the union of two rectangles.

The union of rectangles @src1 and @src2 is the smallest rectangle which includes both @src1 and @src2 within it. It is allowed for @dest to be the same as either @src1 or @src2.

Note that this function does not ignore 'empty' rectangles (ie. with zero width or height).

type ScrollDirection

type ScrollDirection int

Specifies the direction for scroll events.

const (

	// the surface is scrolled up.
	ScrollUpValue ScrollDirection = 0
	// the surface is scrolled down.
	ScrollDownValue ScrollDirection = 1
	// the surface is scrolled to the left.
	ScrollLeftValue ScrollDirection = 2
	// the surface is scrolled to the right.
	ScrollRightValue ScrollDirection = 3
	// the scrolling is determined by the delta values
	//   in scroll events. See gdk_scroll_event_get_deltas()
	ScrollSmoothValue ScrollDirection = 4
)

type ScrollEvent

type ScrollEvent struct {
	Event
}

An event related to a scrolling motion.

func ScrollEventNewFromInternalPtr

func ScrollEventNewFromInternalPtr(ptr uintptr) *ScrollEvent

func (*ScrollEvent) GetDeltas

func (x *ScrollEvent) GetDeltas(DeltaXVar *float64, DeltaYVar *float64)

Extracts the scroll deltas of a scroll event.

The deltas will be zero unless the scroll direction is %GDK_SCROLL_SMOOTH.

For the representation unit of these deltas, see [method@Gdk.ScrollEvent.get_unit].

func (*ScrollEvent) GetDirection

func (x *ScrollEvent) GetDirection() ScrollDirection

Extracts the direction of a scroll event.

func (*ScrollEvent) GetRelativeDirection added in v0.5.0

func (x *ScrollEvent) GetRelativeDirection() ScrollRelativeDirection

Extracts the scroll direction relative to the physical motion.

func (*ScrollEvent) GetUnit

func (x *ScrollEvent) GetUnit() ScrollUnit

Extracts the scroll delta unit of a scroll event.

The unit will always be %GDK_SCROLL_UNIT_WHEEL if the scroll direction is not %GDK_SCROLL_SMOOTH.

func (*ScrollEvent) GoPointer

func (c *ScrollEvent) GoPointer() uintptr

func (*ScrollEvent) IsStop

func (x *ScrollEvent) IsStop() bool

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.

func (*ScrollEvent) SetGoPointer

func (c *ScrollEvent) SetGoPointer(ptr uintptr)

type ScrollRelativeDirection

type ScrollRelativeDirection int

Used in scroll events, to announce the direction relative to physical motion.

const (

	// Physical motion and event motion are the same
	ScrollRelativeDirectionIdenticalValue ScrollRelativeDirection = 0
	// Physical motion is inverted relative to event motion
	ScrollRelativeDirectionInvertedValue ScrollRelativeDirection = 1
	// Relative motion is unknown on this device or backend
	ScrollRelativeDirectionUnknownValue ScrollRelativeDirection = 2
)

type ScrollUnit

type ScrollUnit int

Specifies the unit of scroll deltas.

When you get %GDK_SCROLL_UNIT_WHEEL, 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 %GDK_SCROLL_UNIT_SURFACE, are managing a scrollable view and get a value of 123, you have to scroll 123 surface logical pixels right if it's @delta_x or down if it's @delta_y. This is the same logic for negative values but you have to scroll left instead of right if it's @delta_x and up instead of down if it's @delta_y.

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).

const (

	// The delta is in number of wheel clicks.
	ScrollUnitWheelValue ScrollUnit = 0
	// The delta is in surface pixels to scroll directly
	//   on screen.
	ScrollUnitSurfaceValue ScrollUnit = 1
)

type Seat

type Seat struct {
	gobject.Object
}

Represents a collection of input devices that belong to a user.

func SeatNewFromInternalPtr

func SeatNewFromInternalPtr(ptr uintptr) *Seat

func (*Seat) ConnectDeviceAdded

func (x *Seat) ConnectDeviceAdded(cb *func(Seat, uintptr)) uint

Emitted when a new input device is related to this seat.

func (*Seat) ConnectDeviceRemoved

func (x *Seat) ConnectDeviceRemoved(cb *func(Seat, uintptr)) uint

Emitted when an input device is removed (e.g. unplugged).

func (*Seat) ConnectToolAdded

func (x *Seat) ConnectToolAdded(cb *func(Seat, uintptr)) uint

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 [signal@Gdk.Device::tool-changed] signal accordingly.

A same tool may be used by several devices.

func (*Seat) ConnectToolRemoved

func (x *Seat) ConnectToolRemoved(cb *func(Seat, uintptr)) uint

Emitted whenever a tool is no longer known to this @seat.

func (*Seat) GetCapabilities

func (x *Seat) GetCapabilities() SeatCapabilities

Returns the capabilities this `GdkSeat` currently has.

func (*Seat) GetDevices

func (x *Seat) GetDevices(CapabilitiesVar SeatCapabilities) *glib.List

Returns the devices that match the given capabilities.

func (*Seat) GetDisplay

func (x *Seat) GetDisplay() *Display

Returns the `GdkDisplay` this seat belongs to.

func (*Seat) GetKeyboard

func (x *Seat) GetKeyboard() *Device

Returns the device that routes keyboard events.

func (*Seat) GetPointer

func (x *Seat) GetPointer() *Device

Returns the device that routes pointer events.

func (*Seat) GetTools

func (x *Seat) GetTools() *glib.List

Returns all `GdkDeviceTools` that are known to the application.

func (*Seat) GoPointer

func (c *Seat) GoPointer() uintptr

func (*Seat) SetGoPointer

func (c *Seat) SetGoPointer(ptr uintptr)

type SeatCapabilities

type SeatCapabilities int

Flags describing the seat capabilities.

const (

	// No input capabilities
	SeatCapabilityNoneValue SeatCapabilities = 0
	// The seat has a pointer (e.g. mouse)
	SeatCapabilityPointerValue SeatCapabilities = 1
	// The seat has touchscreen(s) attached
	SeatCapabilityTouchValue SeatCapabilities = 2
	// The seat has drawing tablet(s) attached
	SeatCapabilityTabletStylusValue SeatCapabilities = 4
	// The seat has keyboard(s) attached
	SeatCapabilityKeyboardValue SeatCapabilities = 8
	// The seat has drawing tablet pad(s) attached
	SeatCapabilityTabletPadValue SeatCapabilities = 16
	// The union of all pointing capabilities
	SeatCapabilityAllPointingValue SeatCapabilities = 7
	// The union of all capabilities
	SeatCapabilityAllValue SeatCapabilities = 31
)

type Snapshot

type Snapshot struct {
	gobject.Object
}

Base type for snapshot operations.

The subclass of `GdkSnapshot` used by GTK is [GtkSnapshot](../gtk4/class.Snapshot.html).

func SnapshotNewFromInternalPtr

func SnapshotNewFromInternalPtr(ptr uintptr) *Snapshot

func (*Snapshot) GoPointer

func (c *Snapshot) GoPointer() uintptr

func (*Snapshot) SetGoPointer

func (c *Snapshot) SetGoPointer(ptr uintptr)

type SnapshotClass

type SnapshotClass struct {
	// contains filtered or unexported fields
}

func (*SnapshotClass) GoPointer

func (x *SnapshotClass) GoPointer() uintptr

type SubpixelLayout

type SubpixelLayout int

This enumeration describes how the red, green and blue components of physical pixels on an output device are laid out.

const (

	// The layout is not known
	SubpixelLayoutUnknownValue SubpixelLayout = 0
	// Not organized in this way
	SubpixelLayoutNoneValue SubpixelLayout = 1
	// The layout is horizontal, the order is RGB
	SubpixelLayoutHorizontalRgbValue SubpixelLayout = 2
	// The layout is horizontal, the order is BGR
	SubpixelLayoutHorizontalBgrValue SubpixelLayout = 3
	// The layout is vertical, the order is RGB
	SubpixelLayoutVerticalRgbValue SubpixelLayout = 4
	// The layout is vertical, the order is BGR
	SubpixelLayoutVerticalBgrValue SubpixelLayout = 5
)

type Surface

type Surface struct {
	gobject.Object
}

Represents a rectangular region on the screen.

It’s a low-level object, used to implement high-level objects such as [GtkWindow](../gtk4/class.Window.html).

The surfaces you see in practice are either [iface@Gdk.Toplevel] or [iface@Gdk.Popup], 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.

func NewSurfacePopup

func NewSurfacePopup(ParentVar *Surface, AutohideVar bool) *Surface

Create a new popup surface.

The surface will be attached to @parent and can be positioned relative to it using [method@Gdk.Popup.present].

func NewSurfaceToplevel

func NewSurfaceToplevel(DisplayVar *Display) *Surface

Creates a new toplevel surface.

func SurfaceNewFromInternalPtr

func SurfaceNewFromInternalPtr(ptr uintptr) *Surface

func (*Surface) Beep

func (x *Surface) Beep()

Emits a short beep associated to @surface.

If the display of @surface does not support per-surface beeps, emits a short beep on the display just as [method@Gdk.Display.beep].

func (*Surface) ConnectEnterMonitor

func (x *Surface) ConnectEnterMonitor(cb *func(Surface, uintptr)) uint

Emitted when @surface starts being present on the monitor.

func (*Surface) ConnectEvent

func (x *Surface) ConnectEvent(cb *func(Surface, *Event) bool) uint

Emitted when GDK receives an input event for @surface.

func (*Surface) ConnectLayout

func (x *Surface) ConnectLayout(cb *func(Surface, int, int)) uint

Emitted when the size of @surface is changed, or when relayout should be performed.

Surface size is reported in ”application pixels”, not ”device pixels” (see gdk_surface_get_scale_factor()).

func (*Surface) ConnectLeaveMonitor

func (x *Surface) ConnectLeaveMonitor(cb *func(Surface, uintptr)) uint

Emitted when @surface stops being present on the monitor.

func (*Surface) ConnectRender

func (x *Surface) ConnectRender(cb *func(Surface, uintptr) bool) uint

Emitted when part of the surface needs to be redrawn.

func (*Surface) CreateCairoContext

func (x *Surface) CreateCairoContext() *CairoContext

Creates a new `GdkCairoContext` for rendering on @surface.

func (*Surface) CreateGlContext

func (x *Surface) CreateGlContext() (*GLContext, error)

Creates a new `GdkGLContext` for the `GdkSurface`.

The context is disconnected from any particular surface or surface. If the creation of the `GdkGLContext` failed, @error will be set. Before using the returned `GdkGLContext`, you will need to call [method@Gdk.GLContext.make_current] or [method@Gdk.GLContext.realize].

func (*Surface) CreateSimilarSurface

func (x *Surface) CreateSimilarSurface(ContentVar cairo.Content, WidthVar int, HeightVar int) *cairo.Surface

Create a new Cairo surface that is as compatible as possible with the given @surface.

For example the new surface will have the same fallback resolution and font options as @surface. Generally, the new surface will also use the same backend as @surface, unless that is not possible for some reason. The type of the returned surface may be examined with cairo_surface_get_type().

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 @other is already in an error state or any other error occurs.

func (*Surface) CreateVulkanContext

func (x *Surface) CreateVulkanContext() (*VulkanContext, error)

Sets an error and returns %NULL.

func (*Surface) Destroy

func (x *Surface) Destroy()

Destroys the window system resources associated with @surface and decrements @surface's reference count.

The window system resources for all children of @surface 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.

func (*Surface) GetCursor

func (x *Surface) GetCursor() *Cursor

Retrieves a `GdkCursor` pointer for the cursor currently set on the `GdkSurface`.

If the return value is %NULL then there is no custom cursor set on the surface, and it is using the cursor for its parent surface.

Use [method@Gdk.Surface.set_cursor] to unset the cursor of the surface.

func (*Surface) GetDeviceCursor

func (x *Surface) GetDeviceCursor(DeviceVar *Device) *Cursor

Retrieves a `GdkCursor` pointer for the @device currently set on the specified `GdkSurface`.

If the return value is %NULL then there is no custom cursor set on the specified surface, and it is using the cursor for its parent surface.

Use [method@Gdk.Surface.set_cursor] to unset the cursor of the surface.

func (*Surface) GetDevicePosition

func (x *Surface) GetDevicePosition(DeviceVar *Device, XVar *float64, YVar *float64, MaskVar *ModifierType) bool

Obtains the current device position and modifier state.

The position is given in coordinates relative to the upper left corner of @surface.

func (*Surface) GetDisplay

func (x *Surface) GetDisplay() *Display

Gets the `GdkDisplay` associated with a `GdkSurface`.

func (*Surface) GetFrameClock

func (x *Surface) GetFrameClock() *FrameClock

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.

func (*Surface) GetHeight

func (x *Surface) GetHeight() int

Returns the height of the given @surface.

Surface size is reported in ”application pixels”, not ”device pixels” (see [method@Gdk.Surface.get_scale_factor]).

func (*Surface) GetMapped

func (x *Surface) GetMapped() bool

Checks whether the surface has been mapped.

A surface is mapped with [method@Gdk.Toplevel.present] or [method@Gdk.Popup.present].

func (*Surface) GetPropertyHeight

func (x *Surface) GetPropertyHeight() int

GetPropertyHeight gets the "height" property. The height of the surface, in pixels.

func (*Surface) GetPropertyMapped

func (x *Surface) GetPropertyMapped() bool

GetPropertyMapped gets the "mapped" property. Whether the surface is mapped.

func (*Surface) GetPropertyScale

func (x *Surface) GetPropertyScale() float64

GetPropertyScale gets the "scale" property. The scale of the surface.

func (*Surface) GetPropertyScaleFactor

func (x *Surface) GetPropertyScaleFactor() int

GetPropertyScaleFactor gets the "scale-factor" property. The scale factor of the surface.

The scale factor is the next larger integer, compared to [property@Gdk.Surface:scale].

func (*Surface) GetPropertyWidth

func (x *Surface) GetPropertyWidth() int

GetPropertyWidth gets the "width" property. The width of the surface in pixels.

func (*Surface) GetScale

func (x *Surface) GetScale() float64

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 [method@Gdk.Surface.get_scale_factor], which returns the next larger integer.

The scale may change during the lifetime of the surface.

func (*Surface) GetScaleFactor

func (x *Surface) GetScaleFactor() int

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.

func (*Surface) GetWidth

func (x *Surface) GetWidth() int

Returns the width of the given @surface.

Surface size is reported in ”application pixels”, not ”device pixels” (see [method@Gdk.Surface.get_scale_factor]).

func (*Surface) GoPointer

func (c *Surface) GoPointer() uintptr

func (*Surface) Hide

func (x *Surface) Hide()

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 [gtk_widget_hide()](../gtk4/method.Widget.hide.html).

func (*Surface) IsDestroyed

func (x *Surface) IsDestroyed() bool

Check to see if a surface is destroyed.

func (*Surface) QueueRender

func (x *Surface) QueueRender()

Forces a [signal@Gdk.Surface::render] signal emission for @surface to be scheduled.

This function is useful for implementations that track invalid regions on their own.

func (*Surface) RequestLayout

func (x *Surface) RequestLayout()

Request a layout phase from the surface's frame clock.

See [method@Gdk.FrameClock.request_phase].

func (*Surface) SetCursor

func (x *Surface) SetCursor(CursorVar *Cursor)

Sets the default mouse pointer for a `GdkSurface`.

Passing %NULL for the @cursor argument means that @surface will use the cursor of its parent surface. Most surfaces should use this default. Note that @cursor must be for the same display as @surface.

Use [ctor@Gdk.Cursor.new_from_name] or [ctor@Gdk.Cursor.new_from_texture] to create the cursor. To make the cursor invisible, use %GDK_BLANK_CURSOR.

func (*Surface) SetDeviceCursor

func (x *Surface) SetDeviceCursor(DeviceVar *Device, CursorVar *Cursor)

Sets a specific `GdkCursor` for a given device when it gets inside @surface.

Passing %NULL for the @cursor argument means that @surface will use the cursor of its parent surface. Most surfaces should use this default.

Use [ctor@Gdk.Cursor.new_from_name] or [ctor@Gdk.Cursor.new_from_texture] to create the cursor. To make the cursor invisible, use %GDK_BLANK_CURSOR.

func (*Surface) SetGoPointer

func (c *Surface) SetGoPointer(ptr uintptr)

func (*Surface) SetInputRegion

func (x *Surface) SetInputRegion(RegionVar *cairo.Region)

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 @surface.

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 [method@Gdk.Display.supports_input_shapes] to find out if a particular backend supports input regions.

func (*Surface) SetOpaqueRegion

func (x *Surface) SetOpaqueRegion(RegionVar *cairo.Region)

Marks a region of the `GdkSurface` 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 @surface background is opaque, as we know where the opaque regions are. If your surface background is not opaque, please update this property in your [GtkWidgetClass.css_changed](../gtk4/vfunc.Widget.css_changed.html) handler.

func (*Surface) TranslateCoordinates

func (x *Surface) TranslateCoordinates(ToVar *Surface, XVar *float64, YVar *float64) bool

Translates coordinates between two surfaces.

Note that this only works if @to and @from are popups or transient-for to the same toplevel (directly or indirectly).

type SurfaceClass

type SurfaceClass struct {
	// contains filtered or unexported fields
}

func (*SurfaceClass) GoPointer

func (x *SurfaceClass) GoPointer() uintptr

type SurfaceEdge

type SurfaceEdge int

Determines a surface edge or corner.

const (

	// the top left corner.
	SurfaceEdgeNorthWestValue SurfaceEdge = 0
	// the top edge.
	SurfaceEdgeNorthValue SurfaceEdge = 1
	// the top right corner.
	SurfaceEdgeNorthEastValue SurfaceEdge = 2
	// the left edge.
	SurfaceEdgeWestValue SurfaceEdge = 3
	// the right edge.
	SurfaceEdgeEastValue SurfaceEdge = 4
	// the lower left corner.
	SurfaceEdgeSouthWestValue SurfaceEdge = 5
	// the lower edge.
	SurfaceEdgeSouthValue SurfaceEdge = 6
	// the lower right corner.
	SurfaceEdgeSouthEastValue SurfaceEdge = 7
)

type Texture

type Texture struct {
	gobject.Object
}

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 `GdkTexture` objects from a [class@GdkPixbuf.Pixbuf], or from bytes stored in memory, a file, or a [struct@Gio.Resource].

The ownership of the pixel data is transferred to the `GdkTexture` instance; you can only make a copy of it, via [method@Gdk.Texture.download].

`GdkTexture` is an immutable object: That means you cannot change anything about it other than increasing the reference count via [method@GObject.Object.ref], and consequently, it is a threadsafe object.

GDK provides a number of threadsafe texture loading functions: [ctor@Gdk.Texture.new_from_resource], [ctor@Gdk.Texture.new_from_bytes], [ctor@Gdk.Texture.new_from_file], [ctor@Gdk.Texture.new_from_filename], [ctor@Gdk.Texture.new_for_pixbuf]. 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 [glycin](https://lib.rs/crates/glycin), if you need to load untrusted image data.

func NewTextureForPixbuf

func NewTextureForPixbuf(PixbufVar *gdkpixbuf.Pixbuf) *Texture

Creates a new texture object representing the `GdkPixbuf`.

This function is threadsafe, so that you can e.g. use GTask and [method@Gio.Task.run_in_thread] to avoid blocking the main thread while loading a big image.

func NewTextureFromBytes

func NewTextureFromBytes(BytesVar *glib.Bytes) (*Texture, error)

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 `NULL` is returned, then @error will be set.

This function is threadsafe, so that you can e.g. use GTask and [method@Gio.Task.run_in_thread] 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 `GdkTexture`.

func NewTextureFromFile

func NewTextureFromFile(FileVar gio.File) (*Texture, error)

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 `NULL` is returned, then @error will be set.

This function is threadsafe, so that you can e.g. use GTask and [method@Gio.Task.run_in_thread] 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 `GdkTexture`.

func NewTextureFromFilename

func NewTextureFromFilename(PathVar string) (*Texture, error)

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 `NULL` is returned, then @error will be set.

This function is threadsafe, so that you can e.g. use GTask and [method@Gio.Task.run_in_thread] 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 `GdkTexture`.

func NewTextureFromResource

func NewTextureFromResource(ResourcePathVar string) *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 @resource_path 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 [ctor@Gdk.Texture.new_from_file] to load it.

This function is threadsafe, so that you can e.g. use GTask and [method@Gio.Task.run_in_thread] to avoid blocking the main thread while loading a big image.

func TextureNewFromInternalPtr

func TextureNewFromInternalPtr(ptr uintptr) *Texture

func (*Texture) ComputeConcreteSize

func (x *Texture) ComputeConcreteSize(SpecifiedWidthVar float64, SpecifiedHeightVar float64, DefaultWidthVar float64, DefaultHeightVar float64, ConcreteWidthVar *float64, ConcreteHeightVar *float64)

Compute a concrete size for the `GdkPaintable`.

Applies the sizing algorithm outlined in the [CSS Image spec](https://drafts.csswg.org/css-images-3/#default-sizing) to the given @paintable. See that link for more details.

It is not necessary to call this function when both @specified_width and @specified_height 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.

func (*Texture) Download

func (x *Texture) Download(DataVar []byte, StrideVar uint)

Downloads the @texture 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 %CAIRO_FORMAT_ARGB32, so every downloaded pixel requires 4 bytes of memory.

Downloading a texture into a Cairo image surface: ```c 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); ```

For more flexible download capabilities, see [struct@Gdk.TextureDownloader].

func (*Texture) Equal

func (x *Texture) Equal(Icon2Var gio.Icon) bool

Checks if two icons are equal.

func (*Texture) GetColorState

func (x *Texture) GetColorState() *ColorState

Returns the color state associated with the texture.

func (*Texture) GetCurrentImage

func (x *Texture) GetCurrentImage() *PaintableBase

Gets an immutable paintable for the current contents displayed by @paintable.

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 @paintable is already immutable, it will return itself.

func (*Texture) GetFlags

func (x *Texture) GetFlags() PaintableFlags

Get flags for the paintable.

This is oftentimes useful for optimizations.

See [flags@Gdk.PaintableFlags] for the flags and what they mean.

func (*Texture) GetFormat

func (x *Texture) GetFormat() MemoryFormat

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.

func (*Texture) GetHeight

func (x *Texture) GetHeight() int

Returns the height of the @texture, in pixels.

func (*Texture) GetIntrinsicAspectRatio

func (x *Texture) GetIntrinsicAspectRatio() float64

Gets the preferred aspect ratio the @paintable 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 @paintable 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 [method@Gdk.Paintable.snapshot].

Usually when a @paintable returns nonzero values from [method@Gdk.Paintable.get_intrinsic_width] and [method@Gdk.Paintable.get_intrinsic_height] the aspect ratio should conform to those values, though that is not required.

If the @paintable does not have a preferred aspect ratio, it returns 0. Negative values are never returned.

func (*Texture) GetIntrinsicHeight

func (x *Texture) GetIntrinsicHeight() int

Gets the preferred height the @paintable 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 [method@Gdk.Paintable.snapshot].

If the @paintable does not have a preferred height, it returns 0. Negative values are never returned.

func (*Texture) GetIntrinsicWidth

func (x *Texture) GetIntrinsicWidth() int

Gets the preferred width the @paintable 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 [method@Gdk.Paintable.snapshot].

If the @paintable does not have a preferred width, it returns 0. Negative values are never returned.

func (*Texture) GetPropertyColorState

func (x *Texture) GetPropertyColorState() uintptr

GetPropertyColorState gets the "color-state" property. The color state of the texture.

func (*Texture) GetPropertyHeight

func (x *Texture) GetPropertyHeight() int

GetPropertyHeight gets the "height" property. The height of the texture, in pixels.

func (*Texture) GetPropertyWidth

func (x *Texture) GetPropertyWidth() int

GetPropertyWidth gets the "width" property. The width of the texture, in pixels.

func (*Texture) GetWidth

func (x *Texture) GetWidth() int

Returns the width of @texture, in pixels.

func (*Texture) GoPointer

func (c *Texture) GoPointer() uintptr

func (*Texture) Hash

func (x *Texture) Hash() uint

Gets a hash for an icon.

func (*Texture) InvalidateContents

func (x *Texture) InvalidateContents()

Called by implementations of `GdkPaintable` to invalidate their contents.

Unless the contents are invalidated, implementations must guarantee that multiple calls of [method@Gdk.Paintable.snapshot] produce the same output.

This function will emit the [signal@Gdk.Paintable::invalidate-contents] signal.

If a @paintable reports the %GDK_PAINTABLE_STATIC_CONTENTS flag, it must not call this function.

func (*Texture) InvalidateSize

func (x *Texture) InvalidateSize()

Called by implementations of `GdkPaintable` to invalidate their size.

As long as the size is not invalidated, @paintable must return the same values for its intrinsic width, height and aspect ratio.

This function will emit the [signal@Gdk.Paintable::invalidate-size] signal.

If a @paintable reports the %GDK_PAINTABLE_STATIC_SIZE flag, it must not call this function.

func (*Texture) Load

func (x *Texture) Load(SizeVar int, TypeVar *string, CancellableVar *gio.Cancellable) (*gio.InputStream, error)

Loads a loadable icon. For the asynchronous version of this function, see g_loadable_icon_load_async().

func (*Texture) LoadAsync

func (x *Texture) LoadAsync(SizeVar int, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr)

Loads an icon asynchronously. To finish this function, see g_loadable_icon_load_finish(). For the synchronous, blocking version of this function, see g_loadable_icon_load().

func (*Texture) LoadFinish

func (x *Texture) LoadFinish(ResVar gio.AsyncResult, TypeVar *string) (*gio.InputStream, error)

Finishes an asynchronous icon load started in g_loadable_icon_load_async().

func (*Texture) SaveToPng

func (x *Texture) SaveToPng(FilenameVar string) bool

Store the given @texture to the @filename 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 [iface@Gio.File] or other location, you might want to use [method@Gdk.Texture.save_to_png_bytes] or look into the libglycin library.

func (*Texture) SaveToPngBytes

func (x *Texture) SaveToPngBytes() *glib.Bytes

Store the given @texture in memory as a PNG file.

Use [ctor@Gdk.Texture.new_from_bytes] 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 [method@Gdk.Texture.save_to_tiff_bytes] instead.

func (*Texture) SaveToTiff

func (x *Texture) SaveToTiff(FilenameVar string) bool

Store the given @texture to the @filename as a TIFF file.

GTK will attempt to store data without loss.

func (*Texture) SaveToTiffBytes

func (x *Texture) SaveToTiffBytes() *glib.Bytes

Store the given @texture in memory as a TIFF file.

Use [ctor@Gdk.Texture.new_from_bytes] 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 [method@Gdk.Texture.save_to_png_bytes].

func (*Texture) Serialize

func (x *Texture) Serialize() *glib.Variant

Serializes a #GIcon into a #GVariant. An equivalent #GIcon can be retrieved back by calling g_icon_deserialize() on the returned value. As serialization will avoid using raw icon data when possible, it only makes sense to transfer the #GVariant between processes on the same machine, (as opposed to over the network), and within the same file system namespace.

func (*Texture) SetGoPointer

func (c *Texture) SetGoPointer(ptr uintptr)

func (*Texture) SetPropertyColorState

func (x *Texture) SetPropertyColorState(value uintptr)

SetPropertyColorState sets the "color-state" property. The color state of the texture.

func (*Texture) SetPropertyHeight

func (x *Texture) SetPropertyHeight(value int)

SetPropertyHeight sets the "height" property. The height of the texture, in pixels.

func (*Texture) SetPropertyWidth

func (x *Texture) SetPropertyWidth(value int)

SetPropertyWidth sets the "width" property. The width of the texture, in pixels.

func (*Texture) Snapshot

func (x *Texture) Snapshot(SnapshotVar *Snapshot, WidthVar float64, HeightVar float64)

Snapshots the given paintable with the given @width and @height.

The paintable is drawn at the current (0,0) offset of the @snapshot. If @width and @height are not larger than zero, this function will do nothing.

func (*Texture) ToString

func (x *Texture) ToString() string

Generates a textual representation of @icon that can be used for serialization such as when passing @icon to a different process or saving it to persistent storage. Use g_icon_new_for_string() to get @icon back from the returned string.

The encoding of the returned string is proprietary to #GIcon except in the following two cases

  • If @icon is a #GFileIcon, the returned string is a native path (such as `/path/to/my icon.png`) without escaping if the #GFile for @icon is a native file. If the file is not native, the returned string is the result of g_file_get_uri() (such as `sftp://path/to/my%20icon.png`).

  • If @icon is a #GThemedIcon with exactly one name and no fallbacks, the encoding is simply the name (such as `network-server`).

type TextureClass

type TextureClass struct {
	// contains filtered or unexported fields
}

func (*TextureClass) GoPointer

func (x *TextureClass) GoPointer() uintptr

type TextureDownloader

type TextureDownloader struct {
	// contains filtered or unexported fields
}

Used to download the contents of a [class@Gdk.Texture].

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.

`GdkTextureDownloader` can be used to convert data between different formats. Create a `GdkTexture` for the existing format and then download it in a different format.

func NewTextureDownloader

func NewTextureDownloader(TextureVar *Texture) *TextureDownloader

Creates a new texture downloader for @texture.

By default, the downloader will convert the data to the default memory format, and to the sRGB color state.

func (*TextureDownloader) Copy

Creates a copy of the downloader.

This function is meant for language bindings.

func (*TextureDownloader) DownloadBytes

func (x *TextureDownloader) DownloadBytes(OutStrideVar *uint) *glib.Bytes

Downloads the given texture pixels into a `GBytes`. 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 [method@Gdk.TextureDownloader.download_into] once allocation succeeded.

This function cannot be used with a multiplanar format. Use [method@Gdk.TextureDownloader.download_bytes_with_planes] for that purpose.

func (*TextureDownloader) DownloadBytesWithPlanes

func (x *TextureDownloader) DownloadBytesWithPlanes(OutOffsetsVar *[4]uint, OutStridesVar *[4]uint) *glib.Bytes

Downloads the given texture pixels into a `GBytes`. The offsets and strides of the resulting buffer will be stored in the respective values.

If the format does have less than 4 planes, the remaining offsets and strides will be set to `0`.

func (*TextureDownloader) DownloadInto

func (x *TextureDownloader) DownloadInto(DataVar []byte, StrideVar uint)

Downloads the @texture into local memory.

This function cannot be used with a multiplanar format.

func (*TextureDownloader) Free

func (x *TextureDownloader) Free()

Frees the given downloader and all its associated resources.

func (*TextureDownloader) GetColorState

func (x *TextureDownloader) GetColorState() *ColorState

Gets the color state that the data will be downloaded in.

func (*TextureDownloader) GetFormat

func (x *TextureDownloader) GetFormat() MemoryFormat

Gets the format that the data will be downloaded in.

func (*TextureDownloader) GetTexture

func (x *TextureDownloader) GetTexture() *Texture

Gets the texture that the downloader will download.

func (*TextureDownloader) GoPointer

func (x *TextureDownloader) GoPointer() uintptr

func (*TextureDownloader) SetColorState

func (x *TextureDownloader) SetColorState(ColorStateVar *ColorState)

Sets the color state the downloader will convert the data to.

By default, the sRGB colorstate returned by [func@ColorState.get_srgb] is used.

func (*TextureDownloader) SetFormat

func (x *TextureDownloader) SetFormat(FormatVar MemoryFormat)

Sets the format the downloader will download.

By default, GDK_MEMORY_DEFAULT is set.

func (*TextureDownloader) SetTexture

func (x *TextureDownloader) SetTexture(TextureVar *Texture)

Changes the texture the downloader will download.

type TextureError

type TextureError int

Possible errors that can be returned by `GdkTexture` constructors.

const (

	// Not enough memory to handle this image
	TextureErrorTooLargeValue TextureError = 0
	// The image data appears corrupted
	TextureErrorCorruptImageValue TextureError = 1
	// The image contains features
	//   that cannot be loaded
	TextureErrorUnsupportedContentValue TextureError = 2
	// The image format is not supported
	TextureErrorUnsupportedFormatValue TextureError = 3
)

type TimeCoord

type TimeCoord struct {
	Time uint32

	Flags AxisFlags

	Axes [12]float64
	// contains filtered or unexported fields
}

Stores a single event in a motion history.

To check whether an axis is present, check whether the corresponding flag from the [flags@Gdk.AxisFlags] enumeration is set in the @flags To access individual axis values, use the values of the values of the [enum@Gdk.AxisUse] enumerations as indices.

func (*TimeCoord) GoPointer

func (x *TimeCoord) GoPointer() uintptr

type TitlebarGesture

type TitlebarGesture int

The kind of title bar gesture to emit with [method@Gdk.Toplevel.titlebar_gesture].

const (

	// double click gesture
	TitlebarGestureDoubleClickValue TitlebarGesture = 1
	// right click gesture
	TitlebarGestureRightClickValue TitlebarGesture = 2
	// middle click gesture
	TitlebarGestureMiddleClickValue TitlebarGesture = 3
)

type Toplevel

type Toplevel interface {
	GoPointer() uintptr
	SetGoPointer(uintptr)
	BeginMove(DeviceVar *Device, ButtonVar int, XVar float64, YVar float64, TimestampVar uint32)
	BeginResize(EdgeVar SurfaceEdge, DeviceVar *Device, ButtonVar int, XVar float64, YVar float64, TimestampVar uint32)
	Focus(TimestampVar uint32)
	GetCapabilities() ToplevelCapabilities
	GetGravity() Gravity
	GetState() ToplevelState
	InhibitSystemShortcuts(EventVar *Event)
	Lower() bool
	Minimize() bool
	Present(LayoutVar *ToplevelLayout)
	RestoreSystemShortcuts()
	SetDecorated(DecoratedVar bool)
	SetDeletable(DeletableVar bool)
	SetGravity(GravityVar Gravity)
	SetIconList(SurfacesVar *glib.List)
	SetModal(ModalVar bool)
	SetStartupId(StartupIdVar string)
	SetTitle(TitleVar string)
	SetTransientFor(ParentVar *Surface)
	ShowWindowMenu(EventVar *Event) bool
	SupportsEdgeConstraints() bool
	TitlebarGesture(GestureVar TitlebarGesture) bool
}

A freestanding toplevel surface.

The `GdkToplevel` 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.

type ToplevelBase

type ToplevelBase struct {
	Ptr uintptr
}

func (*ToplevelBase) BeginMove

func (x *ToplevelBase) BeginMove(DeviceVar *Device, ButtonVar int, XVar float64, YVar float64, TimestampVar uint32)

Begins an interactive move operation.

You might use this function to implement draggable titlebars.

func (*ToplevelBase) BeginResize

func (x *ToplevelBase) BeginResize(EdgeVar SurfaceEdge, DeviceVar *Device, ButtonVar int, XVar float64, YVar float64, TimestampVar uint32)

Begins an interactive resize operation.

You might use this function to implement a “window resize grip.”

func (*ToplevelBase) Focus

func (x *ToplevelBase) Focus(TimestampVar uint32)

Sets keyboard focus to @surface.

In most cases, [gtk_window_present_with_time()](../gtk4/method.Window.present_with_time.html) should be used on a [GtkWindow](../gtk4/class.Window.html), rather than calling this function.

func (*ToplevelBase) GetCapabilities

func (x *ToplevelBase) GetCapabilities() ToplevelCapabilities

The capabilities that are available for this toplevel.

func (*ToplevelBase) GetGravity

func (x *ToplevelBase) GetGravity() Gravity

Returns the gravity that is used when changing the toplevel size programmatically.

func (*ToplevelBase) GetPropertyDecorated

func (x *ToplevelBase) GetPropertyDecorated() bool

GetPropertyDecorated gets the "decorated" property. Whether the window manager should add decorations.

func (*ToplevelBase) GetPropertyDeletable

func (x *ToplevelBase) GetPropertyDeletable() bool

GetPropertyDeletable gets the "deletable" property. Whether the window manager should allow to close the surface.

func (*ToplevelBase) GetPropertyIconList

func (x *ToplevelBase) GetPropertyIconList() uintptr

GetPropertyIconList gets the "icon-list" property. A list of textures to use as icon.

func (*ToplevelBase) GetPropertyModal

func (x *ToplevelBase) GetPropertyModal() bool

GetPropertyModal gets the "modal" property. Whether the surface is modal.

func (*ToplevelBase) GetPropertyShortcutsInhibited

func (x *ToplevelBase) GetPropertyShortcutsInhibited() bool

GetPropertyShortcutsInhibited gets the "shortcuts-inhibited" property. Whether the surface should inhibit keyboard shortcuts.

func (*ToplevelBase) GetPropertyStartupId

func (x *ToplevelBase) GetPropertyStartupId() string

GetPropertyStartupId gets the "startup-id" property. The startup ID of the surface.

See [class@Gdk.AppLaunchContext] for more information about startup feedback.

func (*ToplevelBase) GetPropertyTitle

func (x *ToplevelBase) GetPropertyTitle() string

GetPropertyTitle gets the "title" property. The title of the surface.

func (*ToplevelBase) GetState

func (x *ToplevelBase) GetState() ToplevelState

Gets the bitwise or of the currently active surface state flags, from the `GdkToplevelState` enumeration.

func (*ToplevelBase) GoPointer

func (x *ToplevelBase) GoPointer() uintptr

func (*ToplevelBase) InhibitSystemShortcuts

func (x *ToplevelBase) InhibitSystemShortcuts(EventVar *Event)

Requests that the @toplevel 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 [method@Gdk.Toplevel.restore_system_shortcuts], 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 [property@Gdk.Toplevel:shortcuts-inhibited] property.

func (*ToplevelBase) Lower

func (x *ToplevelBase) Lower() bool

Asks to lower the @toplevel below other windows.

The windowing system may choose to ignore the request.

func (*ToplevelBase) Minimize

func (x *ToplevelBase) Minimize() bool

Asks to minimize the @toplevel.

The windowing system may choose to ignore the request.

func (*ToplevelBase) Present

func (x *ToplevelBase) Present(LayoutVar *ToplevelLayout)

Present @toplevel after having processed the `GdkToplevelLayout` rules.

If the toplevel was previously not showing, it will be showed, otherwise it will change layout according to @layout.

GDK may emit the [signal@Gdk.Toplevel::compute-size] 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.

func (*ToplevelBase) RestoreSystemShortcuts

func (x *ToplevelBase) RestoreSystemShortcuts()

Restore default system keyboard shortcuts which were previously inhibited.

This undoes the effect of [method@Gdk.Toplevel.inhibit_system_shortcuts].

func (*ToplevelBase) SetDecorated

func (x *ToplevelBase) SetDecorated(DecoratedVar bool)

Sets the toplevel to be decorated.

Setting @decorated to %FALSE hints the desktop environment that the surface has its own, client-side decorations and does not need to have window decorations added.

func (*ToplevelBase) SetDeletable

func (x *ToplevelBase) SetDeletable(DeletableVar bool)

Sets the toplevel to be deletable.

Setting @deletable to %TRUE hints the desktop environment that it should offer the user a way to close the surface.

func (*ToplevelBase) SetGoPointer

func (x *ToplevelBase) SetGoPointer(ptr uintptr)

func (*ToplevelBase) SetGravity

func (x *ToplevelBase) SetGravity(GravityVar Gravity)

Sets the gravity that is used when changing the toplevel size programmatically.

func (*ToplevelBase) SetIconList

func (x *ToplevelBase) SetIconList(SurfacesVar *glib.List)

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.

func (*ToplevelBase) SetModal

func (x *ToplevelBase) SetModal(ModalVar bool)

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 [method@Gdk.Toplevel.set_transient_for].

func (*ToplevelBase) SetPropertyDecorated

func (x *ToplevelBase) SetPropertyDecorated(value bool)

SetPropertyDecorated sets the "decorated" property. Whether the window manager should add decorations.

func (*ToplevelBase) SetPropertyDeletable

func (x *ToplevelBase) SetPropertyDeletable(value bool)

SetPropertyDeletable sets the "deletable" property. Whether the window manager should allow to close the surface.

func (*ToplevelBase) SetPropertyIconList

func (x *ToplevelBase) SetPropertyIconList(value uintptr)

SetPropertyIconList sets the "icon-list" property. A list of textures to use as icon.

func (*ToplevelBase) SetPropertyModal

func (x *ToplevelBase) SetPropertyModal(value bool)

SetPropertyModal sets the "modal" property. Whether the surface is modal.

func (*ToplevelBase) SetPropertyStartupId

func (x *ToplevelBase) SetPropertyStartupId(value string)

SetPropertyStartupId sets the "startup-id" property. The startup ID of the surface.

See [class@Gdk.AppLaunchContext] for more information about startup feedback.

func (*ToplevelBase) SetPropertyTitle

func (x *ToplevelBase) SetPropertyTitle(value string)

SetPropertyTitle sets the "title" property. The title of the surface.

func (*ToplevelBase) SetStartupId

func (x *ToplevelBase) SetStartupId(StartupIdVar string)

Sets the startup notification ID.

When using GTK, typically you should use [gtk_window_set_startup_id()](../gtk4/method.Window.set_startup_id.html) instead of this low-level function.

func (*ToplevelBase) SetTitle

func (x *ToplevelBase) SetTitle(TitleVar string)

Sets the title of a toplevel surface.

The title maybe be displayed in the titlebar, in lists of windows, etc.

func (*ToplevelBase) SetTransientFor

func (x *ToplevelBase) SetTransientFor(ParentVar *Surface)

Sets a transient-for parent.

Indicates to the window manager that @surface is a transient dialog associated with the application surface @parent. This allows the window manager to do things like center @surface on @parent and keep @surface above @parent.

See [gtk_window_set_transient_for()](../gtk4/method.Window.set_transient_for.html) if you’re using [GtkWindow](../gtk4/class.Window.html).

func (*ToplevelBase) ShowWindowMenu

func (x *ToplevelBase) ShowWindowMenu(EventVar *Event) bool

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.

func (*ToplevelBase) SupportsEdgeConstraints

func (x *ToplevelBase) SupportsEdgeConstraints() bool

Returns whether the desktop environment supports tiled window states.

func (*ToplevelBase) TitlebarGesture

func (x *ToplevelBase) TitlebarGesture(GestureVar TitlebarGesture) bool

Performs a title bar gesture.

type ToplevelCapabilities

type ToplevelCapabilities int

Reflects what features a `GdkToplevel` supports.

const (

	// Whether tiled window states are supported.
	ToplevelCapabilitiesEdgeConstraintsValue ToplevelCapabilities = 1
	// Whether inhibiting system shortcuts is supported.
	// See [method@Gdk.Toplevel.inhibit_system_shortcuts].
	ToplevelCapabilitiesInhibitShortcutsValue ToplevelCapabilities = 2
	// Whether titlebar gestures are supported.
	// See [method@Gdk.Toplevel.titlebar_gesture].
	ToplevelCapabilitiesTitlebarGesturesValue ToplevelCapabilities = 4
	// Whether showing the window menu is supported.
	// See [method@Gdk.Toplevel.show_window_menu].
	ToplevelCapabilitiesWindowMenuValue ToplevelCapabilities = 8
	// Whether the toplevel can be maximized.
	ToplevelCapabilitiesMaximizeValue ToplevelCapabilities = 16
	// Whether the toplevel can be made fullscreen.
	ToplevelCapabilitiesFullscreenValue ToplevelCapabilities = 32
	// Whether the toplevel can be minimized.
	// See [method@Gdk.Toplevel.minimize].
	ToplevelCapabilitiesMinimizeValue ToplevelCapabilities = 64
	// Whether the toplevel can be lowered.
	// See [method@Gdk.Toplevel.lower].
	ToplevelCapabilitiesLowerValue ToplevelCapabilities = 128
)

type ToplevelInterface

type ToplevelInterface struct {
	// contains filtered or unexported fields
}

func (*ToplevelInterface) GoPointer

func (x *ToplevelInterface) GoPointer() uintptr

type ToplevelLayout

type ToplevelLayout struct {
	// contains filtered or unexported fields
}

Contains information that is necessary to present a sovereign window on screen.

The `GdkToplevelLayout` struct is necessary for using [method@Gdk.Toplevel.present].

Toplevel surfaces are sovereign windows that can be presented to the user in various states (maximized, on all workspaces, etc).

func NewToplevelLayout

func NewToplevelLayout() *ToplevelLayout

Create a toplevel layout description.

Used together with [method@Gdk.Toplevel.present] to describe how a toplevel surface should be placed and behave on-screen.

The size is in ”application pixels”, not ”device pixels” (see [method@Gdk.Surface.get_scale]).

func (*ToplevelLayout) Copy

func (x *ToplevelLayout) Copy() *ToplevelLayout

Create a new `GdkToplevelLayout` and copy the contents of @layout into it.

func (*ToplevelLayout) Equal

func (x *ToplevelLayout) Equal(OtherVar *ToplevelLayout) bool

Check whether @layout and @other has identical layout properties.

func (*ToplevelLayout) GetFullscreen

func (x *ToplevelLayout) GetFullscreen(FullscreenVar *bool) bool

If the layout specifies whether to the toplevel should go fullscreen, the value pointed to by @fullscreen is set to true if it should go fullscreen, or false, if it should go unfullscreen.

func (*ToplevelLayout) GetFullscreenMonitor

func (x *ToplevelLayout) GetFullscreenMonitor() *Monitor

Returns the monitor that the layout is fullscreening the surface on.

func (*ToplevelLayout) GetMaximized

func (x *ToplevelLayout) GetMaximized(MaximizedVar *bool) bool

If the layout specifies whether to the toplevel should go maximized, the value pointed to by @maximized is set to true if it should go maximized, or false, if it should go unmaximized.

func (*ToplevelLayout) GetResizable

func (x *ToplevelLayout) GetResizable() bool

Returns whether the layout should allow the user to resize the surface.

func (*ToplevelLayout) GoPointer

func (x *ToplevelLayout) GoPointer() uintptr

func (*ToplevelLayout) Ref

func (x *ToplevelLayout) Ref() *ToplevelLayout

Increases the reference count of @layout.

func (*ToplevelLayout) SetFullscreen

func (x *ToplevelLayout) SetFullscreen(FullscreenVar bool, MonitorVar *Monitor)

Sets whether the layout should cause the surface to be fullscreen when presented.

func (*ToplevelLayout) SetMaximized

func (x *ToplevelLayout) SetMaximized(MaximizedVar bool)

Sets whether the layout should cause the surface to be maximized when presented.

func (*ToplevelLayout) SetResizable

func (x *ToplevelLayout) SetResizable(ResizableVar bool)

Sets whether the layout should allow the user to resize the surface after it has been presented.

func (*ToplevelLayout) Unref

func (x *ToplevelLayout) Unref()

Decreases the reference count of @layout.

type ToplevelSize

type ToplevelSize struct {
	// contains filtered or unexported fields
}

Contains information that is useful to compute the size of a toplevel.

func (*ToplevelSize) GetBounds

func (x *ToplevelSize) GetBounds(BoundsWidthVar *int, BoundsHeightVar *int)

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.

func (*ToplevelSize) GoPointer

func (x *ToplevelSize) GoPointer() uintptr

func (*ToplevelSize) SetMinSize

func (x *ToplevelSize) SetMinSize(MinWidthVar int, MinHeightVar int)

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 `GdkToplevel` should calculate these given both the existing size, and the bounds retrieved from the `GdkToplevelSize` object.

The minimum size should be within the bounds (see [method@Gdk.ToplevelSize.get_bounds]).

func (*ToplevelSize) SetShadowWidth

func (x *ToplevelSize) SetShadowWidth(LeftVar int, RightVar int, TopVar int, BottomVar int)

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 [method@Gtk.Display.supports_shadow_width] is %TRUE.

func (*ToplevelSize) SetSize

func (x *ToplevelSize) SetSize(WidthVar int, HeightVar int)

Sets the size the toplevel prefers to be resized to.

The size should be within the bounds (see [method@Gdk.ToplevelSize.get_bounds]). The set size should be considered as a hint, and should not be assumed to be respected by the windowing system, or backend.

type ToplevelState

type ToplevelState int

Specifies the state of a toplevel surface.

On platforms that support information about individual edges, the %GDK_TOPLEVEL_STATE_TILED 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.

const (

	// the surface is minimized
	ToplevelStateMinimizedValue ToplevelState = 1
	// the surface is maximized
	ToplevelStateMaximizedValue ToplevelState = 2
	// the surface is sticky
	ToplevelStateStickyValue ToplevelState = 4
	// the surface is maximized without decorations
	ToplevelStateFullscreenValue ToplevelState = 8
	// the surface is kept above other surfaces
	ToplevelStateAboveValue ToplevelState = 16
	// the surface is kept below other surfaces
	ToplevelStateBelowValue ToplevelState = 32
	// the surface is presented as focused (with active decorations)
	ToplevelStateFocusedValue ToplevelState = 64
	// the surface is in a tiled state
	ToplevelStateTiledValue ToplevelState = 128
	// whether the top edge is tiled
	ToplevelStateTopTiledValue ToplevelState = 256
	// whether the top edge is resizable
	ToplevelStateTopResizableValue ToplevelState = 512
	// whether the right edge is tiled
	ToplevelStateRightTiledValue ToplevelState = 1024
	// whether the right edge is resizable
	ToplevelStateRightResizableValue ToplevelState = 2048
	// whether the bottom edge is tiled
	ToplevelStateBottomTiledValue ToplevelState = 4096
	// whether the bottom edge is resizable
	ToplevelStateBottomResizableValue ToplevelState = 8192
	// whether the left edge is tiled
	ToplevelStateLeftTiledValue ToplevelState = 16384
	// whether the left edge is resizable
	ToplevelStateLeftResizableValue ToplevelState = 32768
	// The surface is not visible to the user.
	ToplevelStateSuspendedValue ToplevelState = 65536
)

type TouchEvent

type TouchEvent struct {
	Event
}

An event related to a touch-based device.

func TouchEventNewFromInternalPtr

func TouchEventNewFromInternalPtr(ptr uintptr) *TouchEvent

func (*TouchEvent) GetEmulatingPointer

func (x *TouchEvent) GetEmulatingPointer() bool

Extracts whether a touch event is emulating a pointer event.

func (*TouchEvent) GoPointer

func (c *TouchEvent) GoPointer() uintptr

func (*TouchEvent) SetGoPointer

func (c *TouchEvent) SetGoPointer(ptr uintptr)

type TouchpadEvent

type TouchpadEvent struct {
	Event
}

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.

func TouchpadEventNewFromInternalPtr

func TouchpadEventNewFromInternalPtr(ptr uintptr) *TouchpadEvent

func (*TouchpadEvent) GetDeltas

func (x *TouchpadEvent) GetDeltas(DxVar *float64, DyVar *float64)

Extracts delta information from a touchpad event.

func (*TouchpadEvent) GetGesturePhase

func (x *TouchpadEvent) GetGesturePhase() TouchpadGesturePhase

Extracts the touchpad gesture phase from a touchpad event.

func (*TouchpadEvent) GetNFingers

func (x *TouchpadEvent) GetNFingers() uint

Extracts the number of fingers from a touchpad event.

func (*TouchpadEvent) GetPinchAngleDelta

func (x *TouchpadEvent) GetPinchAngleDelta() float64

Extracts the angle delta from a touchpad pinch event.

func (*TouchpadEvent) GetPinchScale

func (x *TouchpadEvent) GetPinchScale() float64

Extracts the scale from a touchpad pinch event.

func (*TouchpadEvent) GoPointer

func (c *TouchpadEvent) GoPointer() uintptr

func (*TouchpadEvent) SetGoPointer

func (c *TouchpadEvent) SetGoPointer(ptr uintptr)

type TouchpadGesturePhase

type TouchpadGesturePhase int

Specifies the current state of a touchpad gesture.

All gestures are guaranteed to begin with an event with phase %GDK_TOUCHPAD_GESTURE_PHASE_BEGIN, followed by 0 or several events with phase %GDK_TOUCHPAD_GESTURE_PHASE_UPDATE.

A finished gesture may have 2 possible outcomes, an event with phase %GDK_TOUCHPAD_GESTURE_PHASE_END 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 %GDK_TOUCHPAD_GESTURE_PHASE_CANCEL, this should be used as a hint to undo any visible/permanent changes that were done throughout the progress of the gesture.

const (

	// The gesture has begun.
	TouchpadGesturePhaseBeginValue TouchpadGesturePhase = 0
	// The gesture has been updated.
	TouchpadGesturePhaseUpdateValue TouchpadGesturePhase = 1
	// The gesture was finished, changes
	//   should be permanently applied.
	TouchpadGesturePhaseEndValue TouchpadGesturePhase = 2
	// The gesture was cancelled, all
	//   changes should be undone.
	TouchpadGesturePhaseCancelValue TouchpadGesturePhase = 3
)

type VulkanContext

type VulkanContext struct {
	DrawContext
}

Represents the platform-specific Vulkan draw context.

`GdkVulkanContext`s are created for a surface using [method@Gdk.Surface.create_vulkan_context], and the context will match the characteristics of the surface.

Support for `GdkVulkanContext` is platform-specific and context creation can fail, returning %NULL context.

func VulkanContextNewFromInternalPtr

func VulkanContextNewFromInternalPtr(ptr uintptr) *VulkanContext

func (*VulkanContext) ConnectImagesUpdated

func (x *VulkanContext) ConnectImagesUpdated(cb *func(VulkanContext)) uint

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.

func (*VulkanContext) GoPointer

func (c *VulkanContext) GoPointer() uintptr

func (*VulkanContext) SetGoPointer

func (c *VulkanContext) SetGoPointer(ptr uintptr)

type VulkanError

type VulkanError int

Error enumeration for `GdkVulkanContext`.

const (

	// Vulkan is not supported on this backend or has not been
	//   compiled in.
	VulkanErrorUnsupportedValue VulkanError = 0
	// Vulkan support is not available on this Surface
	VulkanErrorNotAvailableValue VulkanError = 1
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL