GNOME Developer Documentation

Total Page:16

File Type:pdf, Size:1020Kb

GNOME Developer Documentation GNOME Developer Documentation Brent Smith GNOME Developer Documentation GNOME Developer Documentation by Brent Smith This is 2.13.0 version of this document. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later revision published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found here. Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and those trademarks are made aware to the members of the GNOME Documentation Project, the names have been printed in caps or initial caps. Dedication Dedication This book is dedicated to the community that makes great free software like GNOME possible. i GNOME Developer Documentation Table of Contents Foreward ................................................................................................................. iv 1. What is GNOME? ................................................................................................. 5 The History of the GNOME Desktop .................................................................... 5 What defines the GNOME Desktop? .................................................................... 6 GNOME Application Requirements ...................................................................... 7 The Software “Stack” ........................................................................................ 7 2. Getting Started Developing for GNOME .................................................................... 9 Requirements ................................................................................................... 9 First Application ............................................................................................... 9 Using Callback Functions ................................................................................... 10 3. Using Glade to Design User Interfaces ...................................................................... 11 Designing with glade-2 ...................................................................................... 11 Using libglade2 to Parse Glade Files .................................................................... 11 A. GNOME Platform ................................................................................................. 12 GNOME Developer Platform .............................................................................. 12 GNOME Desktop .............................................................................................. 14 GNOME Platform Bindings ................................................................................ 18 B. Building and Installing the GNOME platform ............................................................. 20 Using GARNOME ............................................................................................ 20 Using Jhbuild ................................................................................................... 20 ii GNOME Developer Documentation List of Tables A.1. Libraries and Applications in the GNOME Developer Platform ................................... 12 A.2. Libraries and Applications in the GNOME Desktop .................................................. 14 A.3. Bindings for C++ ............................................................................................... 18 A.4. Bindings for Java ............................................................................................... 18 A.5. Bindings for Perl ................................................................................................ 19 A.6. Bindings for Python ............................................................................................ 19 iii Foreward Foreward This document is meant as an introduction to the GNOME Desktop and Platform for new developers. The goals of the book are to help the reader understand the GNOME platform and guide them through the development of a full fledged application. It intends to be a complete reference for all required components of a GNOME application, including HIG compliance, internationalization, help document support, MIME support, etc. iv Chapter 1. What is GNOME? GNOME is known to as a desktop environment for UNIX/Linux operating systems. It strives to be a simple to use graphical environment with sane defaults. It is completely free and open source, developed by hundreds of people around the world. It has seen amazing growth and had been adapted as a platform by many companies including Sun Microsystems, Novell, IBM and others. GNOME is also a community of users and developers who design, code, translate, QA and have fun together. If you are interested in joining a thriving community of developers, then GNOME just might be for you. For more information about The History of the GNOME Desktop GNOME was born out of the desire for a completely free desktop environment that was not encumbered by restrictive licensing schemes. During its infancy, there were other efforts at creating a desktop environment (namely KDE), however these efforts were based on a library whose licensing scheme was, at the time, not compatible with the ideals of free software. There are other reasons that GNOME was born, although none of them quite as important as the licensing reasons. GNOME sought to attack some of the stagnation that was happening in UNIX by fostering the concepts of code reuse and code sharing. Innovation was slowed by the fact that code was not allowed to be modified and redistributed freely. Therefore, it was decided that GNOME should be developed from a shared code base. GNOME also recognized that people used computers to simplify their lives by automating daily tasks and have fun, and therefore sought to make a desktop environment that was easy and provided sensible defaults. GNOME's early years were spent at the Red Hat Advanced Development Labs where it was worked on by a handful of developers. The first official version was released in March 1999, but adoption was slow due to instability issues. A much improved version was released in October 1999 which proved to be a much greater success and enjoyed wide deployment. Two companies were founded around developing different aspects of the GNOME desktop. Eazel was founded in 1999 and worked heavily on the nautilus file manager. Helix Code was also founded and involved in many of the infrastructural aspects of the developer platform as well the now popular Evolution mail client. Involvement from industry grew even further after the announcement of the GNOME Foundation at the Linux World Expo in August of 2000. Sun Microsystems adopted the platform as well other companies such as HP and IBM. Sun Microsystems proceeded to be very generous in their feedback in terms of the accessibility and documentation aspects of the GNOME platform. GNOME 2.0, the first in the GNOME 2.X series, was the result of a tremendous amount of work yielding a new version of the GTK+ widget set. GTK+ 2.0 was the culmination of three years of work integrating and improving the technology that was present in GTK+ 1.4. The GObject framework was added into glib which allowed for bindings to nearly any programming language. Full support for unicode and internationalized text through Pango was integrated. New widgets were introduced and a port to of GDK 1 to Microsoft Windows™ was added. From the GTK+ 2.0 release announcement itself: The huge feature set of GTK+ 2.0 more than doubles the size of GTK+ 1.2, moving from 230,000 lines of code to 620,000 lines of code. Over the last three years a line of code was added to GTK+ every 5 minutes. Nonetheless a statically-linked version of gtk-demo can still fit on a 1.4M floppy disk. 1GDK is the drawing abstraction library used by GTK+ 5 Chapter 1. What is GNOME? What defines the GNOME Desktop? —GTK+ Development Team The most obvious change being a new, attractive look to the widget set as well as support for anti-aliased text, it was clear that a new version of GNOME was required to take advantage of these features. GNOME 2.0 was released a few months after GTK+ on June 26th, 2002. It was extremely well received and many distributions shipped it in their next release. Today, the stable version of the GNOME Desktop is 2.12 while the development series is 2.13. Many changes have been made since the initial release of GNOME, such as the recent addition of the Cairo library to the software stack. Since it is often hard to distinguish the new features present in each version of the desktop, a summary of changes can be found in the release notes at http://live.gnome.org/ReleaseNotes What defines the GNOME Desktop? GNOME is... Free GNOME is free software and part of the GNU project, dedicated to giving users and developers the ultimate level of control over their desktops, their software, and their data. Usable GNOME understands that usability is about creating software that is easy for everyone to use, not about piling on features. GNOME's community of professional and volunteer usability experts have created Free Software's first and only Human Interface Guidelines, and all core GNOME software is adopting these principles. Find out more about GNOME and usability at the GNOME Usability Project. Accessible Free Software is about enabling software freedom for everyone, including users and developers with disabilities. GNOME's
Recommended publications
  • Desktop Migration and Administration Guide
    Red Hat Enterprise Linux 7 Desktop Migration and Administration Guide GNOME 3 desktop migration planning, deployment, configuration, and administration in RHEL 7 Last Updated: 2021-05-05 Red Hat Enterprise Linux 7 Desktop Migration and Administration Guide GNOME 3 desktop migration planning, deployment, configuration, and administration in RHEL 7 Marie Doleželová Red Hat Customer Content Services [email protected] Petr Kovář Red Hat Customer Content Services [email protected] Jana Heves Red Hat Customer Content Services Legal Notice Copyright © 2018 Red Hat, Inc. This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
    [Show full text]
  • Source Code Trees in the VALLEY of THE
    PROGRAMMING GNOME Source code trees IN THE VALLEY OF THE CODETHORSTEN FISCHER So you’ve just like the one in Listing 1. Not too complex, eh? written yet another Unfortunately, creating a Makefile isn’t always the terrific GNOME best solution, as assumptions on programs program. Great! But locations, path names and others things may not be does it, like so many true in all cases, forcing the user to edit the file in other great programs, order to get it to work properly. lack something in terms of ease of installation? Even the Listing 1: A simple Makefile for a GNOME 1: CC=/usr/bin/gcc best and easiest to use programs 2: CFLAGS=`gnome-config —cflags gnome gnomeui` will cause headaches if you have to 3: LDFLAGS=`gnome-config —libs gnome gnomeui` type in lines like this, 4: OBJ=example.o one.o two.o 5: BINARIES=example With the help of gcc -c sourcee.c gnome-config —libs —cflags 6: gnome gnomeui gnomecanvaspixbuf -o sourcee.o 7: all: $(BINARIES) Automake and Autoconf, 8: you can create easily perhaps repeated for each of the files, and maybe 9: example: $(OBJ) with additional compiler flags too, only to then 10: $(CC) $(LDFLAGS) -o $@ $(OBJ) installed source code demand that everything is linked. And at the end, 11: do you then also have to copy the finished binary 12: .c.o: text trees. Read on to 13: $(CC) $(CFLAGS) -c $< manually into the destination directory? Instead, 14: find out how. wouldn’t you rather have an easy, portable and 15: clean: quick installation process? Well, you can – if you 16: rm -rf $(OBJ) $(BINARIES) know how.
    [Show full text]
  • Red Hat Enterprise Linux 6 Developer Guide
    Red Hat Enterprise Linux 6 Developer Guide An introduction to application development tools in Red Hat Enterprise Linux 6 Dave Brolley William Cohen Roland Grunberg Aldy Hernandez Karsten Hopp Jakub Jelinek Developer Guide Jeff Johnston Benjamin Kosnik Aleksander Kurtakov Chris Moller Phil Muldoon Andrew Overholt Charley Wang Kent Sebastian Red Hat Enterprise Linux 6 Developer Guide An introduction to application development tools in Red Hat Enterprise Linux 6 Edition 0 Author Dave Brolley [email protected] Author William Cohen [email protected] Author Roland Grunberg [email protected] Author Aldy Hernandez [email protected] Author Karsten Hopp [email protected] Author Jakub Jelinek [email protected] Author Jeff Johnston [email protected] Author Benjamin Kosnik [email protected] Author Aleksander Kurtakov [email protected] Author Chris Moller [email protected] Author Phil Muldoon [email protected] Author Andrew Overholt [email protected] Author Charley Wang [email protected] Author Kent Sebastian [email protected] Editor Don Domingo [email protected] Editor Jacquelynn East [email protected] Copyright © 2010 Red Hat, Inc. and others. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
    [Show full text]
  • Ubuntu Kung Fu
    Prepared exclusively for Alison Tyler Download at Boykma.Com What readers are saying about Ubuntu Kung Fu Ubuntu Kung Fu is excellent. The tips are fun and the hope of discov- ering hidden gems makes it a worthwhile task. John Southern Former editor of Linux Magazine I enjoyed Ubuntu Kung Fu and learned some new things. I would rec- ommend this book—nice tips and a lot of fun to be had. Carthik Sharma Creator of the Ubuntu Blog (http://ubuntu.wordpress.com) Wow! There are some great tips here! I have used Ubuntu since April 2005, starting with version 5.04. I found much in this book to inspire me and to teach me, and it answered lingering questions I didn’t know I had. The book is a good resource that I will gladly recommend to both newcomers and veteran users. Matthew Helmke Administrator, Ubuntu Forums Ubuntu Kung Fu is a fantastic compendium of useful, uncommon Ubuntu knowledge. Eric Hewitt Consultant, LiveLogic, LLC Prepared exclusively for Alison Tyler Download at Boykma.Com Ubuntu Kung Fu Tips, Tricks, Hints, and Hacks Keir Thomas The Pragmatic Bookshelf Raleigh, North Carolina Dallas, Texas Prepared exclusively for Alison Tyler Download at Boykma.Com Many of the designations used by manufacturers and sellers to distinguish their prod- ucts are claimed as trademarks. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Programmer, Pragmatic Programming, Pragmatic Bookshelf and the linking g device are trademarks of The Pragmatic Programmers, LLC.
    [Show full text]
  • Annual Report in This Report
    GNOME FOUNDATION 2018–2019 ANNUAL REPORT IN THIS REPORT 3 Letter from the GNOME Foundation 4 About GNOME 5 Releases 6 Accessibility 6 GNOME Moves to Discourse 7 GitLab Statistics and Activity 8 Hackfests CREDITS 9 Conferences Thank you to everyone involved in the making of this report! We appreciate the authors, editors, and organizers that helped highlight 10 Finances at a Glance all the great work GNOME accomplished in the 2018‑2019 fiscal year. Gaurav Agrawal, Matthias Clasen, Emmanuele Bassi, Molly de Blanc, 12 Outreach Sebastian Dröge, Caroline Henriksen, Juanjo Marin, Neil McGovern, Bartłomiej Piotrowski, Kristi Progri, Oliver Propst, Andrea Veri, 13 Friends of GNOME Britt Yazel, and Rosanna Yuen. 2 2019 was an exciting year for us! We increased the Foundation‘s staff with three new employees—a GTK+ core developer, a Program LETTER FROM Coordinator, and a Strategic Initiatives Manager—expanded our efforts with new projects, and continued making great soware. We had three wildly successful conferences, several hackfests, and a number of newcomer events geared towards helping new contributors get THE GNOME involved in GNOME. We sponsored three amazing Outreachy interns and mentored nine students through Google Summer of Code. There were numerous technical successes: updates to GTK, two new releases of the desktop environment, and numerous infrastructure improvements, including both hardware and soware upgrades. We introduced an Inclusion and Diversity team in order to make the FOUNDATION GNOME community a more welcoming place. We announced the GNOME Community Engagement Challenge. We had speakers and booths at conferences in Asia, Europe, North America, and South America.
    [Show full text]
  • Nix on SHARCNET
    Nix on SHARCNET Tyson Whitehead May 14, 2015 Nix Overview An enterprise approach to package management I a package is a specific piece of code compiled in a specific way I each package is entirely self contained and does not change I each users select what packages they want and gets a custom enviornment https://nixos.org/nix Ships with several thousand packages already created https://nixos.org/nixos/packages.html SHARCNET What this adds to SHARCNET I each user can have their own custom environments I environments should work everywhere (closed with no external dependencies) I several thousand new and newer packages Current issues (first is permanent, second will likely be resolved) I newer glibc requires kernel 2.6.32 so no requin I package can be used but not installed/removed on viz/vdi https: //sourceware.org/ml/libc-alpha/2014-01/msg00511.html Enabling Nix Nix is installed under /home/nixbld on SHARCNET. Enable for a single sessiong by running source /home/nixbld/profile.d/nix-profile.sh To always enable add this to the end of ~/.bash_profile echo source /home/nixbld/profile.d/nix-profile.sh \ >> ~/.bash_profile Reseting Nix A basic reset is done by removing all .nix* files from your home directory rm -fr ~/.nix* A complete reset done by remove your Nix per-user directories rm -fr /home/nixbld/var/nix/profile/per-user/$USER rm -fr /home/nixbld/var/nix/gcroots/per-user/$USER The nix-profile.sh script will re-create these with the defaults next time it runs. Environment The nix-env commands maintains your environments I query packages (available and installed) I create a new environment from current one by adding packages I create a new environment from current one by removing packages I switching between existing environments I delete unused environements Querying Packages The nix-env {--query | -q} ..
    [Show full text]
  • Current Status of Win32 Gdk Implementation
    Current status of Win32 Gdk implementation Bertrand Bellenot - [email protected] Features (recall) ! Same environment on every system : ! Same look and feel on every platform. ! Simplify the code maintenance : ! No need to care about a « windows specific code ». ! Simplify functionality extension : ! No need to implement the code twice, once for windows and once for other OS. ! Only use TVirtualX. Actual Status (recall) ! The actual code uses a modified version of gdk and glib, the GIMP low-level libraries ported on win32. In practice, this means that we only need to link with gdk.lib, glib.lib and iconv.dll as additional libraries (hopefully less in the future). These libraries are under LGPL, so there are no licensing issues in using and distributing them. ! As original version of gdk was not doing everything needed by root (as font orientation!), I did have to slightly modify the original code. Points fixed since last year ! Some characters were not displayed. " ! Some problems with icon’s transparency. " ! The event handling was not perfect. " ! OpenGL was not working. " Events handling architecture (actual) TSystem CINT TGClient TVirtualX Gdk Threads issue ! From gdk developper FAQ : ! Without some major restructuring in GDK-Win32, I don't think there is any chance that GTK+ would work, in general, in a multi-threaded app, with different threads accessing windows created by other threads. ! One problem is that each thread in Windows have its own message queue. GDK-Win32 currently uses just one "message pump" in the main thread. It will never see messages for windows created by other threads. Threads issue ! As gdk is not thread safe, I had to create a separate thread from within the gdk calls are made.
    [Show full text]
  • The GNOME Desktop Environment
    The GNOME desktop environment Miguel de Icaza ([email protected]) Instituto de Ciencias Nucleares, UNAM Elliot Lee ([email protected]) Federico Mena ([email protected]) Instituto de Ciencias Nucleares, UNAM Tom Tromey ([email protected]) April 27, 1998 Abstract We present an overview of the free GNU Network Object Model Environment (GNOME). GNOME is a suite of X11 GUI applications that provides joy to users and hackers alike. It has been designed for extensibility and automation by using CORBA and scripting languages throughout the code. GNOME is licensed under the terms of the GNU GPL and the GNU LGPL and has been developed on the Internet by a loosely-coupled team of programmers. 1 Motivation Free operating systems1 are excellent at providing server-class services, and so are often the ideal choice for a server machine. However, the lack of a consistent user interface and of consumer-targeted applications has prevented free operating systems from reaching the vast majority of users — the desktop users. As such, the benefits of free software have only been enjoyed by the technically savvy computer user community. Most users are still locked into proprietary solutions for their desktop environments. By using GNOME, free operating systems will have a complete, user-friendly desktop which will provide users with powerful and easy-to-use graphical applications. Many people have suggested that the cause for the lack of free user-oriented appli- cations is that these do not provide enough excitement to hackers, as opposed to system- level programming. Since most of the GNOME code had to be written by hackers, we kept them happy: the magic recipe here is to design GNOME around an adrenaline response by trying to use exciting models and ideas in the applications.
    [Show full text]
  • The GNOME Census: Who Writes GNOME?
    The GNOME Census: Who writes GNOME? Dave Neary & Vanessa David, Neary Consulting © Neary Consulting 2010: Some rights reserved Table of Contents Introduction.........................................................................................3 What is GNOME?.............................................................................3 Project governance...........................................................................3 Why survey GNOME?.......................................................................4 Scope and methodology...................................................................5 Tools and Observations on Data Quality..........................................7 Results and analysis...........................................................................10 GNOME Project size.......................................................................10 The Long Tail..................................................................................11 Effects of commercialisation..........................................................14 Who does the work?.......................................................................15 Who maintains GNOME?................................................................17 Conclusions........................................................................................22 References.........................................................................................24 Appendix 1: Modules included in survey...........................................25 2 Introduction What
    [Show full text]
  • An User & Developer Perspective on Immutable Oses
    An User & Developer Perspective on Dario Faggioli Virtualization SW. Eng. @ SUSE Immutable OSes [email protected] dariof @DarioFaggioli https://dariofaggioli.wordpress.com/ https://about.me/dario.faggioli About Me What I do ● Virtualization Specialist Sw. Eng. @ SUSE since 2018, working on Xen, KVM, QEMU, mostly about performance related stuff ● Daily activities ⇒ how and what for I use my workstation ○ Read and send emails (Evolution, git-send-email, stg mail, ...) ○ Write, build & test code (Xen, KVM, Libvirt, QEMU) ○ Work with the Open Build Service (OBS) ○ Browse Web ○ Test OSes in VMs ○ Meetings / Video calls / Online conferences ○ Chat, work and personal ○ Some 3D Printing ○ Occasionally play games ○ Occasional video-editing ○ Maybe scan / print some document 2 ● Can all of the above be done with an immutable OS ? Immutable OS: What ? Either: ● An OS that you cannot modify Or, at least: ● An OS that you will have an hard time modifying What do you mean “modify” ? ● E.g., installing packages ● ⇒ An OS on which you cannot install packages ● ⇒ An OS on which you will have an hard time installing packages 3 Immutable OS: What ? Seriously? 4 Immutable OS: Why ? Because it will stay clean and hard to break ● Does this sound familiar? ○ Let’s install foo, and it’s dependency, libfoobar_1 ○ Let’s install bar (depends from libfoobar_1, we have it already) ○ Actually, let’s add an external repo. It has libfoobar_2 that makes foo work better! ○ Oh no... libfoobar_2 would break bar!! ● Yeah. It happens. Even in the best families distros
    [Show full text]
  • SUSE® Linux Enterprise Desktop 12 and the Workstation Extension: What's New ?
    SUSE® Linux Enterprise Desktop 12 and the Workstation Extension: What's New ? Frédéric Crozat <[email protected]> Enterprise Desktop Release Manager Scott Reeves <[email protected]> Enterprise Desktop Development Manager Agenda • Design Criteria • Desktop Environment in SUSE Linux Enterprise 12 • GNOME Shell • Desktop Features and Applications 2 Design Criteria SUSE Linux Enterprise Desktop Interoperability Ease of Use Security Ease of Management Lower Costs 4 SUSE Linux Enterprise Desktop 12 • Focus on technical workstation ‒ Developers and System administrators • One tool for the job • Main desktop applications will be shipped: ‒ Mail client, Office Suite, Graphical Editors, ... • SUSE Linux Enterprise Workstation Extension ‒ Extend SUSE Linux Enterprise Server with packages only available on SUSE Linux Enterprise Desktop. (x86-64 only) 5 Desktop in SUSE Linux Enterprise 12 As Part of the Common Code Base SUSE Linux Enterprise 12 Desktop Environment • SUSE Linux Enterprise 12 contains one primary desktop environment • Additional light-weight environment for special use-cases: ‒ Integrated Systems • Desktop environment is shared between the server and desktop products 7 SUSE Linux Enterprise 12 Desktop Environment • GNOME 3 is the main desktop environment ‒ SLE Classic mode by default ‒ GNOME 3 Classic Mode and GNOME 3 Shell Mode also available • SUSE Linux Enterprise 12 ships also lightweight IceWM ‒ Targeted at Integrated Systems • QT fully supported: ‒ QT5 supported for entire SLE12 lifecycle ‒ QT4 supported, will be removed in future
    [Show full text]
  • Guile-GNOME: Atk Version 2.16.2, Updated 9 December 2011
    Guile-GNOME: Atk version 2.16.2, updated 9 December 2011 Bill Haneman Marc Mulcahy Padraig O'Briain This manual is for (gnome atk) (version 2.16.2, updated 9 December 2011) Copyright 2001-2007 Bill Haneman, Marc Mulcahy, Padraig O'Briain Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation. i Short Contents 1 Overview :::::::::::::::::::::::::::::::::::::::::::: 1 2 AtkAction ::::::::::::::::::::::::::::::::::::::::::: 2 3 AtkComponent ::::::::::::::::::::::::::::::::::::::: 4 4 AtkDocument :::::::::::::::::::::::::::::::::::::::: 8 5 AtkEditableText ::::::::::::::::::::::::::::::::::::: 10 6 AtkGObjectAccessible :::::::::::::::::::::::::::::::: 12 7 AtkHyperlinkImpl :::::::::::::::::::::::::::::::::::: 13 8 AtkHyperlink ::::::::::::::::::::::::::::::::::::::: 14 9 AtkHypertext ::::::::::::::::::::::::::::::::::::::: 17 10 AtkImage::::::::::::::::::::::::::::::::::::::::::: 18 11 AtkNoOpObjectFactory ::::::::::::::::::::::::::::::: 20 12 AtkNoOpObject ::::::::::::::::::::::::::::::::::::: 21 13 AtkObjectFactory :::::::::::::::::::::::::::::::::::: 22 14 AtkObject :::::::::::::::::::::::::::::::::::::::::: 23 15 AtkRegistry ::::::::::::::::::::::::::::::::::::::::: 29 16 AtkRelationSet :::::::::::::::::::::::::::::::::::::: 31 17 AtkRelation::::::::::::::::::::::::::::::::::::::::: 33 18 AtkSelection :::::::::::::::::::::::::::::::::::::::: 35 19 AtkStateSet :::::::::::::::::::::::::::::::::::::::::
    [Show full text]