1237:
146:
1153:, and other common memory allocators which allow a program to cope with or even fully recover from out-of-memory situations without simply crashing. This tends to work against including GObject in software where resilience in the face of limited memory is important, or where very many or very large objects are commonly handled. The g_try_new() can be used when a memory allocation is more likely to fail (for a large object for example), but this cannot grant that the allocation will not fail elsewhere in the code.
2487:
2477:
1066:
1004:
2497:
1185:
these overlaps are not allowed.) In contrast, since C does not support any form of overloading or namespacing, authors of C libraries will typically use explicit prefixes to ensure the global uniqueness of their exported names. Hence, despite being object-oriented, a GObject-based library written in
1168:
that works across all C++ compilers (which is not usually the case, since either the
Itanium ABI or the Microsoft ABI are usually followed), a library compiled with one C++ compiler is not always able to call a library compiled with a different one. If such compatibility is required, the C++ methods
828:
can be declared in the public header file, but defined only in the implementation file, with the effect that the private data is opaque to users, but transparent to the implementor. If the private structure is registered with GType, it will be automatically allocated by the object system. Indeed, it
693:
to represent this structure, and provide functions for copying and freeing. GObject ships with a handful of boxed types wrapping simple GLib data types. Another use for boxed types is as a way to wrap foreign objects in a tagged container that the type system can identify and will know how to copy
1197:
in other languages). This emphasis derives from the fact that GObject was specifically designed to meet the needs of a GUI toolkit. Whilst there are signal libraries for most object-oriented languages out there, in the case of GObject it is built into the object system. Because of this, a typical
764:
Signals are the primary mechanism by which closures are invoked. Objects register signal listeners with the type system, specifying a mapping between a given signal and a given closure. Upon emission of a registered signal, that signal's closure is invoked. In GTK, all native GUI events (such as
633:
type) that one wishes to use in some way that is related to the object system — for example, as the type of an object property — should be registered with the type system. Typically, the initialization code that takes care of registering these types is generated by an automated tool
353:, while some are complex but not reference-counted. When the type system “copies” a reference-counted object, it will typically just increase its reference count, whereas when copying a complex, non-reference-counted object (such as a string), it will typically create an actual copy by
1156:
Another important difference is that while C++ and
Objective-C are separate languages, GObject is strictly a library and as such does not introduce any new syntax or compiler intelligence. For example, when writing GObject-based C code, it is frequently necessary to perform explicit
807:(this ensures that all instances begin with a pointer to the class structure, since all fundamental instantiable types share this property). After the data belonging to the superclass, the structure can hold any instance-specific variables, corresponding to C++ member variables.
392:: the types from which all other types are derived. These make up a relatively closed set, but although the average user is not expected to create their own fundamental types, the possibility does exist and has been exploited to create custom
815:
code, such as manual definitions of type casting macros and obscure type registration incantations. Also, since a C structure cannot have access modifiers like “public”, “protected”, or “private”, workarounds must be used to provide
364:, a type of generic container that can hold values of any type known by the type system. Such containers are particularly useful when interacting with dynamically typed language environments in which all native values reside in such
1218:
allows easy use of underlying GObject signals using standard C++. Of course, other implementations of signals are available on almost all platforms, although sometimes an extra library is needed, such as Boost.Signals2 for C++.
644:
Some data structures that are too simple to be made full-fledged class types (with all the overhead incurred) may still need to be registered with the type system. For example, we might have a class to which we want to add a
758:. Support exists for closures written in C and C++, as well as arbitrary languages (when bindings are provided). This allows code written in (for example) Python and Java to be invoked via a GObject closure.
1134:. (Though both also offer many other features beyond just their respective object systems.) An easily observed difference between C++ and GObject is that GObject (like Java) does not support
708:), it is often a good idea to create a derived pointer type, documenting the fact that the pointers should reference a particular kind of object, even though nothing else is said about it.
1173:
to ensure the uniqueness of all exported symbols. (This is necessary because, for example, two different classes may have identically named member functions, one function name may be
274:, the new common baseclass. Having existed as a separate library since March 11, 2002 (the release date of GTK+ 2.0), the GObject library is now used by many non-GUI programs such as
1169:
must be exported as plain C functions, partly defeating the purpose of the C++ object system. The problem occurs in part because different C++ compilers use different kinds of
1161:. Hence, “C with GObject”, also called "glib-flavored C", considered as a language separate from plain C, is a strict superset of plain C — like Objective C, but unlike C++.
349:
The type system knows how to copy, assign, and destroy values belonging to any of the registered types. This is trivial for types like integers, but many complex objects are
255:
and applications. Prior to GTK+ 2.0, code similar to GObject was part of the GTK codebase. (The name “GObject” was not yet in use — the common baseclass was called
714:
Most types in a GObject application will be classes — in the normal object-oriented sense of the word — derived directly or indirectly from the root class,
963:, a language that is designed primarily to work with GObject and which converts to C, is likely to make working with GObject or writing GObject based libraries nicer.
298:
source tree and is distributed along with GLib. For this reason, GObject uses the GLib version numbers and is typically packaged together with GLib (for example,
947:
Writing GObject code in C in the first place, however, is relatively verbose. The library takes a good deal of time to learn, and programmers with experience in
2521:
793:
of a C++ class. It must begin with the class structure of the superclass. Following that, it will hold a set of function pointers — one for each
912:
Though many GObject applications are written entirely in C, the GObject system maps well into the native object systems of many other languages, like
723:
606:) associated to the type of the instance. For this reason, any instantiable type must be classed. Contrapositively, any non-classed type (such as
1455:
2531:
951:
object-oriented languages often find it somewhat tedious to work with GObject in C. For example, creating a subclass (even just a subclass of
1242:
1199:
817:
262:
At the release of GTK+ 2.0, the object system was extracted into a separate library due to its general utility. In the process, most non-
990:, in the case of Glade—and then obtain a list of all properties of the class, complete with type information and documentation strings.
1145:'s g_malloc() memory allocation function will cause the program to exit unconditionally upon memory exhaustion, unlike the C library's
1768:
1699:
1556:
1113:
1047:
881:
115:
1014:
2526:
2250:
1741:
975:
614:) must be non-instantiable. On the other hand, most classed types are instantiable, but some, such as interface types, are not.
2490:
1126:
Since GObject provides a mostly complete object system for C, it can be seen as an alternative to C-derived languages such as
1937:
1254:
1091:
849:
1745:
1492:
1198:
GObject application will tend to use signals to a much larger extent than a non-GObject application would, making GObject
925:
804:
1375:
1165:
803:
The instance structure, which will exist in one copy per object instance, must begin with the instance structure of the
1607:
1597:
1325:
1250:
960:
917:
861:
845:
755:
719:
1076:
1029:
598:. An important characteristic of these types is that the first bytes of any instance always contain a pointer to the
145:
2039:
877:
1095:
1080:
1025:
2301:
1258:
921:
841:
700:
Sometimes, for objects that need to be neither copied or reference-counted nor freed, even a boxed type would be
335:
1423:
2541:
2536:
1753:
1505:
1399:
1262:
1194:
1087:
979:
204:
69:
1865:
1223:
1158:
978:. The introspective capabilities are used by language bindings and user interface design applications like
2271:
2024:
622:
The types that are derived from the built-in GObject fundamental types fall roughly into four categories:
974:
like classes and interfaces are created by GObject applications at runtime, and provide good support for
575:
structures, which are used to wrap simple value objects or foreign objects in reference-counted “boxes” (
2372:
2306:
1592:
1538:
343:
244:
765:
mouse motion and keyboard actions) can generate GObject signals for listeners to potentially act upon.
2266:
2077:
1135:
2179:
1945:
1880:
1546:
853:
377:
98:
560:
a base interface type, analogous to the base class type but representing the root of the standard
2398:
2321:
2215:
1981:
1689:
1203:
1190:
1174:
967:
812:
350:
323:
279:
1350:
385:
1311:
2448:
2408:
2347:
2235:
2103:
1485:
354:
290:
Though GObject has its own separate set of documentation and is usually compiled into its own
203:
and transparent cross-language interoperability. GObject is designed for use both directly in
41:
1986:
173:
169:
2443:
2423:
2200:
2174:
2082:
1885:
1875:
1724:
1207:
956:
941:
208:
196:
110:
103:
76:
2393:
2362:
1996:
1786:
1657:
937:
701:
393:
820:. One approach is to include a pointer to the private data — conventionally called
704:. While such objects can be used in GObject by simply treating them as opaque pointers (
2061:
1905:
1900:
1684:
1585:
1186:
C will always use the same external symbol names regardless of which compiler is used.
983:
933:
794:
331:
291:
177:
81:
2515:
2352:
1781:
1758:
1612:
1170:
894:
629:
In general, every enumerated type and every integer-based bitfield type (i.e., every
603:
200:
193:
150:
17:
582:
a type for “parameter specification objects,” which are used in GObject to describe
2546:
2480:
2403:
2296:
2276:
2225:
2169:
1910:
1704:
1478:
365:
318:
called GType. The GType system holds a runtime description of all objects allowing
275:
154:
91:
1215:
1150:
840:
To address some of these complexities, several higher-level languages exist that
811:
Defining a class in the GObject framework is complex, requiring large amounts of
2009:
2004:
1895:
1890:
1870:
1860:
1855:
1811:
1694:
1637:
1182:
1131:
1065:
929:
880:
middleware layer between C libraries (using GObject) and language bindings, cf.
315:
211:
to other languages to provide transparent cross-language interoperability, e.g.
157:
726:, can contain implemented methods. GObject interfaces can thus be described as
2453:
2210:
1826:
1714:
1709:
1450:
1283:
1232:
1178:
987:
971:
948:
690:
572:
496:
126:
36:
2500:
1297:
2342:
2291:
2149:
2087:
1915:
1679:
1669:
1566:
797:
of the class. Class-specific variables can be used to emulate class members.
481:
319:
314:
At the most basic level of the GObject framework lies a generic and dynamic
252:
212:
1470:
594:
Types that can be instantiated automatically by the type system are called
1214:, the official C++ wrappers to Glib/GTK respectively, the sibling project
649:
property, whose values should be instances of a structure that looks like
2458:
2357:
2337:
2311:
2281:
2230:
2205:
2154:
2128:
2123:
2118:
2108:
2066:
2019:
1816:
1719:
1617:
583:
322:
to facilitate multiple language bindings. The type system can handle any
2438:
2428:
2240:
2056:
1796:
1791:
1647:
1642:
1632:
1465:
1177:
multiple times, or identically named functions may appear in different
873:
384:. These types, together with all types that correspond to some form of
339:
2377:
2286:
2184:
2164:
2159:
2071:
1963:
1801:
1776:
1627:
1146:
790:
299:
1032:. Statements consisting only of original research should be removed.
1127:
913:
2433:
2418:
2413:
2367:
2220:
2113:
2029:
2014:
1925:
1847:
1821:
1806:
1674:
1602:
1561:
1551:
1211:
898:
774:
Each GObject class is implemented by at least two structures: the
739:
The GObject messaging system consists of two complementary parts:
727:
476:
an enumeration type and a “flags” type, both corresponding to C's
248:
240:
232:
1460:
857:
2245:
2144:
1973:
1955:
1622:
1575:
1142:
906:
295:
228:
224:
165:
161:
1474:
1533:
1528:
1520:
1501:
1189:
Perhaps the most profound difference is GObject's emphasis on
1059:
997:
902:
263:
236:
1224:
Comparison with COM, Objective-C, SOM, Windows
Runtime, XPCOM
1206:
and reusable than the ones using plain C++ or Java. If using
207:
programs to provide object-oriented C-based APIs and through
893:
The combination of C and GObject is used in many successful
944:
for well-written libraries that use the GObject framework.
940:. As a result, it is usually relatively painless to create
1330:
Gnome
Developer, Programming Guidelines - Specific How-Tos
480:
type, but differing in that the latter is only used for
1021:
955:) can require writing and/or copying large amounts of
180:) serve as further wrappers for their specific tasks.
2386:
2330:
2259:
2193:
2137:
2096:
2049:
2038:
1995:
1972:
1954:
1936:
1846:
1767:
1740:
1733:
1656:
1519:
1512:
986:that provides a GObject class—usually some kind of
718:. There are also interfaces, which, unlike classic
650:
553:, the root of the standard class inheritance tree (
121:
109:
97:
87:
75:
65:
47:
35:
833:pointer, if one is willing to use the incantation
360:This basic functionality is used for implementing
396:— i.e., class hierarchies not based on the
294:file, the source code for GObject resides in the
754:A GObject closure is a generalized version of a
422:types corresponding to C's signed and unsigned
1486:
529:an opaque pointer type, corresponding to C's
8:
1253:— a GObject-based programming language with
30:
1451:The GObject Reference Manual (and tutorial)
1376:"c++ - Why Was the GObject System Created?"
1351:"How to define and implement a new GObject"
1094:. Unsourced material may be challenged and
2046:
1737:
1516:
1493:
1479:
1471:
1424:"Memory Allocation: GLib Reference Manual"
1400:"Memory Allocation: GLib Reference Manual"
970:(there are no actual metatypes in GType),
860:, offers a template syntax reminiscent of
29:
1114:Learn how and when to remove this message
1048:Learn how and when to remove this message
1312:"glib-mkenums, GObject Reference Manual"
1164:On platforms where there is no standard
852:-style syntax and is pre-processed into
144:
1275:
837:every time the private data is needed.
824:— in the instance structure. The
789:The class structure corresponds to the
495:types for single- and double-precision
376:Types that do not have any associated
982:to allow doing things like loading a
829:is not even necessary to include the
7:
2496:
1243:Free and open-source software portal
1092:adding citations to reliable sources
518:a string type, corresponding to C's
411:an empty type, corresponding to C's
1298:"GObject Reference Manual - Stable"
994:Comparisons to other object systems
549:a base class type for instances of
2522:C (programming language) libraries
626:Enumerated types and “flags” types
25:
882:List of language bindings for GTK
160:, so do the libraries bundled in
2495:
2486:
2485:
2476:
2475:
1461:GOB2 — the GObject Builder
1235:
1064:
1002:
856:C code. The GObject Builder, or
545:built-in fundamental types are:
407:built-in fundamental types are:
326:class structure, in addition to
2491:Category:Software that uses GTK
685:. To avoid having to subclass
638:and stored in a separate file.
231:, GObject is a cornerstone of
1:
2532:Free software programmed in C
966:Although they are not really
909:image manipulation program.
1028:the claims made and adding
835:G_TYPE_INSTANCE_GET_PRIVATE
2563:
1284:"GObject Reference Manual"
1221:
878:foreign function interface
2471:
1456:GObject Tutorial Aug 2004
1259:Source to source compiler
846:Vala programming language
842:source-to-source compiles
711:Class and interface types
270:class were moved up into
1754:Glade Interface Designer
1326:"Introspection, Summary"
247:, and most higher-level
153:serves as a wrapper for
2527:Free computer libraries
876:(abbreviated GIR) is a
586:for object properties (
499:, corresponding to C's
434:, and 64-bit integers (
266:-specific parts of the
235:and is used throughout
2025:Avant Window Navigator
897:projects, such as the
800:The instance structure
403:As of GLib 2.9.2, the
344:floating point numbers
338:, and variously sized
181:
53:; 22 years ago
2373:OpenShot Video Editor
874:GObject introspection
868:GObject Introspection
844:to GObject in C. The
199:providing a portable
148:
27:Free software library
18:GObject Introspection
1136:multiple inheritance
1088:improve this section
770:Class implementation
697:Opaque pointer types
302:puts GObject in its
1547:GTK Scene Graph Kit
1428:developer.gnome.org
1404:developer.gnome.org
968:first-class objects
786:The class structure
32:
1982:PCMan File Manager
1013:possibly contains
780:instance structure
689:, we can create a
564:inheritance tree (
223:Depending only on
186:GLib Object System
182:
51:11 March 2002
2509:
2508:
2467:
2466:
2236:Vino (VNC server)
1866:Core Applications
1842:
1841:
1838:
1837:
1663:
1557:Language bindings
1141:GObject's use of
1124:
1123:
1116:
1058:
1057:
1050:
1015:original research
959:. However, using
942:language bindings
826:private structure
394:class hierarchies
390:fundamental types
372:Fundamental types
355:allocating memory
351:reference-counted
306:package family).
143:
142:
42:The GNOME Project
16:(Redirected from
2554:
2499:
2498:
2489:
2488:
2479:
2478:
2251:transmission-gtk
2047:
1997:Graphical shells
1738:
1661:
1517:
1506:its applications
1495:
1488:
1481:
1472:
1438:
1437:
1435:
1434:
1420:
1414:
1413:
1411:
1410:
1396:
1390:
1389:
1387:
1386:
1372:
1366:
1365:
1363:
1361:
1347:
1341:
1340:
1338:
1336:
1322:
1316:
1315:
1308:
1302:
1301:
1294:
1288:
1287:
1280:
1245:
1240:
1239:
1238:
1119:
1112:
1108:
1105:
1099:
1068:
1060:
1053:
1046:
1042:
1039:
1033:
1030:inline citations
1006:
1005:
998:
957:boilerplate code
954:
905:toolkit and the
836:
832:
823:
735:Messaging system
717:
707:
688:
684:
683:
680:
677:
674:
671:
668:
665:
662:
659:
656:
653:
648:
647:background-color
637:
632:
589:
578:
567:
566:G_TYPE_INTERFACE
556:
552:
536:
532:
525:
521:
514:
510:
506:
502:
491:
487:
479:
472:
469:a boolean type (
465:
461:
457:
453:
449:
445:
441:
437:
433:
429:
425:
418:
414:
399:
363:
324:singly inherited
305:
286:Relation to GLib
273:
269:
258:
197:software library
139:
136:
134:
132:
130:
128:
104:Software library
77:Operating system
61:
59:
54:
33:
21:
2562:
2561:
2557:
2556:
2555:
2553:
2552:
2551:
2542:GNOME libraries
2537:Freedesktop.org
2512:
2511:
2510:
2505:
2463:
2394:Archive Manager
2382:
2326:
2255:
2189:
2133:
2092:
2041:
2034:
1991:
1968:
1950:
1932:
1834:
1763:
1729:
1660:
1658:freedesktop.org
1652:
1508:
1499:
1447:
1442:
1441:
1432:
1430:
1422:
1421:
1417:
1408:
1406:
1398:
1397:
1393:
1384:
1382:
1374:
1373:
1369:
1359:
1357:
1349:
1348:
1344:
1334:
1332:
1324:
1323:
1319:
1310:
1309:
1305:
1296:
1295:
1291:
1282:
1281:
1277:
1272:
1241:
1236:
1234:
1231:
1226:
1120:
1109:
1103:
1100:
1085:
1069:
1054:
1043:
1037:
1034:
1019:
1007:
1003:
996:
952:
891:
870:
834:
830:
821:
776:class structure
772:
737:
715:
705:
686:
681:
678:
675:
672:
669:
666:
663:
660:
657:
654:
651:
646:
635:
630:
620:
600:class structure
587:
576:
565:
554:
550:
534:
530:
523:
519:
512:
508:
504:
500:
489:
485:
477:
470:
463:
459:
455:
451:
447:
443:
439:
435:
431:
427:
423:
416:
412:
397:
388:, are known as
374:
361:
332:opaque pointers
312:
310:The type system
303:
288:
271:
267:
256:
251:libraries like
221:
125:
57:
55:
52:
48:Initial release
28:
23:
22:
15:
12:
11:
5:
2560:
2558:
2550:
2549:
2544:
2539:
2534:
2529:
2524:
2514:
2513:
2507:
2506:
2504:
2503:
2493:
2483:
2472:
2469:
2468:
2465:
2464:
2462:
2461:
2456:
2451:
2446:
2441:
2436:
2431:
2426:
2421:
2416:
2411:
2406:
2401:
2396:
2390:
2388:
2384:
2383:
2381:
2380:
2375:
2370:
2365:
2360:
2355:
2350:
2345:
2340:
2334:
2332:
2328:
2327:
2325:
2324:
2319:
2316:
2315:
2314:
2304:
2302:SoundConverter
2299:
2294:
2289:
2284:
2279:
2274:
2269:
2263:
2261:
2257:
2256:
2254:
2253:
2248:
2243:
2238:
2233:
2228:
2223:
2218:
2213:
2208:
2203:
2197:
2195:
2191:
2190:
2188:
2187:
2182:
2177:
2172:
2167:
2162:
2157:
2152:
2147:
2141:
2139:
2135:
2134:
2132:
2131:
2126:
2121:
2116:
2111:
2106:
2100:
2098:
2094:
2093:
2091:
2090:
2085:
2080:
2075:
2069:
2064:
2059:
2053:
2051:
2044:
2036:
2035:
2033:
2032:
2027:
2022:
2017:
2012:
2007:
2001:
1999:
1993:
1992:
1990:
1989:
1984:
1978:
1976:
1970:
1969:
1967:
1966:
1960:
1958:
1952:
1951:
1949:
1948:
1942:
1940:
1934:
1933:
1931:
1930:
1929:
1928:
1920:
1919:
1918:
1913:
1908:
1903:
1898:
1893:
1888:
1883:
1878:
1873:
1863:
1858:
1852:
1850:
1844:
1843:
1840:
1839:
1836:
1835:
1833:
1832:
1829:
1824:
1819:
1814:
1809:
1804:
1799:
1794:
1789:
1784:
1779:
1773:
1771:
1765:
1764:
1762:
1761:
1756:
1750:
1748:
1735:
1731:
1730:
1728:
1727:
1722:
1717:
1712:
1707:
1702:
1697:
1692:
1687:
1685:NetworkManager
1682:
1677:
1672:
1666:
1664:
1654:
1653:
1651:
1650:
1645:
1640:
1635:
1630:
1625:
1620:
1615:
1610:
1605:
1600:
1595:
1590:
1589:
1588:
1583:
1573:
1572:
1571:
1570:
1569:
1564:
1554:
1549:
1544:
1541:
1536:
1525:
1523:
1514:
1510:
1509:
1500:
1498:
1497:
1490:
1483:
1475:
1469:
1468:
1463:
1458:
1453:
1446:
1445:External links
1443:
1440:
1439:
1415:
1391:
1380:Stack Overflow
1367:
1342:
1317:
1303:
1289:
1274:
1273:
1271:
1268:
1267:
1266:
1257:-like syntax.
1247:
1246:
1230:
1227:
1122:
1121:
1072:
1070:
1063:
1056:
1055:
1010:
1008:
1001:
995:
992:
984:shared library
890:
887:
886:
885:
869:
866:
809:
808:
801:
798:
795:virtual method
787:
771:
768:
767:
766:
762:
759:
752:
736:
733:
732:
731:
712:
709:
706:G_TYPE_POINTER
698:
695:
642:
639:
627:
619:
616:
592:
591:
580:
569:
558:
539:
538:
535:G_TYPE_POINTER
527:
516:
493:
474:
471:G_TYPE_BOOLEAN
467:
420:
373:
370:
330:types such as
311:
308:
292:shared library
287:
284:
282:applications.
220:
217:
141:
140:
123:
119:
118:
113:
107:
106:
101:
95:
94:
89:
85:
84:
82:Cross-platform
79:
73:
72:
67:
63:
62:
49:
45:
44:
39:
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
2559:
2548:
2545:
2543:
2540:
2538:
2535:
2533:
2530:
2528:
2525:
2523:
2520:
2519:
2517:
2502:
2494:
2492:
2484:
2482:
2474:
2473:
2470:
2460:
2457:
2455:
2452:
2450:
2447:
2445:
2442:
2440:
2437:
2435:
2432:
2430:
2427:
2425:
2422:
2420:
2417:
2415:
2412:
2410:
2407:
2405:
2402:
2400:
2397:
2395:
2392:
2391:
2389:
2385:
2379:
2376:
2374:
2371:
2369:
2366:
2364:
2361:
2359:
2356:
2354:
2353:Gnome MPlayer
2351:
2349:
2346:
2344:
2341:
2339:
2336:
2335:
2333:
2329:
2323:
2320:
2317:
2313:
2310:
2309:
2308:
2305:
2303:
2300:
2298:
2295:
2293:
2290:
2288:
2285:
2283:
2280:
2278:
2275:
2273:
2270:
2268:
2265:
2264:
2262:
2258:
2252:
2249:
2247:
2244:
2242:
2239:
2237:
2234:
2232:
2229:
2227:
2224:
2222:
2219:
2217:
2214:
2212:
2209:
2207:
2204:
2202:
2199:
2198:
2196:
2192:
2186:
2183:
2181:
2178:
2176:
2173:
2171:
2168:
2166:
2163:
2161:
2158:
2156:
2153:
2151:
2148:
2146:
2143:
2142:
2140:
2136:
2130:
2127:
2125:
2122:
2120:
2117:
2115:
2112:
2110:
2107:
2105:
2102:
2101:
2099:
2095:
2089:
2086:
2084:
2081:
2079:
2076:
2073:
2070:
2068:
2065:
2063:
2060:
2058:
2055:
2054:
2052:
2048:
2045:
2043:
2037:
2031:
2028:
2026:
2023:
2021:
2018:
2016:
2013:
2011:
2008:
2006:
2003:
2002:
2000:
1998:
1994:
1988:
1985:
1983:
1980:
1979:
1977:
1975:
1971:
1965:
1962:
1961:
1959:
1957:
1953:
1947:
1944:
1943:
1941:
1939:
1935:
1927:
1924:
1923:
1921:
1917:
1914:
1912:
1909:
1907:
1904:
1902:
1899:
1897:
1894:
1892:
1889:
1887:
1884:
1882:
1881:Character Map
1879:
1877:
1874:
1872:
1869:
1868:
1867:
1864:
1862:
1859:
1857:
1854:
1853:
1851:
1849:
1845:
1830:
1828:
1825:
1823:
1820:
1818:
1815:
1813:
1810:
1808:
1805:
1803:
1800:
1798:
1795:
1793:
1790:
1788:
1785:
1783:
1780:
1778:
1775:
1774:
1772:
1770:
1766:
1760:
1759:GNOME Builder
1757:
1755:
1752:
1751:
1749:
1747:
1743:
1739:
1736:
1732:
1726:
1723:
1721:
1718:
1716:
1713:
1711:
1708:
1706:
1703:
1701:
1698:
1696:
1693:
1691:
1688:
1686:
1683:
1681:
1678:
1676:
1673:
1671:
1668:
1667:
1665:
1659:
1655:
1649:
1646:
1644:
1641:
1639:
1636:
1634:
1631:
1629:
1626:
1624:
1621:
1619:
1616:
1614:
1611:
1609:
1606:
1604:
1601:
1599:
1596:
1594:
1591:
1587:
1584:
1582:
1579:
1578:
1577:
1574:
1568:
1565:
1563:
1560:
1559:
1558:
1555:
1553:
1550:
1548:
1545:
1542:
1540:
1537:
1535:
1532:
1531:
1530:
1527:
1526:
1524:
1522:
1518:
1515:
1511:
1507:
1503:
1496:
1491:
1489:
1484:
1482:
1477:
1476:
1473:
1467:
1466:Vala Homepage
1464:
1462:
1459:
1457:
1454:
1452:
1449:
1448:
1444:
1429:
1425:
1419:
1416:
1405:
1401:
1395:
1392:
1381:
1377:
1371:
1368:
1356:
1352:
1346:
1343:
1331:
1327:
1321:
1318:
1313:
1307:
1304:
1299:
1293:
1290:
1285:
1279:
1276:
1269:
1264:
1260:
1256:
1252:
1249:
1248:
1244:
1233:
1228:
1225:
1220:
1217:
1213:
1209:
1205:
1201:
1196:
1192:
1187:
1184:
1180:
1176:
1172:
1171:name mangling
1167:
1162:
1160:
1154:
1152:
1148:
1144:
1139:
1137:
1133:
1129:
1118:
1115:
1107:
1104:November 2018
1097:
1093:
1089:
1083:
1082:
1078:
1073:This section
1071:
1067:
1062:
1061:
1052:
1049:
1041:
1038:December 2011
1031:
1027:
1023:
1017:
1016:
1011:This section
1009:
1000:
999:
993:
991:
989:
985:
981:
977:
976:introspection
973:
969:
964:
962:
958:
950:
945:
943:
939:
935:
931:
927:
923:
919:
915:
910:
908:
904:
901:desktop, the
900:
896:
895:free software
888:
883:
879:
875:
872:
871:
867:
865:
863:
859:
855:
851:
847:
843:
838:
827:
819:
818:encapsulation
814:
806:
802:
799:
796:
792:
788:
785:
784:
783:
781:
777:
769:
763:
760:
757:
753:
750:
749:
748:
746:
742:
734:
729:
725:
721:
713:
710:
703:
699:
696:
692:
643:
640:
628:
625:
624:
623:
618:Derived types
617:
615:
613:
609:
605:
604:virtual table
601:
597:
585:
581:
574:
570:
563:
559:
555:G_TYPE_OBJECT
548:
547:
546:
544:
528:
524:G_TYPE_STRING
517:
513:G_TYPE_DOUBLE
498:
494:
483:
475:
468:
464:G_TYPE_UINT64
421:
410:
409:
408:
406:
401:
395:
391:
387:
383:
379:
371:
369:
367:
358:
356:
352:
347:
345:
341:
337:
333:
329:
325:
321:
317:
309:
307:
301:
297:
293:
285:
283:
281:
277:
265:
260:
254:
250:
246:
242:
238:
234:
230:
226:
218:
216:
214:
210:
206:
202:
201:object system
198:
195:
191:
187:
179:
175:
171:
167:
163:
159:
156:
152:
151:GNU C Library
147:
138:
124:
120:
117:
114:
112:
108:
105:
102:
100:
96:
93:
90:
86:
83:
80:
78:
74:
71:
68:
64:
50:
46:
43:
40:
38:
34:
19:
2481:Category:GTK
2404:dconf-editor
2297:Sound Juicer
2277:PulseEffects
2226:gtk-gnutella
2170:Eye of GNOME
2042:applications
1926:dconf editor
1742:GUI designer
1705:X.Org Server
1580:
1543:ClutterActor
1431:. Retrieved
1427:
1418:
1407:. Retrieved
1403:
1394:
1383:. Retrieved
1379:
1370:
1358:. Retrieved
1354:
1345:
1333:. Retrieved
1329:
1320:
1306:
1292:
1278:
1204:encapsulated
1188:
1163:
1155:
1140:
1125:
1110:
1101:
1086:Please help
1074:
1044:
1035:
1012:
965:
946:
911:
892:
839:
825:
810:
779:
775:
773:
744:
740:
738:
636:glib-mkenums
621:
611:
607:
599:
596:instantiable
595:
593:
588:G_TYPE_PARAM
577:G_TYPE_BOXED
561:
542:
540:
509:G_TYPE_FLOAT
490:G_TYPE_FLAGS
460:G_TYPE_INT64
456:G_TYPE_ULONG
440:G_TYPE_UCHAR
404:
402:
389:
381:
375:
368:containers.
359:
348:
327:
313:
289:
276:command-line
261:
222:
189:
185:
183:
158:system calls
155:Linux kernel
92:Multilingual
88:Available in
37:Developer(s)
2010:GNOME Panel
2005:GNOME Shell
1861:GNOME Games
1856:GNOME Shell
1812:Gtranslator
1734:Development
1695:libcanberra
1638:MetaTracker
1183:object code
1132:Objective-C
972:metaobjects
930:Common Lisp
813:boilerplate
641:Boxed types
602:(a form of
571:a type for
497:IEEE floats
486:G_TYPE_ENUM
452:G_TYPE_LONG
448:G_TYPE_UINT
436:G_TYPE_CHAR
417:G_TYPE_NONE
405:non-classed
382:non-classed
380:are called
366:type-tagged
328:non-classed
316:type system
2516:Categories
2454:Wine-Doors
2424:Screenshot
2307:Quod Libet
2211:Claws Mail
2083:Dictionary
1886:Dictionary
1876:Calculator
1827:UberWriter
1715:PackageKit
1710:PulseAudio
1433:2019-11-17
1409:2019-11-16
1385:2019-11-16
1270:References
1222:See also:
1202:much more
1200:components
1179:namespaces
1175:overloaded
1149:(), C++'s
1022:improve it
949:high-level
805:superclass
724:interfaces
691:boxed type
482:bit fields
444:G_TYPE_INT
386:root class
304:libglib2.0
164:(GObject,
66:Written in
58:2002-03-11
2387:Utilities
2343:Cinelerra
2292:Rhythmbox
2267:Audacious
2150:GNU Paint
2097:Education
2088:OCRFeeder
2078:Evolution
2040:3rd-party
1680:GStreamer
1670:AppStream
1567:PyGObject
1355:gnome.org
1216:libsigc++
1181:, but in
1159:upcasting
1075:does not
1026:verifying
694:and free.
562:interface
320:glue code
268:GtkObject
257:GtkObject
253:GStreamer
213:PyGObject
127:developer
2459:Workrave
2358:Guvcview
2338:Avidemux
2312:Ex Falso
2282:Buzztrax
2231:GNU Ring
2206:Sylpheed
2194:Internet
2180:Shotwell
2155:Inkscape
2138:Graphics
2129:Celestia
2124:Ghemical
2119:GeoGebra
2109:GCompris
2067:Gnumeric
2020:GNOME Do
1938:Cinnamon
1906:Terminal
1901:Software
1817:gPHPedit
1720:HarfBuzz
1662:(shared)
1618:GNOME-DB
1513:Platform
1335:9 August
1229:See also
1193:(called
778:and the
756:callback
751:Closures
741:closures
702:overkill
584:metadata
340:integers
209:bindings
133:/gobject
116:GNU LGPL
2501:Commons
2439:Leafpad
2429:GParted
2399:Brasero
2322:Asunder
2318:EasyTag
2272:Banshee
2241:Vinagre
2216:Empathy
2057:AbiWord
1987:LXMusic
1797:Nemiver
1792:Devhelp
1782:Builder
1700:Wayland
1690:Poppler
1648:libxml2
1643:libxslt
1633:Librsvg
1613:Keyring
1581:GObject
1360:27 July
1191:signals
1096:removed
1081:sources
1020:Please
953:GObject
854:vanilla
848:uses a
761:Signals
745:signals
722:-style
716:GObject
687:GObject
634:called
608:integer
551:GObject
543:classed
400:class.
398:GObject
378:classes
336:strings
272:GObject
219:History
192:, is a
190:GObject
174:GThread
170:GModule
149:As the
135:/stable
122:Website
111:License
56: (
31:GObject
2449:Tomboy
2409:Diodon
2378:Pitivi
2348:Cheese
2287:Exaile
2185:F-Spot
2165:gPhoto
2160:gThumb
2104:Gramps
2072:Evince
2050:Office
1964:Thunar
1922:other
1911:Videos
1802:Poedit
1777:Anjuta
1628:Hildon
1208:glibmm
1195:events
1147:malloc
988:widget
932:, and
926:Python
791:vtable
728:mixins
652:struct
612:string
531:void *
520:char *
505:double
462:, and
362:GValue
300:Debian
280:server
129:.gnome
2444:Tilda
2434:Guake
2419:gnote
2414:gedit
2368:LiVES
2331:Video
2260:Audio
2221:Ekiga
2201:Balsa
2175:Sushi
2114:DrGeo
2074:(PDF)
2030:Phosh
2015:Docky
1896:Files
1891:Disks
1871:Boxes
1848:GNOME
1822:SciTE
1807:Geany
1725:Cairo
1675:D-Bus
1603:dconf
1562:PyGTK
1552:Pango
1212:gtkmm
980:Glade
899:GNOME
889:Usage
831:_priv
822:_priv
655:color
573:boxed
501:float
249:GNOME
241:Pango
233:GNOME
188:, or
2363:Kino
2246:Uzbl
2145:GIMP
1974:LXDE
1956:Xfce
1946:Nemo
1831:PIDA
1787:Meld
1769:IDEs
1623:GVfs
1608:Vala
1598:Orca
1593:IBus
1576:GLib
1504:and
1362:2013
1337:2020
1251:Vala
1143:GLib
1130:and
1079:any
1077:cite
961:Vala
938:Mono
934:.NET
922:Ruby
918:Java
907:GIMP
862:Java
858:GOB2
743:and
720:Java
631:enum
541:The
511:and
503:and
488:and
478:enum
432:long
424:char
413:void
342:and
296:GLib
278:and
229:libc
227:and
225:GLib
194:free
184:The
176:and
166:Glib
162:GLib
131:.org
99:Type
2547:GTK
2062:Dia
1916:Web
1746:RAD
1586:GIO
1539:ATK
1534:GDK
1529:GTK
1521:GTK
1502:GTK
1261:to
1166:ABI
1151:new
1128:C++
1090:by
1024:by
914:C++
903:GTK
661:int
610:or
428:int
264:GUI
259:.)
245:ATK
237:GTK
178:GIO
2518::
1744:,
1426:.
1402:.
1378:.
1353:.
1328:.
1255:C#
1138:.
928:,
924:,
920:,
916:,
864:.
850:C#
782:.
747:.
590:).
537:).
526:);
515:);
492:);
473:);
466:);
458:,
454:,
450:,
446:,
442:,
438:,
430:,
426:,
419:);
357:.
346:.
334:,
243:,
239:,
215:.
172:,
168:,
1494:e
1487:t
1480:v
1436:.
1412:.
1388:.
1364:.
1339:.
1314:.
1300:.
1286:.
1265:.
1263:C
1210:/
1117:)
1111:(
1106:)
1102:(
1098:.
1084:.
1051:)
1045:(
1040:)
1036:(
1018:.
936:/
884:.
730:.
682:}
679:;
676:b
673:,
670:g
667:,
664:r
658:{
579:)
568:)
557:)
533:(
522:(
507:(
484:(
415:(
205:C
137:/
70:C
60:)
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.